Вывод списка преподавателей для введенной пользователем кафедры, и подсчет их количества - C#

Узнай цену своей работы

Формулировка задачи:

Работа со структурами. В данной программе все работает но я не знаю как добавить в нее такие функции: 1. вывод списка преподавателей для введенной пользователем кафедры, и подсчет их количества 2. поиск преподавателя с наибольшим стажем среди всех имеющихся преподавателей, в институте, на кафедре, и вывод информации о нем Помогите разобраться, очень нужна ваша помощь.
public enum University { SMY, MMU }
 
    /// <summary>
    /// кафедра
    /// </summary>
    public enum Kafedra { Фармация, Педиатрия, Психиатрия}
 
    /// <summary>
    /// структура описывающая преподавателя
    /// </summary>
    public struct Person
    {
        string fio;//ФИО
        University university;//университет
        double stag;//стаж 
        
        Kafedra kafedra;//кафедра
 
        /// <summary>
        /// создает преподавателя
        /// </summary>
        /// <param name="university">университет</param>
        /// <param name="FIO">ФИО</param>
        /// <param name="stag">стаж</param>
        /// <param name="kafedra">кафедра</param>
        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;
        }
 
        /// <summary>
        /// университет
        /// </summary>
        public int Univer
        { get { return (int)this.university; } }
 
        /// <summary>
        /// ФИО
        /// </summary>
        public string FIO
        { get { return this.fio; } }
 
        /// <summary>
        /// стаж
        /// </summary>
        public double Stagg
        {
            get { return this.stag; }
            set { this.stag = value; }
        }
 
        /// <summary>
        /// кафедра
        /// </summary>
        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);
        }
 
        /// <summary>
        /// метод для изменения стажа
        /// </summary>
 
        public void Change(int index, double stagg)
        {
            Person p = new Person(persons[index]);
            p.Stagg = stagg;
            persons.RemoveAt(index);
            persons.Insert(index, p);
        }
        /// <summary>
        /// метод для изменения кафедры
        /// </summary>
 
        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; } }
    }
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()));
        }
 
        /// <summary>
        /// создает преподавателя
        /// </summary>
        /// <returns>преподавателя</returns>
        static Person CreatePerson()
        {
 
            Console.Write("Введите ФИО: ");
            string fio = Console.ReadLine();
            Console.WriteLine("Введите  университет. " + ((int)(University.SMY)).ToString() + ". " + University.SMY.ToString() + "\t" + ((int)(University.MMU)).ToString() + ". " + University.MMU.ToString());
            int university = int.Parse(Console.ReadLine());
            Console.Write("Введите стаж: ");
            double stagg = double.Parse(Console.ReadLine());
 
            Console.WriteLine("Введите кафедру: " );
            int j = 0;
            foreach (string name in Enum.GetNames(typeof(Kafedra)))
            {
 
                Console.WriteLine(j.ToString() + ". " + name);
                j++;
            }
            j = int.Parse(Console.ReadLine());
          
            return new Person((University)university, fio, stagg,(Kafedra)j);

        }
    }

Решение задачи: «Вывод списка преподавателей для введенной пользователем кафедры, и подсчет их количества»

textual
Листинг программы
  var pr = Prep.Where(a => a.kafedra == "Имя кафедры");
        foreach (var a in pr)
        {
            Console.WriteLine(a);
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы