Программа с Листами

internal class Program
{
    public static void Main(string[] args)
    {
        Student alex = new Student("Alex");
        alex.Diary.AddMark(4);
        alex.Diary.AddMark(5);
        alex.Diary.AddMark(5);
        alex.Diary.AddMark(3);
        alex.Diary.AddMark(5);

        Console.WriteLine($"Max mark:\t{alex.Diary.MaxMark}");
        Console.WriteLine($"Min mark:\t{alex.Diary.MinMark}");
        Console.WriteLine($"Average mark:\t{alex.Diary.AverageMark}");
    }
}

public class Diary
{
    private readonly IList<int> marks;

    public int this[int index]
    {
        get
        {
            if (index >= 0 && index < marks.Count)
            {
                return marks[index];
            }

            throw new IndexOutOfRangeException();
        }
        // На случай ошибочно выставленной оценки
        set
        {
            if (index >= 0 && index < marks.Count)
            {
                marks[index] = value;
            }

            throw new IndexOutOfRangeException();
        }
    }

    public Diary()
    {
        marks = new List<int>();
    }

    public void AddMark(int mark)
    {
        // Проверка корректности оценки (по 5-ти бальной системе)
        if (mark > 0 && mark <= 5)
        {
            marks.Add(mark);
            return;
        }

        throw new IndexOutOfRangeException(nameof(mark));
    }

    public int MaxMark => marks.Max();

    public int MinMark => marks.Min();

    public double AverageMark => marks.Average();
}

public class Student
{
    public string Name { get; set; }

    public Diary Diary { get; private set; }

    public Student(string name)
    {
        if (string.IsNullOrWhiteSpace(name)) throw new ArgumentException(nameof(name));

        Name = name;
        Diary = new Diary();
    }
}

Здравствуйте помогите пожалуйста написать программу для отслеживания успеваемости школьника используя листы . В ней должны быть следующие возможности:

программа запрашивает имя ученика

программа добавляет оценки в дневник

программа определяет максимальную оценку

программа определяет минимальную оценку

программа определяет среднюю оценку

Например: Ты вводишь имя ученика и программа спрашивает если хочешь вести оценку ученика нажмите на 1,ты вводишь оценку далее возвращается в начало и снова спрашивает что ты хочешь выбрать

Часть кода написал не знаю правильно или и, дальше нужно меню для работы но не как не получается


Ответы (1 шт):

Автор решения: VenDETTA
using System;
using System.Collections;
using System.Collections.Generic;

namespace Дневник
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите, пожалуйста, имя ученика");
            String name = Console.ReadLine();

            bool check = false;
            name = name.Trim();

            if (name.Length == 0)
            {
                check = false;
                Console.WriteLine("Вы ввели не верное имя");
            }
            else
            {
                check = true;
                Console.WriteLine("Имя ученика дабавлено в базу");
            }

            List<double> score = new List<double>();

            while (true)
            {
                Console.WriteLine("Выберите команду: " +
                "1 - добавить оценку; 2 - вывести статистику; 3 - выход");
                string selection = Console.ReadLine();
                switch (selection)
                {
                    case "1":
                        Console.WriteLine("Введите, пожалуйста, оценку: 2 - Неудовлетворительно; 3 - Удовлетворительно; 4 - Хорошо; 5 - Отлично");
                        score.Add(Convert.ToDouble(Console.ReadLine()));
                        check = false;
                        do
                        {
                            if (score[0] > 5 || score[0] == 0 || score[0] == 1)
                            {
                                check = false;
                                Console.WriteLine("Ошибка, попробуйте еще раз ввести оценку от 1 года до 5");
                            }
                            else
                            {
                                Console.WriteLine("Оценка внесена в базу");
                            }
                        } while (check);

                        break;

                    case "2":

                        double sumTmp = 0.0;

                        foreach (double scoreElement in score)
                        {
                            sumTmp += scoreElement;
                        }

                        score.Sort();
                        Console.WriteLine($"У {name} минимальной оценкой является {score[0]}, максимальной оценкой является {score[score.Count - 1]}, средней оценкой является {sumTmp / score.Count}");

                        break;

                    case "3":

                        return;

                    default:
                        Console.WriteLine("Вы ввели недопустимое значение");
                        break;
                }
            }
        }
    }
}
→ Ссылка