static void Main(string[] args) { SpeechSynthesizer synth = new SpeechSynthesizer(); //synth.Speak("Hello"); GradeBook book = new GradeBook(); book.AddGrade(91); book.AddGrade(89.5f); GradeBook book2 = book; book2.AddGrade(75); book.NameChanged += new NameChangedDelegate(OnNameChanged); book.NameChanged += new NameChangedDelegate(OnNameChanged2); book.name = "Chris' grades"; foreach (var aGrade in book.GetGrades()) { Console.WriteLine(aGrade); } Console.WriteLine(""); GradeStatistics stats = new GradeStatistics(book); stats.ComputeStatistics(); Console.WriteLine(book.name); Console.WriteLine($"Average: {stats.GetAverageGrade()}"); Console.WriteLine($"Highest: {stats.GetHighestGrade()}"); Console.WriteLine($"Lowest: {stats.GetLowestGrade()}"); }
static void Main(string[] args) { GradeBook GradeBook = new GradeBook(); bool Done = false; int MaxNumberOfAttempts = 5; int NumberOfAttempts = 0; while (!Done) { Console.WriteLine("Please enter name of file containing student grades."); try { using (FileStream stream = File.Open(Console.ReadLine(), FileMode.Open)) using (StreamReader reader = new StreamReader(stream)) { string line = reader.ReadLine(); while (line != null) { float grade = float.Parse(line); GradeBook.AddGrade(grade); line = reader.ReadLine(); } Console.WriteLine("Student's grades:"); foreach (float grade in GradeBook.GetGrades()) { Console.WriteLine(grade); } Console.WriteLine(GradeBook.Name); Console.WriteLine("Average grade:" + GradeBook.LetterGrade + " (" + GradeBook.AverageGrade() + ")"); Console.WriteLine("Highest grade:" + GradeBook.HighestGrade()); Console.WriteLine("Lowest grade:" + GradeBook.LowestGrade()); Done = true; } } catch (DirectoryNotFoundException ex) { Console.WriteLine("Invalid entry, please try again."); } catch (ArgumentException ex) { Console.WriteLine("Invalid entry, please try again."); } catch (FileNotFoundException ex) { Console.WriteLine("Could not find the file grades.txt"); } catch (UnauthorizedAccessException ex) { Console.WriteLine("You do not have access to grades.txt"); } NumberOfAttempts++; if (NumberOfAttempts > MaxNumberOfAttempts) { Console.WriteLine("Max number of attempts exceeded, exiting."); Done = true; } } Console.Read(); }
static void Main(string[] args) { GradeBook GradeBook = new GradeBook(); bool Done = false; int MaxNumberOfAttempts = 5; int NumberOfAttempts = 0; while (!Done) { Console.WriteLine("Please enter name of file containing student grades."); try { using (FileStream stream = File.Open(Console.ReadLine(), FileMode.Open)) using (StreamReader reader = new StreamReader(stream)) { string line = reader.ReadLine(); while (line != null) { float grade = float.Parse(line); GradeBook.AddGrade(grade); line = reader.ReadLine(); } Console.WriteLine("Student's grades:"); foreach (float grade in GradeBook.GetGrades()) { Console.WriteLine(grade); } Console.WriteLine(GradeBook.Name); Console.WriteLine("Average grade:" + GradeBook.LetterGrade + " (" + GradeBook.AverageGrade() +")"); Console.WriteLine("Highest grade:" + GradeBook.HighestGrade()); Console.WriteLine("Lowest grade:" + GradeBook.LowestGrade()); Done = true; } } catch (DirectoryNotFoundException ex) { Console.WriteLine("Invalid entry, please try again."); } catch (ArgumentException ex) { Console.WriteLine("Invalid entry, please try again."); } catch (FileNotFoundException ex) { Console.WriteLine("Could not find the file grades.txt"); } catch (UnauthorizedAccessException ex) { Console.WriteLine("You do not have access to grades.txt"); } NumberOfAttempts++; if (NumberOfAttempts > MaxNumberOfAttempts) { Console.WriteLine("Max number of attempts exceeded, exiting."); Done = true; } } Console.Read(); }
public void ComputeStatistics() { _highestGrade = 0; if (_book.GetGrades().Count == 0) { _lowestGrade = 0; _averageGrade = 0; } else { _lowestGrade = float.MaxValue; _averageGrade = _book.GetGrades().Sum() / _book.GetGrades().Count; } foreach (float grade in _book.GetGrades()) { _highestGrade = Math.Max(grade, (float)_highestGrade); _lowestGrade = Math.Min(grade, (float)_lowestGrade); } }
public GradeStatistics(GradeBook book) { this.HighestGrade = Double.MinValue; this.LowestGrade = Double.MaxValue; this.AverageGrade = 0; IEnumerable grades = book.GetGrades(); //this.HighestGrade = Int32 count = 0; foreach (Double grade in grades) { this.HighestGrade = Math.Max(this.HighestGrade, grade); this.LowestGrade = Math.Min(this.LowestGrade, grade); this.AverageGrade += grade; count++; } this.AverageGrade /= count; }