Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停留在Java程序上,计算成绩并显示结果_Java_Find_Average - Fatal编程技术网

停留在Java程序上,计算成绩并显示结果

停留在Java程序上,计算成绩并显示结果,java,find,average,Java,Find,Average,我正在学习Java初学者课程,他们要求我们: 编写一个程序,根据用户输入的分数列表统计a、B、C、D和F的数量 输入所有分数后,程序必须显示 每个等级计数的水平条形图,如操作部分所示 理货图必须为每个理货单位显示一个“*” 当用户输入a-1时,程序必须显示最终图形和 退出 程序的输出必须显示提示和计数图 如上面的操作部分所示 您可以假设用户只输入数字 操作: 程序启动并提示您输入测试分数或结束 通过输入a-1来启动程序。例如: Number of A's: 0 Number of B's:

我正在学习Java初学者课程,他们要求我们:

  • 编写一个程序,根据用户输入的分数列表统计a、B、C、D和F的数量

  • 输入所有分数后,程序必须显示 每个等级计数的水平条形图,如操作部分所示

  • 理货图必须为每个理货单位显示一个“*”

  • 当用户输入a-1时,程序必须显示最终图形和 退出

  • 程序的输出必须显示提示和计数图 如上面的操作部分所示

  • 您可以假设用户只输入数字

操作:

程序启动并提示您输入测试分数或结束 通过输入a-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
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's: **
B's:
C's:
D's:
F's:
当您输入每个分数时,应用程序将决定该分数是否正确 A、B、C、D或F,并在字母等级统计中加一。像 以下:

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
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's: **
B's:
C's:
D's:
F's:
每次输入分数时,程序都会更新计分结果。例如:

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
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's: **
B's:
C's:
D's:
F's:
输入完分数后,程序将显示一条水平线 A、B、C、D和F的计数条形图。像 以下:

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
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's: **
B's:
C's:
D's:
F's:
规格:

数字等级字母等级

大于或等于90安

小于90但大于或等于80 B

低于80但高于或等于70摄氏度

小于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);

        }
    }
import java.util.*;
公开课计分{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int aCount=0;
int bCount=0;
int cCount=0;
int dCount=0;
int fCount=0;
整数分数=-1;
双倍得分=0;
while(分数!=-1){
如果(分数>=90)
aCount++;
否则如果((分数<90)和(&(分数>=80))
bCount++;
否则如果((分数<80)和(&(分数>=70))
cCount++;
否则如果((分数<70)和(&(分数>=60))
dCount++;
否则如果((分数<60)和(&(分数>0))
fCount++;
System.out.println(“A的数量:+A计数);
System.out.println(“B的数量:+B计数);
System.out.println(“C的数量:+Account”);
System.out.println(“D的数量:+D计数);
System.out.println(“F的数量:+fCount”);
系统输出打印(“输入分数(%)或-1结束:”;
score=input.nextDouble();
scoreCount++;
}
如果(分数==-1)
System.out.println(“分数数:”+分数计数);
}
}

首先,您已经有了统计结果的代码

        int aCount = 0;
        int bCount = 0;
        int cCount = 0;
        int dCount = 0;
        int fCount = 0;
        int scoreCount = -1;
您需要的是另一个字段,它将保存总分,即

int totalScore = 0;
您需要在进入while循环之前提示输入第一个分数,否则它将无法在第一次迭代中正常运行。在结束(或开始)时,您需要使用该轮输入的任何内容更新
totalScore
,如果输入为-1,则不进行更新

平均分数只是
totalScore/scoreCount
您应该在完成while循环后计算出来

要获得最佳分数,您可以为
int=maxScore

您可以在循环的每次迭代中使用

maxScore=Math.max(maxScore,score)


max返回两个数字中的最大值。

这相当简单。声明两个变量,一个用于avgScore,一个用于在程序开始时

double bestScore = 0.0;
double avgScore = 0.0;
double totalScore = 0.0;
while (score != -1) {
                totalScore = totalScore + score;
                if(score > bestScore)
                    bestScore = score;  
                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);
                avgScore = totalScore/scoreCount;
                System.out.println("Best Score: " + bestScore);
                System.out.println("Avg Score: " + avgScore);
            }
double bestScore=0.0;
双avgScore=0.0;
双倍总分=0.0;
while(分数!=-1){
总分=总分+总分;
如果(分数>最佳分数)
最佳分数=分数;
如果(分数>=90)
aCount++;
否则如果((分数<90)和(&(分数>=80))
bCount++;
否则如果((分数<80)和(&(分数>=70))
cCount++;
否则如果((分数<70)和(&(分数>=60))
dCount++;
否则如果((分数<60)和(&(分数>0))
fCount++;
System.out.println(“A的数量:+A计数);
System.out.println(“B的数量:+B计数);
System.out.println(“C的数量:+Account”);
System.out.println(“D的数量:+D计数);
System.out.println(“F的数量:+fCount”);
系统输出打印(“输入分数(%)或-1结束:”;
score=input.nextDouble();
scoreCount++;
}
如果(分数==-1){
System.out.println(“分数数:”+分数计数);
avgScore=总分/分数计数;
System.out.println(“最佳分数:+bestScore”);
System.out.println(“平均分数: