1

我正在尝试用 Java 编写一个程序,当所有季度的成绩以及期中考试和期末考试的成绩都在时,它会返回一个字母成绩。到目前为止,它是这样的:

public static void main (String args[])
{
   System.out.println("To figure out final grade answer these questions. Use only numbers, and include decimal points where applicable");
   Scanner g = new Scanner(System.in); 
   System.out.println("What was your quarter one grade?");
   int o = g.nextInt();
   System.out.println("What was your quarter two grade?");
   int t = g.nextInt(); 
   System.out.println("What was your quarter three grade?");
   int h = g.nextInt();
   System.out.println("What was your quarter four grade?");
   int r = g.nextInt();
   System.out.println("What was your grade on the midterm?");
   int m = g.nextInt();
   System.out.println("What was your grade on the final?");
   int f = g.nextInt();
   double c = 0.2 * o + 0.2 * t + 0.2 * h + 0.2 * r + 0.1 * m + 0.1 *f;
   if(c >= 95)
   {
        System.out.println("A+");
   } 
   else if(c = ?)
   {
       System.out.println("A");
   }  
}

}

我想在代码的最后一个 else if 语句中显示 90 到 94 的范围。有人建议我使用 Math.random 作为命令,但我不知道要写什么方程才能在我提到的范围内工作。任何帮助将非常感激。提前致谢。

4

3 回答 3

5

由于您已经c >= 95在第一条语句中进行了测试,因此您只需要检查下限:

if(c >= 95) { /* A+ */ }
else if(c >= 90) { /* A */ }
else if(c >= 85) { /* A- */ }
...
于 2013-01-30T23:29:24.117 回答
0
if(c >= 95)
   {
        System.out.println("A+");
   } 
   else if(c >= 90 && c <=94)
   {
       System.out.println("A");
   }  

编辑您可以根据需要摆脱, && c <=94因为您已经检查了上限

于 2013-01-30T23:49:33.270 回答
0

这是一种稍微不同的动态生成成绩的方法,

private static final String[] constants = {"F","D","C","B","A"};
public String getGrade(float score) {
    if(score < 0)
        throw new IllegalArgumentException(Float.toString(score));

    if((int)score <= 59)
        return constants[0];

    if((int)score >= 100)
        return constants[4];

    int res = (int) (score/10.0);
    return constants[res-5];
}
于 2015-06-18T12:48:38.577 回答