Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2014, 16:35   #1
CROWN
Пользователь
 
Регистрация: 04.06.2014
Сообщений: 12
По умолчанию Как доделать программу C#

Работа со структурами. В данной программе все работает но я не знаю как добавить в нее такие функции:

1. вывод списка преподавателей для введенной пользователем кафедры, и подсчет их количества
2. поиск преподавателя с наибольшим стажем среди всех имеющихся преподавателей, в институте, на кафедре, и вывод информации о нем

Помогите разобраться, очень нужна ваша помощь.

Код:
Код:
public enum University { SMY, MMU }

    public enum Kafedra { Фармация, Педиатрия, Психиатрия}
    public struct Person
    {
        string fio;//ФИО
        University university;//университет
        double stag;//стаж 
        
        Kafedra kafedra;//кафедра

        public Person(University univer, String FIO, double stag,Kafedra hairColor)
        {
            this.university = univer;
            this.fio = FIO;
            this.stag = stag;
     
            this.kafedra = hairColor;
        }

        public Person(Person person)
        {
            this.university = (University)person.Univer;
            this.fio = person.FIO;
            this.stag = person.stag;
  
            this.kafedra = (Kafedra)person.Kafedr;
        }

        public int Univer
        { get { return (int)this.university; } }

        public string FIO
        { get { return this.fio; } }

        public double Stagg
        {
            get { return this.stag; }
            set { this.stag = value; }
        }

        public int Kafedr
        {
            get { return (int)this.kafedra; }
            set { this.kafedra = (Kafedra)value; }
        }

        public override string ToString()
        {
            return  fio + ", стаж: " + stag.ToString() + ", университет: " + university.ToString() + ", кафедра: " + kafedra.ToString();
        }
    }

    class PersonList
    {
        List<Person> persons;
 
        public PersonList()
        {
            persons = new List<Person>();
        }
 
        public PersonList(Person person)
        {
            persons = new List<Person>();
            Add(person);
        }
 
        public void Add(Person person)
        {
            persons.Add(person);
        }
 
        public void Del(Person person)
        {
            persons.Remove(person);
        }
 
        public void Del(int index)
        {
            persons.RemoveAt(index);
        }
 
        public Person GetPerson(int index)
        {
            return persons[index];
        }
 
        public void Change(Person oldPerson, Person newPerson)
        {
            persons.Remove(oldPerson);
            persons.Add(newPerson);
        }

        public void Change(int index, double stagg)
        {
            Person p = new Person(persons[index]);
            p.Stagg = stagg;
            persons.RemoveAt(index);
            persons.Insert(index, p);
        }
      
        public void Change(int index, int kaff)
        {
            Person p = new Person(persons[index]);
            p.Kafedr = kaff;
            persons.RemoveAt(index);
            persons.Insert(index, p);
        }
 
        public int Count
        { get { return this.persons.Count; } }
    }
    }
CROWN вне форума Ответить с цитированием
Старый 28.12.2014, 16:37   #2
CROWN
Пользователь
 
Регистрация: 04.06.2014
Сообщений: 12
По умолчанию

Код:
class Program
    {
        static void Main(string[] args)
        {
            PersonList pList = new PersonList();
            bool exit = false;
            do
            {
                Console.WriteLine("\nВведите что хотите сделать: ");
                Console.WriteLine("0. Посмотреть список преподавателей\n1. Добавить преподавателя\n2. Удалить преподавателя\n3. Изменить информацию о преподавателе\n4. Выйти\n");
                int toDo = int.Parse(Console.ReadLine());
                switch (toDo)
                {
                    case 0:
                        if (pList.Count > 0) WritePersonList(pList);
                        else Console.WriteLine("Список пуст");
                        break;
                    case 1:
                        pList.Add(CreatePerson());
                        break;
                    case 2:
                        if (pList.Count > 0) DelPerson(ref pList);
                        else Console.WriteLine("Список пуст");
                        break;
                    case 3:
                        if (pList.Count > 0)
                        {
                            Console.WriteLine("Выберите что хотите изменить:\n1. Университет\n2. Стаж\n3. Кафедру");
                            int c = int.Parse(Console.ReadLine());
                            switch (c)
                            {
                                case 1:
                                    ChangePersonUniversity(ref pList);
                                    break;
                                case 2:
                                    ChangePersonStag(ref pList);
                                    break;
                                case 3:
                                    ChangePersonKafedra(ref pList);
                                    break;
                            }
                        }
                        else Console.WriteLine("Список пуст");
                        break;
                    case 4:
                        exit = true;
                        break;
                }
            } while (!exit);
        }
 
        static void WritePersonList(PersonList pList)
        {
            for (int i = 0; i < pList.Count; i++)
            {
                Console.WriteLine(i.ToString() + ". " + pList.GetPerson(i).ToString());
            }
        }       
 
        static void ChangePersonStag(ref PersonList pList)
        {
            Console.WriteLine("Введите номер человека для изменения: ");
            WritePersonList(pList);
            int i = int.Parse(Console.ReadLine());
            Console.Write("Введите новый стаж:");
            pList.Change(i, double.Parse(Console.ReadLine()));
        }
 
        static void ChangePersonKafedra(ref PersonList pList)
        {
            Console.WriteLine("Введите номер человека для изменения: ");
            WritePersonList(pList);
            int i = int.Parse(Console.ReadLine());
            int j = 0;
            Console.WriteLine("Введите новую кафедру: ");
            foreach (string name in Enum.GetNames(typeof(Kafedra)))
            {
                Console.WriteLine(j.ToString() + ". " + name);
                j++;
            }
            j = int.Parse(Console.ReadLine());
            pList.Change(i, j);
        }

        static void ChangePersonUniversity(ref PersonList pList)
        {
            Console.WriteLine("Введите номер человека для изменения: ");
            WritePersonList(pList);
            int i = int.Parse(Console.ReadLine());
            int j = 0;
            Console.WriteLine("Введите новый университет: ");
            foreach (string name in Enum.GetNames(typeof(University)))
            {
                Console.WriteLine(j.ToString() + ". " + name);
                j++;
            }
            j = int.Parse(Console.ReadLine());
            pList.Change(i, j);
        }

        static void DelPerson(ref PersonList pList)
        {
            Console.WriteLine("Введите номер человека для удаления: ");
            WritePersonList(pList);
            pList.Del(int.Parse(Console.ReadLine()));
        }
CROWN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто знает как доделать программу Demigod324 C++ Builder 0 20.05.2013 19:13
как доделать программу? luybeznov Помощь студентам 2 09.12.2011 07:29
Надо доделать программу Саша019960 Помощь студентам 1 29.11.2011 21:57
доделать программу Akeksander Помощь студентам 5 10.01.2011 01:15
Доделать программу по БД nuevegramodelamor Фриланс 6 11.11.2009 09:55