Переделать программу с использованием структур и перечислений - C#
Формулировка задачи:
1. Описать структуру с именем STUDENT, содержащую следующие поля:
- фамилия и инициалы;
- номер группы;
- успеваемость (массив из пяти элементов).
2. Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по алфавиту;
- вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2;
если таких студентов нет, вывести соответствующее сообщение.
На просторах интернета нашел похожую задачу и немного перемешал её со своей. Только не знаю как сделать сортировку по алфавиту.
using System; struct Student { public string Name; public int[] ses; public int Group; public Student(string n, int g, int[] s) { ses = s; Name = n; Group = g; } public int getMiddleScore() //идиотское название { return (ses[0] + ses[1] + ses[2] + ses[3] + ses[4]) / 5; } } class demo { static void Main() { string s; string[] c; bool morefour = false; Student[] stud1 = new Student[10]; for (int i = 0; i < stud1.Length; i++) { Console.Write("Введите имя : "); stud1[i].Name = Console.ReadLine(); Console.Write("Введите номер группы : "); stud1[i].Group = Int32.Parse(Console.ReadLine()); Console.Write("Введите оценки : "); s = Console.ReadLine(); stud1[i].ses = new int[5]; c = s.Split(null); for (int j = 0; j < 5; j++) stud1[i].ses[j] = Int32.Parse(c[j]); Console.WriteLine(); } Console.WriteLine("Студенты со средним баллом больше 4 : "); foreach (Student st in stud1) { if (st.getMiddleScore() >= 4) { Console.WriteLine(st.Name + " из группы " + st.Group); morefour = true; } } if (!morefour) Console.WriteLine("Нету людей с хорошими оценками!"); } }
Решение задачи: «Переделать программу с использованием структур и перечислений»
textual
Листинг программы
using System; struct Student { public string Name; public int[] ses; public int Group; public bool Had2() { foreach (int i in ses) if (i == 2) return true; return false; } public Student(string n, int g, int[] s) { ses = s; Name = n; Group = g; } } class demo { static void Main() { string s; string[] c; Console.Write("введите кол-во студентов : "); Student[] stud1 = new Student[int.Parse(Console.ReadLine())]; Console.WriteLine(); for (int i = 0; i < stud1.Length; i++) { Console.Write("#{0}\nВведите имя : ",i+1); s = Console.ReadLine(); if (char.IsLower(s[0])) s = char.ToUpper(s[0]) + s.Remove(0, 1); stud1[i].Name = s; Console.Write("Введите номер группы : "); stud1[i].Group = Int32.Parse(Console.ReadLine()); Console.Write("Введите оценки : "); s = Console.ReadLine(); c = s.Split(new char [2]{' ',','},StringSplitOptions.RemoveEmptyEntries); stud1[i].ses = new int[c.Length]; for (int j = 0; j < stud1[i].ses.Length; j++) stud1[i].ses[j] = Int32.Parse(c[j]); Console.WriteLine(); } bool flag = true; while (flag) { flag = false; for (int i = 0; i < stud1.Length - 1; i++) if (stud1[i].Name[0] > stud1[i + 1].Name[0]) { Student b = stud1[i]; stud1[i] = stud1[i + 1]; stud1[i + 1] = b; flag = true; } } Console.WriteLine("\nпо алфавиту : "); foreach (Student stu in stud1) Console.WriteLine(stu.Name+" из группы "+stu.Group); Console.WriteLine("\nученики с двойками : "); foreach (Student stu in stud1) if (stu.Had2()) Console.WriteLine(stu.Name + " из группы " + stu.Group); Console.WriteLine(); Console.ReadKey(true); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д