public class Student
{
public string Name { get; set; }
public double AverageGrade { get; private set; }
private List<double> grades;
public Student(string name)
{
Name = name;
grades = new List<double>();
AverageGrade = 0;
}
public void AddGrade(int grade)
{
if (grade < 1 || grade > 5)
throw new Exception("grade must be in range[2, 5]");
grades.Add(grade);
CalculateAverage();
}
private void CalculateAverage()
{
AverageGrade = grades.Count > 0 ? grades.Average() : 0;
}
}
class Program {
public static void Main() {
Student test = new Student("Gleb");
test.AddGrade(5);
test.AddGrade(5);
test.AddGrade(3);
test.AddGrade(3);
Console.WriteLine("average: " + test.AverageGrade);
}
}
cHVibGljIGNsYXNzIFN0dWRlbnQKewogICAgcHVibGljIHN0cmluZyBOYW1lIHsgZ2V0OyBzZXQ7IH0KICAgIHB1YmxpYyBkb3VibGUgQXZlcmFnZUdyYWRlIHsgZ2V0OyBwcml2YXRlIHNldDsgfQogICAgcHJpdmF0ZSBMaXN0PGRvdWJsZT4gZ3JhZGVzOwoKICAgIHB1YmxpYyBTdHVkZW50KHN0cmluZyBuYW1lKQogICAgewogICAgICAgIE5hbWUgPSBuYW1lOwogICAgICAgIGdyYWRlcyA9IG5ldyBMaXN0PGRvdWJsZT4oKTsKICAgICAgICBBdmVyYWdlR3JhZGUgPSAwOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIEFkZEdyYWRlKGludCBncmFkZSkKICAgIHsKICAgICAgICBpZiAoZ3JhZGUgPCAxIHx8IGdyYWRlID4gNSkKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiZ3JhZGUgbXVzdCBiZSBpbiByYW5nZVsyLCA1XSIpOwogICAgICAgIGdyYWRlcy5BZGQoZ3JhZGUpOwogICAgICAgIENhbGN1bGF0ZUF2ZXJhZ2UoKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgQ2FsY3VsYXRlQXZlcmFnZSgpCiAgICB7CiAgICAgICAgQXZlcmFnZUdyYWRlID0gZ3JhZGVzLkNvdW50ID4gMCA/IGdyYWRlcy5BdmVyYWdlKCkgOiAwOwogICAgfQp9CgpjbGFzcyBQcm9ncmFtIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkgewogICAgICAgIFN0dWRlbnQgdGVzdCA9IG5ldyBTdHVkZW50KCJHbGViIik7CiAgICAgICAgdGVzdC5BZGRHcmFkZSg1KTsKICAgICAgICB0ZXN0LkFkZEdyYWRlKDUpOwogICAgICAgIHRlc3QuQWRkR3JhZGUoMyk7CiAgICAgICAgdGVzdC5BZGRHcmFkZSgzKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiYXZlcmFnZTogIiArIHRlc3QuQXZlcmFnZUdyYWRlKTsKICAgIH0KfQ==