Переделать программу с использованием структур и перечислений - C#

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

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

1. Описать структуру с именем STUDENT, содержащую следующие поля: - фамилия и инициалы; - номер группы; - успеваемость (массив из пяти элементов). 2. Написать программу, выполняющую следующие действия: - ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по алфавиту; - вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2; если таких студентов нет, вывести соответствующее сообщение. На просторах интернета нашел похожую задачу и немного перемешал её со своей. Только не знаю как сделать сортировку по алфавиту.
Листинг программы
  1. using System;
  2. struct Student
  3. {
  4. public string Name;
  5. public int[] ses;
  6. public int Group;
  7. public Student(string n, int g, int[] s)
  8. {
  9. ses = s;
  10. Name = n;
  11. Group = g;
  12. }
  13. public int getMiddleScore() //идиотское название
  14. {
  15. return (ses[0] + ses[1] + ses[2] + ses[3] + ses[4]) / 5;
  16. }
  17. }
  18. class demo
  19. {
  20. static void Main()
  21. {
  22. string s;
  23. string[] c;
  24. bool morefour = false;
  25. Student[] stud1 = new Student[10];
  26. for (int i = 0; i < stud1.Length; i++)
  27. {
  28. Console.Write("Введите имя : ");
  29. stud1[i].Name = Console.ReadLine();
  30. Console.Write("Введите номер группы : ");
  31. stud1[i].Group = Int32.Parse(Console.ReadLine());
  32. Console.Write("Введите оценки : ");
  33. s = Console.ReadLine();
  34. stud1[i].ses = new int[5];
  35. c = s.Split(null);
  36. for (int j = 0; j < 5; j++) stud1[i].ses[j] = Int32.Parse(c[j]);
  37. Console.WriteLine();
  38. }
  39. Console.WriteLine("Студенты со средним баллом больше 4 : ");
  40. foreach (Student st in stud1)
  41. {
  42. if (st.getMiddleScore() >= 4)
  43. {
  44. Console.WriteLine(st.Name + " из группы " + st.Group);
  45. morefour = true;
  46. }
  47. }
  48. if (!morefour) Console.WriteLine("Нету людей с хорошими оценками!");
  49. }
  50. }

Решение задачи: «Переделать программу с использованием структур и перечислений»

textual
Листинг программы
  1. using System;
  2. struct Student
  3. {
  4.     public string Name;
  5.     public int[] ses;
  6.     public int Group;
  7.     public bool Had2()
  8.     {
  9.         foreach (int i in ses) if (i == 2) return true;
  10.         return false;
  11.     }
  12.     public Student(string n, int g, int[] s)
  13.     {
  14.         ses = s;
  15.         Name = n;
  16.         Group = g;
  17.     }
  18. }
  19. class demo
  20. {
  21.     static void Main()
  22.     {
  23.         string s;
  24.         string[] c;
  25.         Console.Write("введите кол-во студентов : ");
  26.         Student[] stud1 = new Student[int.Parse(Console.ReadLine())];
  27.         Console.WriteLine();
  28.         for (int i = 0; i < stud1.Length; i++)
  29.         {
  30.             Console.Write("#{0}\nВведите имя : ",i+1);
  31.             s = Console.ReadLine();
  32.             if (char.IsLower(s[0]))
  33.                 s = char.ToUpper(s[0]) + s.Remove(0, 1);
  34.             stud1[i].Name = s;
  35.             Console.Write("Введите номер группы : ");
  36.             stud1[i].Group = Int32.Parse(Console.ReadLine());
  37.             Console.Write("Введите оценки : ");
  38.             s = Console.ReadLine();
  39.             c = s.Split(new char [2]{' ',','},StringSplitOptions.RemoveEmptyEntries);
  40.             stud1[i].ses = new int[c.Length];
  41.             for (int j = 0; j < stud1[i].ses.Length; j++) stud1[i].ses[j] = Int32.Parse(c[j]);
  42.             Console.WriteLine();
  43.         }
  44.         bool flag = true;
  45.         while (flag)
  46.         {
  47.             flag = false;
  48.             for (int i = 0; i < stud1.Length - 1; i++)
  49.                 if (stud1[i].Name[0] > stud1[i + 1].Name[0])
  50.                 {
  51.                     Student b = stud1[i];
  52.                     stud1[i] = stud1[i + 1];
  53.                     stud1[i + 1] = b;
  54.                     flag = true;
  55.                 }
  56.         }
  57.         Console.WriteLine("\nпо алфавиту : ");
  58.         foreach (Student stu in stud1) Console.WriteLine(stu.Name+" из группы "+stu.Group);
  59.         Console.WriteLine("\nученики с двойками : ");
  60.         foreach (Student stu in stud1) if (stu.Had2()) Console.WriteLine(stu.Name + " из группы " + stu.Group);
  61.         Console.WriteLine();
  62.         Console.ReadKey(true);
  63.     }
  64. }

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


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

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

14   голосов , оценка 3.786 из 5

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

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

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