Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Реализовать иерархию классов

84K
09 ноября 2012 года
the dark Knight
4 / / 03.11.2012
Реализовать иерархию классов Ядро атома, протон, нейтрон, электрон, фотон, атом, химический элемент, ион, химическая реакция?


Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Atoms
{
    public class Atoms
    {
      protected string name = "Sodium";
          protected string element ="Metal";

        public virtual void GetInfo()
        {
         Console.WriteLine("name: {0}",name);
            Console.WriteLine("element: {0}", element);

        }
    }
    class Proton : Atoms
    {
        public int number = 11 ;
        public override void  GetInfo()
{
     base.GetInfo();
            Console.WriteLine("Proton number: {0}",number);

      }
}
    class Electron : Atoms
    {
        public int number = 11;
        public override void GetInfo()
        {
            base.GetInfo();
            Console.WriteLine("Electron number: {0}", number);
        }
        class Neutrons : Atoms
        {
            public int number = 12;
            public override void GetInfo()
            {
                base.GetInfo();
                Console.WriteLine("Neutron  number: {0}", number);
            }
            class TestClass
            {
                static void Main()
                {
                    Proton P = new Proton();
                    P.GetInfo();
                    Neutrons N = new Neutrons();
                    N.GetInfo();
                    Electron E = new Electron();
                    E.GetInfo();
                    Console.WriteLine("click any key to exit");
                    Console.ReadLine();
                }
            }
        }
    }
}
40K
11 ноября 2012 года
D129
228 / / 18.04.2012
С кварков начните. :-)

Электрон не может быть потомком Атома.
это атом состоит из ядра (нейтроны+протоны) и оболочки (электроны).

Протоны нейтроны электроны - должны иметь один интерфейс - элементарная частица.

Ион - вообще не отдельный класс, а атом, где число протонов не равно числу электронов.
40K
11 ноября 2012 года
D129
228 / / 18.04.2012
Атом - два поля:
Ядро - это список типа <элементарные частицы>
Оболочка - это список типа <электроны>


Химическая реакция - обьединение коллекций оболочек, когда одни и те же электроны принадлежат двум атомам.

Дальше надо (если надо) заморачиваться со структурой оболочек....
84K
11 ноября 2012 года
the dark Knight
4 / / 03.11.2012
Цитата: D129
Атом - два поля:
Ядро - это список типа <элементарные частицы>
Оболочка - это список типа <электроны>


Химическая реакция - обьединение коллекций оболочек, когда одни и те же электроны принадлежат двум атомам.

Дальше надо (если надо) заморачиваться со структурой оболочек....

можна пример на с#

40K
12 ноября 2012 года
D129
228 / / 18.04.2012
Цитата: the dark Knight
можна пример на с#



да легко.

Код:
public abstract class UberQuark
    {
        public virtual int Charge
        {
            get;
            set;
        }
        public virtual double Mass
        {
            get;
            set;
        }
    }

    public class Electron : UberQuark
    {
        public override int Charge
        {
            get
            {
                return -1; //
            }


           

        }


        public override double Mass
        {
            get
            {
                return 1; // I prefer mass of electrons as unit ;-)
            }

        }
    }


    public class Newtron: UberQuark
    {
        public override int Charge
        {
            get
            {
                return 0; //
            }
           
        }

        public override double Mass
        {
            get
            {
                return 1836;
            }
           
        }
    }

    public class Proton : UberQuark
    {
        public override int Charge
        {
            get
            {
                return 1;
            }
           
        }

        public override double Mass
        {
            get
            {
                return 1836;
            }

        }
    }


    public class Atom : UberQuark
    {
        public Atom ()
        {
        Nuclons = new List<UberQuark>();
            Electrons = new List<Electron>();
        }

        public List<UberQuark> Nuclons;

        public List<Electron> Electrons;

        public override int Charge
        {
            get
            {
                int charge = Nuclons.Sum(onePart => onePart.Charge) + Electrons.Sum(oneEl => oneEl.Charge);

                return charge;
            }
           
        }

        public override double Mass
        {
            get
            {
                return Nuclons.Sum(oneNuke => oneNuke.Mass) + Electrons.Sum(oneEl => oneEl.Mass);    
            }
           
        }



        public bool CombineWith(Atom atomToAdd)
        {

            if (atomToAdd.Charge < 0 && this.Charge > 0)// possible
            {
                //TODO  add needed quantity electrons to collection

                return true;
            }


            if (atomToAdd.Charge > 0 && this.Charge < 0)// possible
            {
                //TODO  add needed quantity electrons to collection

                return true;
            }


            return false;
        }
    }


Химическую реакцию сами доведите - какие у вас там требования к точности модели.

А то ведь по запарке и мироздание запрограммировать можно....

;-)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог