Переделать программу с использованием структур и перечислений - 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);
}
}