更新时间:2023-11-20 14:49:46
到目前为止,我不喜欢任何答案,一点也不喜欢.数据应与代码分开;代码不应包含任何立即数(硬编码).应该是这样的:
I don''t like any of the Answers so far, not at all. Data should be separated from the code; code should not contain any immediate constants (hard-coded). It should be something like that:
//data associated with symbols:
enum Grade { F = -1, D = 60, C = 70, B = 80, A = 90, }
//...
//code, no numeric literals:
static Grade GetGrade(double age) {
for (Grade grade = Grade.A; grade > Grade.F; grade--)
if (age > (int)grade)
return grade;
return Grade.F;
} //GetGrade
然后,您的问题是什么,您可以轻松获得评分,让您的问题变得很清楚..
Then what is your problem , you can get the grade easily, make your problem clear..
<pre lang="cs">private String GetGrade(int courseAverage)<br />
{<br />
string letterGrade = "";<br />
if (courseAverage >= 90)<br />
letterGrade = "A";<br />
else if (courseAverage > 80)<br />
letterGrade = "B";<br />
else if (courseAverage > 70)<br />
letterGrade = "C";<br />
else if (courseAverage > 60)<br />
letterGrade = "D";<br />
else<br />
letterGrade = "F";<br />
return letterGrade;<br />
}</pre><br />
const double homeworkWeight = 0.25;
const double quizWeight = .35;
const double finalExamWeight = .40;
private String CalculateGrade(string studentName, int homework1, int homework2, int quiz1, int quiz2, int finalExam)
{
string letterGrade = "Incomplete";
double homeworkContribution = 0;
double quizContribution = 0;
double finalExamContribution = 0;
homeworkContribution = (homework1 + homework2) / 2 * homeworkWeight;
quizContribution = (quiz1 + quiz2) / 2 * quizWeight;
finalExamContribution = (finalExam) * finalExamWeight;
double courseAverage = homeworkContribution + quizContribution + finalExamContribution;
if (courseAverage >= 90)
letterGrade = "A";
else if (courseAverage > 80)
letterGrade = "B";
else if (courseAverage > 70)
letterGrade = "C";
else if (courseAverage > 60)
letterGrade = "D";
else
letterGrade = "F";
return studentName + "'s" + "\nCourse Average : " + courseAverage + "\nletterGrade : " + letterGrade;
}