【发布时间】:2014-09-22 05:06:38
【问题描述】:
我正在为大学做一个项目,并且已经坐了 3 个小时来试图找出解决这个问题的方法。问题是:
场景:
您想计算一个学生在一个学期内参加的多个课程的 GPA(平均绩点)。
输入:
- 学生的姓名。
- 学生所学课程的班级名称。
- 学生所学课程的班级字母成绩。
- 学生所学课程的课程学分。
处理:
- 接受并处理类,直到用户指示它们完成为止。
- 累计学生所学的学分。
- 计算学生获得的“积分”总数为: 一种。对于每个班级,通过将该班级的学分乘以字母等级的数字等值来计算分数。 (A=4.0, B=3.0, C=2.0, D=1.0, F=0) 湾。所有课程的总分。
- 将 GPA 计算为“积分”总数除以总学分。
输出:
显示一条措辞优美的信息,其中包括学生的姓名和该学生在该学期取得的 GPA(带 2 位小数的小数点)。
我目前拥有的是:
static void Main(string[] args)
{
String StudentName;
//Error Trapping
try
{
Console.WriteLine("Welcome to The GPA Calculator");
Console.WriteLine("Hit any key to continue...");
Console.ReadKey();
Console.Write("Please enter your name: ");
StudentName = Convert.ToString(Console.ReadLine());
InputGradeInfo();
}
//Error Repsonse
catch (System.Exception e)
{
Console.WriteLine("An error has Occurred");
Console.WriteLine("The error was: {0}" , e.Message);
//Belittle the User
Console.WriteLine("Good Job, you Broke it.");
Console.ReadLine();
}
}
public static double InputGradeInfo()
{
String ClassName;
Char LetterGrade;
Double LetterGradeValue;
Double CreditHours;
Double ValueOfClass;
Console.Write("Please enter the class title: ");
ClassName = Convert.ToString(Console.ReadLine());
Console.Write("Please enter the total credits this class is worth: ");
CreditHours = Convert.ToDouble(Console.ReadLine());
Console.Write("Please enter the grade letter recived: ");
LetterGrade = Convert.ToChar(Console.ReadLine());
switch (LetterGrade)
{
case 'a': LetterGradeValue = 4;
break;
case 'A': LetterGradeValue = 4;
break;
case 'b': LetterGradeValue = 3;
break;
case 'B': LetterGradeValue = 3;
break;
case 'c': LetterGradeValue = 2;
break;
case 'C': LetterGradeValue = 2;
break;
case 'd': LetterGradeValue = 1;
break;
case 'D': LetterGradeValue = 1;
break;
case 'f': LetterGradeValue = 0;
break;
case 'F': LetterGradeValue = 0;
break;
default: LetterGradeValue = 0;
break;
}
ValueOfClass = CalculateClass(LetterGradeValue, CreditHours);
return ValueOfClass;
}
public static double CalculateClass(double LetterGrade, double CreditHours)
{
Double CreditTotal;
CreditTotal = CreditHours * LetterGrade;
return CreditTotal;
}
我遇到的问题是如何循环信息收集,每次将其保存到不同的变量,然后在最后使用用户输入打破循环。我们还没有了解数组,所以不在讨论范围内。在我把那个循环收集下来之后,计算总 GPA 和显示就不难了。
另外我还没有了解创建的类,所以我也不能使用它们
【问题讨论】:
-
那么问题来了?
-
在创建 list.Sum() 之后将所有成绩保存在 List
或 List 中。还有你的循环在哪里? -
//Belittle the Userlol ...你可能会重新考虑这个;)
标签: c#