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

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

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

Работа со структурами. В данной программе все работает но я не знаю как добавить в нее такие функции: 1. вывод списка преподавателей для введенной пользователем кафедры, и подсчет их количества 2. поиск преподавателя с наибольшим стажем среди всех имеющихся преподавателей, в институте, на кафедре, и вывод информации о нем Помогите разобраться, очень нужна ваша помощь.
Листинг программы
  1. public enum University { SMY, MMU }
  2. /// <summary>
  3. /// кафедра
  4. /// </summary>
  5. public enum Kafedra { Фармация, Педиатрия, Психиатрия}
  6. /// <summary>
  7. /// структура описывающая преподавателя
  8. /// </summary>
  9. public struct Person
  10. {
  11. string fio;//ФИО
  12. University university;//университет
  13. double stag;//стаж
  14. Kafedra kafedra;//кафедра
  15. /// <summary>
  16. /// создает преподавателя
  17. /// </summary>
  18. /// <param name="university">университет</param>
  19. /// <param name="FIO">ФИО</param>
  20. /// <param name="stag">стаж</param>
  21. /// <param name="kafedra">кафедра</param>
  22. public Person(University univer, String FIO, double stag,Kafedra hairColor)
  23. {
  24. this.university = univer;
  25. this.fio = FIO;
  26. this.stag = stag;
  27. this.kafedra = hairColor;
  28. }
  29. public Person(Person person)
  30. {
  31. this.university = (University)person.Univer;
  32. this.fio = person.FIO;
  33. this.stag = person.stag;
  34. this.kafedra = (Kafedra)person.Kafedr;
  35. }
  36. /// <summary>
  37. /// университет
  38. /// </summary>
  39. public int Univer
  40. { get { return (int)this.university; } }
  41. /// <summary>
  42. /// ФИО
  43. /// </summary>
  44. public string FIO
  45. { get { return this.fio; } }
  46. /// <summary>
  47. /// стаж
  48. /// </summary>
  49. public double Stagg
  50. {
  51. get { return this.stag; }
  52. set { this.stag = value; }
  53. }
  54. /// <summary>
  55. /// кафедра
  56. /// </summary>
  57. public int Kafedr
  58. {
  59. get { return (int)this.kafedra; }
  60. set { this.kafedra = (Kafedra)value; }
  61. }
  62. public override string ToString()
  63. {
  64. return fio + ", стаж: " + stag.ToString() + ", университет: " + university.ToString() + ", кафедра: " + kafedra.ToString();
  65. }
  66. }
  67. class PersonList
  68. {
  69. List<Person> persons;
  70. public PersonList()
  71. {
  72. persons = new List<Person>();
  73. }
  74. public PersonList(Person person)
  75. {
  76. persons = new List<Person>();
  77. Add(person);
  78. }
  79. public void Add(Person person)
  80. {
  81. persons.Add(person);
  82. }
  83. public void Del(Person person)
  84. {
  85. persons.Remove(person);
  86. }
  87. public void Del(int index)
  88. {
  89. persons.RemoveAt(index);
  90. }
  91. public Person GetPerson(int index)
  92. {
  93. return persons[index];
  94. }
  95. public void Change(Person oldPerson, Person newPerson)
  96. {
  97. persons.Remove(oldPerson);
  98. persons.Add(newPerson);
  99. }
  100. /// <summary>
  101. /// метод для изменения стажа
  102. /// </summary>
  103. public void Change(int index, double stagg)
  104. {
  105. Person p = new Person(persons[index]);
  106. p.Stagg = stagg;
  107. persons.RemoveAt(index);
  108. persons.Insert(index, p);
  109. }
  110. /// <summary>
  111. /// метод для изменения кафедры
  112. /// </summary>
  113. public void Change(int index, int kaff)
  114. {
  115. Person p = new Person(persons[index]);
  116. p.Kafedr = kaff;
  117. persons.RemoveAt(index);
  118. persons.Insert(index, p);
  119. }
  120. public int Count
  121. { get { return this.persons.Count; } }
  122. }
