Класс "Студент" и "Студенческая группа" - C#
Формулировка задачи:
Класс «СТУДЕНТ» содержит закрытые поля: номер студенческого билета, фамилия, имя, отчество, дата рождения, массив из пяти оценок и метод подсчета среднего балла. Класс «СТУДЕНЧЕСКАЯ ГРУППА» содержит закрытые поля: название группы, курс, объекты класса студент, метод подсчета среднего балла для группы и метод вывода списка студентов, отсортированный по фамилиям в алфавитном порядке.
Помогите пожалуйста, очень срочно нужно.
Решение задачи: «Класс "Студент" и "Студенческая группа"»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
namespace CyberF
{
class Student
{
public string Card;
public string FirstName;
public string LastName;
public string MiddleName;
public DateTime BirthDay;
public int[] Evaluations = new int[5];
public Student(string card, string firstName, string lastName, string middleName, DateTime birthDay, int[] evaluations)
{
Card = card;
FirstName = firstName;
LastName = lastName;
MiddleName = middleName;
BirthDay = birthDay;
Evaluations = evaluations;
}
public double GetAverageScore() => Evaluations.Average();
public override string ToString()
{
return $"#{Card} {LastName} {FirstName.Substring(0, 1)}. {MiddleName.Substring(0, 1)}. [Average score: {GetAverageScore():N2}]";
}
}
class StudentGroup
{
List<Student> _students = new List<Student>();
public string Name;
public string Course;
public StudentGroup(string name, string course, List<Student> students)
{
Name = name;
Course = course;
_students.AddRange(students);
}
public double GetAverageScore()
{
return _students.Average(x => x.GetAverageScore());
}
public IEnumerable<string> SortByLastName()
{
foreach (var item in _students.OrderBy(x => x.LastName))
{
yield return item.ToString();
}
}
public override string ToString()
{
return $"Group: {Name}, course {Course}. Number of students: {_students.Count}";
}
}
class Program
{
static void Main(string[] args)
{
List<Student> students = new List<Student>()
{
new Student("1", "Alexey", "Frolov", "Igorevich", new DateTime(1990, 11, 2), new int[] { 3, 4, 4, 5, 3}),
new Student("2", "Sergey", "Semenov", "Alexeevich", new DateTime(1992, 1, 12), new int[] { 4, 3, 3, 3, 4}),
new Student("3", "Andrey", "Volkov", "Konstantinovich", new DateTime(1993, 10, 6), new int[] { 3, 5, 4, 4, 3}),
new Student("4", "Ilya", "Ivanov", "Igorevich", new DateTime(1991, 8, 19), new int[] { 3, 4, 4, 5, 4}),
new Student("5", "Arseniy", "Kot", "Arkadievich", new DateTime(1990, 6, 22), new int[] { 4, 5, 4, 3, 4}),
new Student("6", "Pavel", "Fedorov", "Dmitrievich", new DateTime(1992, 5, 11), new int[] { 3, 5, 4, 5, 5})
};
Console.WriteLine("Students without sorting:");
foreach (var student in students)
{
Console.WriteLine(student);
}
StudentGroup group = new StudentGroup("CyberF", "1", students);
Console.WriteLine($"\n{group}" +
$"\nAverage score of the group: {group.GetAverageScore():N2}.");
Console.WriteLine("\nSorted students by lastname:");
foreach (var student in group.SortByLastName())
{
Console.WriteLine(student);
}
}
}
}