Приклад

Описати структуру з ім'ям STUDENT, що містить такі поля: прізвище та ініціали; номер групи; успішність (масив із п'яти елементів). Написати програму, яка виконує такі дії: введення з клавіатури даних масив, що складається з десяти структур типу STUDENT; записи мають бути упорядковані за зростанням номера групи; виведення на дисплей прізвищ та номерів груп для всіх студентів, включених до масиву, якщо середній бал студента меньше 4.0; якщо таких студентів немає, вивести відповідне повідомлення.

using System;

using System.Linq;


struct STUDENT

{

    public string FullName;  // Прізвище та ініціали

    public int GroupNumber;  // Номер групи

    public float[] Grades;   // Успішність (масив із п'яти елементів)


    // Метод для обчислення середнього балу

    public float GetAverageGrade()

    {

        return Grades.Average();

    }

}


class Program

{

    static void Main(string[] args)

    {

        const int numStudents = 10;

        STUDENT[] students = new STUDENT[numStudents];


        // Введення даних про студентів

        for (int i = 0; i < numStudents; i++)

        {

            Console.Write($"Введіть прізвище та ініціали студента {i + 1}: ");

            students[i].FullName = Console.ReadLine();


            Console.Write($"Введіть номер групи студента {i + 1}: ");

            students[i].GroupNumber = int.Parse(Console.ReadLine());


            students[i].Grades = new float[5];

            Console.Write($"Введіть 5 оцінок студента {i + 1}: ");

            for (int j = 0; j < 5; j++)

            {

                students[i].Grades[j] = float.Parse(Console.ReadLine());

            }

        }


        // Сортування студентів за номером групи

        students = students.OrderBy(s => s.GroupNumber).ToArray();


        // Виведення студентів з середнім балом меньш 4.0

        bool found = false;

        foreach (var student in students)

        {

            if (student.GetAverageGrade() < 4.0)

            {

                Console.WriteLine($"Студент: {student.FullName}, Група: {student.GroupNumber}");

                found = true;

            }

        }


        // Якщо таких студентів немає

        if (!found)

        {

            Console.WriteLine("Студентів з середнім балом більше 4.0 немає.");

        }

    }

}

Пояснення до коду:

  1. Структура STUDENT:

    • FullName — зберігає прізвище та ініціали студента.

    • GroupNumber — зберігає номер групи.

    • Grades — масив із п'яти елементів, який зберігає оцінки студента.

    • Метод GetAverageGrade() обчислює середній бал студента.

  2. Введення даних:

    • Програма запитує у користувача ввести дані для кожного студента, включаючи прізвище, номер групи та оцінки.

  3. Сортування:

    • Використовується метод OrderBy для сортування масиву студентів за зростанням номера групи.

  4. Виведення результатів:

    • Програма обчислює середній бал кожного студента за допомогою методу GetAverageGrade().

    • Виводиться інформація про студентів, у яких середній бал меньш 4.0.

    • Якщо таких студентів немає, виводиться відповідне повідомлення.