我不确定如何显示用户输入的每个课程。因为它只显示输入的最后一个课程。我没想到什么?
while (quit != "0")
{
//get user data
Console.WriteLine("Enter course # {0}:", counter);
course = Console.ReadLine();
Console.WriteLine("Enter grade value of 1-4 # {0}:", counter);
grade = Convert.ToInt32 (Console.ReadLine());
Console.WriteLine("Enter credit hours from 1-3 # {0}:",counter);
creditHours = Convert.ToInt32 (Console.ReadLine());
//calculate grade * creditHours and store in gradePoints
gradePoints = grade * creditHours;
//running total of credit hours and grades
totalGradePoints += gradePoints;
totalCreditHours += creditHours;
Console.WriteLine("Press '0' to quit or any key to continue.");
quit = Console.ReadLine();
counter++;// adds one to counter
}//end while
// calculate gpa
double GPA = totalGradePoints / totalCreditHours;
//display course(s) credit hours and gpa
Console.WriteLine("Course(s): {0}", course);
Console.WriteLine("Credit hours: {0}",totalCreditHours);
Console.WriteLine("GPA: {0:n2}",GPA);
答案 0 :(得分:0)
你需要移动
Console.WriteLine("Course(s): {0}", course);
在while
循环内部。您只在循环结束后显示它。所以这就是你看最后一门课程的原因。
如果您不想立即显示它们,请将课程存储到一个集合中,并在while
循环后遍历该集合并显示它们:
var courses = new List<string>();
while(...)
{
...
course = Console.ReadLine();
courses.Add(course);
...
}
foreach(var c in courses)
Console.WriteLine(c);
答案 1 :(得分:0)
您在while
循环中设置变量,因此循环的每次迭代都会覆盖相同的变量。
相反,请尝试使用List<T>
对象或数组,这两个对象或数组都可以包含多个值,并考虑为您的数据创建class
,因为它们全部关联:
class CourseData
{
public string Course { get; set; }
public int Grade { get; set; }
public nt CreditHours { get; set; }
public int GradePoints { get { reutrn Grade * CreditHours; } }
}