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