Вывод списка преподавателей для введенной пользователем кафедры, и подсчет их количества - 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д