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