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

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


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

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

14   голосов , оценка 3.786 из 5
Похожие ответы