【发布时间】:2013-09-30 15:05:14
【问题描述】:
我一直在做的这个作业是关于要求用户输入他们的考试成绩和作业成绩,然后使用这个表格给他们打分:
我们还没有学习过数组,目前还只是了解了基本的循环。有没有办法使用 for 或 while 循环而不是几十个 if 语句来做到这一点?这是我目前所拥有的:
import java.util.Scanner;
public class GradeCalculator {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
int numberOfAssignments = 7;
int numberOfLabs = 16 ;
int totalAssignmentScore;
int totalLabScore;
int totalTestScore = 0;
int totalHomeworkScore = 0;
int zyante;
int attendance;
int midterm1;
int midterm2;
int finalTest;
int quizScore;
int pat;
for (int i = 1; i < numberOfAssignments; i++) {
System.out.println("Enter your score obtained in Assignment No."+ i + ":");
totalAssignmentScore = scanner.nextInt();
{
totalHomeworkScore += totalAssignmentScore;
System.out.println(totalHomeworkScore);
}
}
for (int i = 1; i < numberOfLabs; i++) {
System.out
.println("Enter your score obtained in Lab No." + i + ":");
totalLabScore = scanner.nextInt();
{
totalHomeworkScore += totalLabScore;
System.out.println(totalHomeworkScore);
}
}
System.out.println("Enter your score obtained in Zyante: ");
zyante = scanner.nextInt();
totalHomeworkScore +=zyante;
System.out.println("Enter your total score obtained in Attendance: ");
attendance = scanner.nextInt();
totalHomeworkScore += attendance;
System.out.println("Enter your Midterm no. 1 score: ");
midterm1 = scanner.nextInt();
totalTestScore += midterm1;
System.out.println("Enter your Midterm no. 2 score: ");
midterm2 = scanner.nextInt();
totalTestScore += midterm2;
System.out.println("Enter your Final exam score: ");
finalTest = scanner.nextInt();
totalHomeworkScore += finalTest;
System.out.println("Enter your total score in the in-class Quizzes: ");
quizScore = scanner.nextInt();
totalHomeworkScore += quizScore;
System.out.println("Enter your score for PAT: ");
pat = scanner.nextInt();
totalHomeworkScore += pat;
System.out.println("Your total test score is: " + totalTestScore );
System.out.println("your total homework score is: " + totalHomeworkScore);
}
}
【问题讨论】:
-
您是否希望能够输出
totalTestScore + totalHomeworkScore = GRADE的结果,其中GRADE 是G,A, orP`,我是否正确? -
这只是一个任意表,还是您可以根据两个分数算术计算成绩?
-
我们不能将两者加在一起,所以它必须类似于“如果你的考试成绩是 X,而你的作业成绩是 Y,那么你通过/不及格”所以如果你的成绩是G 或 A,你通过了课程
-
如果截断是任意的,那么你需要了解数组,如果有算法,那么你可以使用它。
-
你学过整数除法/取模吗?如果您有(实际上,即使您没有),您可以使用这些将问题减少为一些特殊情况以及测试和作业分数的线性组合。请注意,“G”区域的边界是一条从左上角到右下角的线,另外还有一些向左的“凸起”。另请注意,如果
T<150或H<600,等级为“P”。像这样的模式可以让您简化问题。不确定这是否是您的讲师的意图。
标签: java arrays loops for-loop while-loop