Листинг программы
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. PersonList pList = new PersonList();
  6. bool exit = false;
  7. do
  8. {
  9. Console.WriteLine("\nВведите что хотите сделать: ");
  10. Console.WriteLine("0. Посмотреть список преподавателей\n1. Добавить преподавателя\n2. Удалить преподавателя\n3. Изменить информацию о преподавателе\n4. Выйти\n");
  11. int toDo = int.Parse(Console.ReadLine());
  12. switch (toDo)
  13. {
  14. case 0:
  15. if (pList.Count > 0) WritePersonList(pList);
  16. else Console.WriteLine("Список пуст");
  17. break;
  18. case 1:
  19. pList.Add(CreatePerson());
  20. break;
  21. case 2:
  22. if (pList.Count > 0) DelPerson(ref pList);
  23. else Console.WriteLine("Список пуст");
  24. break;
  25. case 3:
  26. if (pList.Count > 0)
  27. {
  28. Console.WriteLine("Выберите что хотите изменить:\n1. Университет\n2. Стаж\n3. Кафедру");
  29. int c = int.Parse(Console.ReadLine());
  30. switch (c)
  31. {
  32. case 1:
  33. ChangePersonUniversity(ref pList);
  34. break;
  35. case 2:
  36. ChangePersonStag(ref pList);
  37. break;
  38. case 3:
  39. ChangePersonKafedra(ref pList);
  40. break;
  41. }
  42. }
  43. else Console.WriteLine("Список пуст");
  44. break;
  45. case 4:
  46. exit = true;
  47. break;
  48. }
  49. } while (!exit);
  50. }
  51. static void WritePersonList(PersonList pList)
  52. {
  53. for (int i = 0; i < pList.Count; i++)
  54. {
  55. Console.WriteLine(i.ToString() + ". " + pList.GetPerson(i).ToString());
  56. }
  57. }
  58. static void ChangePersonStag(ref PersonList pList)
  59. {
  60. Console.WriteLine("Введите номер человека для изменения: ");
  61. WritePersonList(pList);
  62. int i = int.Parse(Console.ReadLine());
  63. Console.Write("Введите новый стаж:");
  64. pList.Change(i, double.Parse(Console.ReadLine()));
  65. }
  66. static void ChangePersonKafedra(ref PersonList pList)
  67. {
  68. Console.WriteLine("Введите номер человека для изменения: ");
  69. WritePersonList(pList);
  70. int i = int.Parse(Console.ReadLine());
  71. int j = 0;
  72. Console.WriteLine("Введите новую кафедру: ");
  73. foreach (string name in Enum.GetNames(typeof(Kafedra)))
  74. {
  75. Console.WriteLine(j.ToString() + ". " + name);
  76. j++;
  77. }
  78. j = int.Parse(Console.ReadLine());
  79. pList.Change(i, j);
  80. }
  81. static void ChangePersonUniversity(ref PersonList pList)
  82. {
  83. Console.WriteLine("Введите номер человека для изменения: ");
  84. WritePersonList(pList);
  85. int i = int.Parse(Console.ReadLine());
  86. int j = 0;
  87. Console.WriteLine("Введите новый университет: ");
  88. foreach (string name in Enum.GetNames(typeof(University)))
  89. {
  90. Console.WriteLine(j.ToString() + ". " + name);
  91. j++;
  92. }
  93. j = int.Parse(Console.ReadLine());
  94. pList.Change(i, j);
  95. }
  96.  
  97. static void DelPerson(ref PersonList pList)
  98. {
  99. Console.WriteLine("Введите номер человека для удаления: ");
  100. WritePersonList(pList);
  101. pList.Del(int.Parse(Console.ReadLine()));
  102. }
  103. /// <summary>
  104. /// создает преподавателя
  105. /// </summary>
  106. /// <returns>преподавателя</returns>
  107. static Person CreatePerson()
  108. {
  109. Console.Write("Введите ФИО: ");
  110. string fio = Console.ReadLine();
  111. Console.WriteLine("Введите университет. " + ((int)(University.SMY)).ToString() + ". " + University.SMY.ToString() + "\t" + ((int)(University.MMU)).ToString() + ". " + University.MMU.ToString());
  112. int university = int.Parse(Console.ReadLine());
  113. Console.Write("Введите стаж: ");
  114. double stagg = double.Parse(Console.ReadLine());
  115. Console.WriteLine("Введите кафедру: " );
  116. int j = 0;
  117. foreach (string name in Enum.GetNames(typeof(Kafedra)))
  118. {
  119. Console.WriteLine(j.ToString() + ". " + name);
  120. j++;
  121. }
  122. j = int.Parse(Console.ReadLine());
  123. return new Person((University)university, fio, stagg,(Kafedra)j);
  124.  
  125. }
  126. }

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

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

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


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

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

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы