69 lines
1.8 KiB
C#
69 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace GPA_Calculator
|
|
{
|
|
internal class Program
|
|
{
|
|
static List<Grade> GradesList = new List<Grade>();
|
|
static void Main(string[] args)
|
|
{
|
|
|
|
string inputGrade = string.Empty;
|
|
while (inputGrade != "q")
|
|
{
|
|
RenderGrades();
|
|
inputGrade = Console.ReadLine();
|
|
inputGrade = inputGrade.ToUpper().Replace("+", "Plus").Replace("-", "Minus");
|
|
if(Enum.TryParse<Grade>(inputGrade, out Grade grade))
|
|
{
|
|
GradesList.Add(grade);
|
|
}
|
|
else if (inputGrade == "clear")
|
|
{
|
|
GradesList = new List<Grade>();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static void RenderGrades()
|
|
{
|
|
Console.Clear();
|
|
Console.WriteLine("Enter a Grade:\t\t\tGrades:");
|
|
decimal totalGrade = 0;
|
|
foreach (var item in GradesList)
|
|
{
|
|
Console.WriteLine("\t\t\t\t" + item.ToString().Replace("Plus", "+").Replace("Minus", "-"));
|
|
totalGrade += (int)item;
|
|
}
|
|
if (GradesList.Count > 0)
|
|
{
|
|
Console.SetCursorPosition(0, 3);
|
|
Console.WriteLine("GPA: ");
|
|
Console.WriteLine((totalGrade / GradesList.Count).ToString("0.##"));
|
|
}
|
|
|
|
Console.SetCursorPosition(0, 1);
|
|
|
|
}
|
|
|
|
enum Grade
|
|
{
|
|
APlus = 9,
|
|
A = 8,
|
|
AMinus = 7,
|
|
BPlus = 6,
|
|
B = 5,
|
|
BMinus = 4,
|
|
CPlus = 3,
|
|
C = 2,
|
|
CMinus = 1,
|
|
Fail = 0,
|
|
F = 0,
|
|
D = 0,
|
|
}
|
|
}
|
|
}
|