当前位置: 首页 > 知识库问答 >
问题:

编写一个程序,其中包含虽然循环代码,以计算用户输入的考试分数

周马鲁
2023-03-14

在我正在做的一项任务中,我为下面的问题编写了一个程序。

“编写一个程序,读取以0到100的整数百分比给出的考试分数列表。显示总分数和每个字母等级类别的分数,如下所示:90-100是a,80-89是B,70-79是C,60-69是D,0-59是F。使用负分数作为前哨值,指示输入结束。”

例如,输入:98,87,86,85,85,78,73,72,72,70,66,63,50,-1

产出应为:

进入的年级总数为13个

A's=1

B's=4

C=5

D’s=2

F’s=1

//This is the code I wrote.// 
import java.util.Scanner;
public class grade
 {
public static void main(String[] args)
 {
        int A_grades = 0;
        int B_grades = 0;
        int C_grades = 0;
        int D_grades = 0;
        int F_grades = 0;
        int count=0;
        Scanner in = new Scanner(System.in);
        System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
        int score = in.nextInt();
 while(score>0)
 {
       count++;
 if(score>=90 && score<=100)
        A_grades++;
    else if(score>=80 && score<=89)
        B_grades++;
    else if(score>=70 && score<=79)
        C_grades++;
    else if(score>=60 && score<=69)
        D_grades++;
    else if(score>=0 && score<=59)
        F_grades++;
    System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
 score = in.nextInt();
 } //end while
 System.out.println("Total number of grades :"+ count);
 System.out.println("Total number of A grades :"+ A_grades);
 System.out.println("Total number of B grades :"+ B_grades);
 System.out.println("Total number of C grades :"+ C_grades);
 System.out.println("Total number of D grades :"+ D_grades);
 System.out.println("Total number of F grades :"+ F_grades);
 } // end main
 } // end class

下面是程序的输出。

将考试分数输入为0到100之间的整数百分比:

88 98 78 68 55 45 -1

将考试分数输入为0到100之间的整数百分比:

将考试分数输入为0到100之间的整数百分比:

将考试分数输入为0到100之间的整数百分比:

将考试分数输入为0到100之间的整数百分比:

将考试分数输入为0到100之间的整数百分比:

将考试分数输入为0到100之间的整数百分比:

年级总数:6

A级总数:1

B级总数:1

C级总人数:1

D级总人数:1

F级总人数:2

在输出中,它不断重复“将考试分数输入为0到100之间的整数百分比:”

如何编写只显示一次的代码?

共有3个答案

钮实
2023-03-14

谢谢你所有的答案。

这是最终的代码,它工作得非常完美。

 import java.util.Scanner;
public class grade
 {
 public static void main(String[] args)
 {
        int A_grades = 0;
        int B_grades = 0;
        int C_grades = 0;
        int D_grades = 0;
        int F_grades = 0;
    int count=0;
    Scanner in = new Scanner(System.in);
    System.out.println("Enter exam score as integer percentage in range 0 to 100");
    System.out.println("And enter a negative score at the end of the list :");
    int score = in.nextInt();
 while(score>0)
     {
       count++;
 if(score>=90 && score<=100)
        A_grades++;
    else if(score>=80 && score<=89)
        B_grades++;
    else if(score>=70 && score<=79)
        C_grades++;
    else if(score>=60 && score<=69)
        D_grades++;
    else if(score>=0 && score<=59)
        F_grades++;
    score = in.nextInt();
 } //end while
 System.out.println("Total number of grades :"+ count);
 System.out.println("Total number of A grades :"+ A_grades);
 System.out.println("Total number of B grades :"+ B_grades);
 System.out.println("Total number of C grades :"+ C_grades);
 System.out.println("Total number of D grades :"+ D_grades);
 System.out.println("Total number of F grades :"+ F_grades);
 } // end main
 } // end class
蒋硕
2023-03-14

它持续打印输出的原因是,您使用的“Scanner”类不会暂停输入。

我建议你使用缓冲读取器。

我假设您每次都需要要求用户输入一个值。因此,如果您删除文本以解决多重显示问题,用户将不会收到消息。

我附上了一段代码,带有一个BufferedReader,可以解决您的问题:

//This is the code I wrote.// 
import java.util.Scanner;
import java.io.*;
import java.io.BufferedReader;
import java.util.*;

public class Grade{
	public static void main(String[] args){
		int A_grades = 0;
		int B_grades = 0;
		int C_grades = 0;
		int D_grades = 0;
		int F_grades = 0;
		int count=0;
		try{
			//Scanner in = new Scanner(System.in);
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );
			System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
			int score = Integer.parseInt(br.readLine());
			while(score>0){
				count++;
				if(score>=90 && score<=100)
					A_grades++;
				else if(score>=80 && score<=89)
					B_grades++;
				else if(score>=70 && score<=79)
					C_grades++;
				else if(score>=60 && score<=69)
					D_grades++;
				else if(score>=0 && score<=59)
					F_grades++;
				System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
				score = Integer.parseInt(br.readLine());
			} //end while
		}catch(IOException ioe){}
		System.out.println("Total number of grades :"+ count);
		System.out.println("Total number of A grades :"+ A_grades);
		System.out.println("Total number of B grades :"+ B_grades);
		System.out.println("Total number of C grades :"+ C_grades);
		System.out.println("Total number of D grades :"+ D_grades);
		System.out.println("Total number of F grades :"+ F_grades);
	} // end main
} // end class
陶胤
2023-03-14

移除系统。出来println(“将考试分数输入为0到100之间的整数百分比:”

 类似资料:
  • 在生命数==0之后,while语句为false,必须退出循环。但在这种情况下,即使循环为false,也会执行循环。

  • 我对java非常陌生,需要帮助。基本上,我有一个程序,要求用户输入一个数字。当输入该数字时,它会将该数字之前的所有奇数相加。我正在尝试(但失败)做的是,做另一个循环,当提示用户请求一个数字来求奇数之和时,我想让它只在输入奇数时继续,否则它将不断重复询问用户,直到他们输入奇数为止。我知道使用循环可以解决这个问题,但我不知道如何让它工作。 这是我的密码: 提前谢谢!

  • [print('帮助我是新的编程,我需要这个编码在python')]#当我试图运行这个程序 它运行第一个函数,打印,然后在IDLE中不运行任何其他功能。

  • 我正在尝试编写一个程序,允许用户输入一系列整数形式的考试分数。 我希望输出看起来像: 输入整数,或输入 -99 退出:80 输入一个整数,或-99退出:95 输入整数,或-99退出:65 输入整数,或-99退出:-99 最大: 95最小: 65 第二轮: 输入整数,或-99退出:-99 您没有输入任何数字。 我把第一部分记下来了,但是当我输入-99时,我似乎不知道如何得到“你没有输入任何数字”行。

  • 编写一个程序,提示用户输入两个点 (x1,y1) 和 (x2, y2) 并显示它们之间的距离。计算距离的公式为:(x2-x1)^2 (y2-y1)^2 的平方根 这就是我所拥有的: 然而: 我不断得到以下错误: 请帮忙。谢谢

  • 我试图创建一个函数,使用不同的字段作为权重将数据分成十分之一,这样我就可以有相等的暴露桶。在这样做的时候,我创建了一个简单的例子,我试图进入3个桶。我确实在第一部分遇到了困难,那就是让这个while循环工作起来: 我的成绩是0,0 谢谢!