我正在学习 Java 初学者课程,他们要求我们:
编写一个程序,根据用户输入的分数列表计算 A、B、C、D 和 F 的数量。
输入所有分数后,程序必须显示一个水平条形图,其中显示每个等级的数字,如“操作”部分所示。
计数图必须为每个计数的单位显示一个“*”。
当用户输入 -1 时,程序必须显示最终图形并退出。
程序的输出必须显示提示和计数图,如上面的操作部分所示。
您可以假设用户只会输入数字。
手术:
程序启动并提示您输入测试分数或通过输入 -1 结束程序。如下所示:
Number of A's: 0
Number of B's: 0
Number of C's: 0
Number of D's: 0
Number of F's: 0
Enter a score (%) or -1 to end: 90
当您输入每个分数时,应用程序会决定分数是 A、B、C、D 还是 F,并在字母等级计数中加一。如下所示:
Number of A's: 1
Number of B's: 0
Number of C's: 0
Number of D's: 0
Number of F's: 0
Enter a score (%) or -1 to end: 95
每次输入分数时,程序都会更新计数。如下所示:
Number of A's: 2
Number of B's: 0
Number of C's: 0
Number of D's: 0
Number of F's: 0
Enter a score (%) or -1 to end: -1
输入完分数后,程序会显示一个水平条形图,其中包含 A、B、C、D 和 F 的总分。如下所示:
A's: **
B's:
C's:
D's:
F's:
规格:
数字等级 字母等级
大于或等于 90 A
小于 90 但大于或等于 80 B
小于 80 但大于或等于 70 C
小于 70 但大于或等于 60 D
低于 60 华氏度
程序结束时,显示分数、平均分数和最佳分数。
例子:
得分数:2
平均分:92.5
最好成绩:95.0
我们还被指示以至少两种方法进行编码:一种具有 void 和一种返回某些内容。
到目前为止,我只能计算输入的分数,但我似乎无法专注于记录所有输入并计算平均值并挑选出最好的分数
这是我到目前为止所拥有的:
import java.util.*;
public class ScoreTally {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int aCount = 0;
int bCount = 0;
int cCount = 0;
int dCount = 0;
int fCount = 0;
int scoreCount = -1;
double score = 0;
while (score != -1) {
if (score >= 90)
aCount++;
else if ((score < 90) && (score >= 80))
bCount++;
else if ((score < 80) && (score >= 70))
cCount++;
else if ((score < 70) && (score >= 60))
dCount++;
else if ((score < 60) && (score > 0))
fCount++;
System.out.println("Number of A's: " + aCount);
System.out.println("Number of B's: " + bCount);
System.out.println("Number of C's: " + cCount);
System.out.println("Number of D's: " + dCount);
System.out.println("Number of F's: " + fCount);
System.out.print("Enter a score (%) or -1 to end: ");
score = input.nextDouble();
scoreCount++;
}
if (score == -1)
System.out.println("Number of scores: " + scoreCount);
}
}