using System.Collections.Generic;
public static void Main()
Dictionary<string, double> studentGrades = new Dictionary<string, double>();
Console.Write("Enter a student's name (or type 'done' to finish): ");
string studentName = Console.ReadLine();
if (studentName.ToLower() == "done")
Console.Write($"Enter {studentName}'s grade (0-100): ");
string studentGrade = Console.ReadLine();
if (int.TryParse(studentGrade, out int grade))
if (grade >= 0 && grade <= 100)
studentGrades[studentName] = grade;
Console.WriteLine("Invalid input! Please enter a number between 0-100.");
Console.WriteLine("Invalid input! Please enter an integer.");
if (studentGrades.Count > 0)
int studentCount = studentGrades.Count;
Console.WriteLine($"Total students: {studentCount}");
double totalGrade = studentGrades.Values.Sum();
double averageGrade = totalGrade / studentCount;
Console.WriteLine($"Class average: {averageGrade:F2}");
var highestGradeEntry = studentGrades.FirstOrDefault(entry => entry.Value == studentGrades.Values.Max());
Console.WriteLine($"Highest grade: {highestGradeEntry.Key} with {highestGradeEntry.Value:F2}");
var lowestGradeEntry = studentGrades.FirstOrDefault(entry => entry.Value == studentGrades.Values.Min());
Console.WriteLine($"Lowest grade: {lowestGradeEntry.Key} with {lowestGradeEntry.Value:F2}");
Console.WriteLine("What would you like to do?");
Console.WriteLine("- Type 'search' to search for a student's grade");
Console.WriteLine("- Type 'update' to update a student's grade");
Console.WriteLine("- Type 'reset' to reset all data and start over");
string actionChoice = Console.ReadLine();
if (actionChoice.ToLower() == "search")
Console.WriteLine("Enter the student's name: ");
string searchStudent = Console.ReadLine();
var searchEntry = studentGrades.FirstOrDefault(entry => entry.Key == searchStudent);
Console.WriteLine($"{searchStudent}'s grade is: {searchEntry.Value:F2}.");
Console.WriteLine("No student entries found. Data will not be shown.");
Console.WriteLine("Would you like to reset and start over? (yes/no)");
string resetChoice = Console.ReadLine();
if (resetChoice != "yes")
Console.WriteLine("Thank you!");