Программа с Листами
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;
}
}
}
}
}