我需要对我的java项目进行快速调整

时间:2013-12-10 05:49:14

标签: java netbeans

你有没有机会帮我解决我发布的问题?这不是一个难以置信的难题。我只需要一个小调整。如果可以,请你帮助我。 我需要它将A,B,C,D和S'的学生数加起来,并将它们显示在println中。

/*
 * Array program to determine grades
 * Nick Thomas
 * 12-8-2013
 * JDK version 1.7.0_25
 */
import javax.swing.JOptionPane;

public class Grades {
    public static void main(String[] args) {
        int scores[] = {90,100,80,85,63,73,80,92,90};
        int sum = 0;
        int largest = scores[0];
        int gradeA= scores[0];
        int gradeB= scores[0];
        int gradeC= scores[0];
        int gradeD= scores[0];
        int gradeF= scores[0];
        int smallest = scores[0];
                for (int i = 0; i < 9; i++) {
            sum = sum + scores[i];        
            if (scores[ i ] > largest){
                largest = scores[i];
        }
            if (scores[i] < smallest) {
                smallest = scores[i];
            if ((scores[i] >= 90)) {
            scores[i]=gradeA;
        } else {
            if ((scores[i] <90)&(scores[i]>=80)) {
                scores[i]=gradeB;
            } else {
                if ((scores[i]<80)&(scores[i]>=70)) {
                    scores[i]=gradeC;
               } else {
                if ((scores[i]<70)&(scores[i]>=60)) {
                   scores[i]=gradeD;
                 } else {
                 scores[i]=gradeF;
                }}}}}}
        JOptionPane.showMessageDialog(null, "The sum is " + sum
                + "\nThe Average is " + sum/9
                + "\nThe largest score is " + largest
                +"\nThe smallest score is " + smallest
                +"\nThe number of students with scores of 90-100 (A) is " +  gradeA
                +"\nThe number of students with scores of 80-89 (B) is " + gradeB
                +"\nThe number of students with scores of 70-79 (C) is " + gradeC
                +"\nThe number of students with scores of 60-69 (D) is " + gradeD
                +"\nThe number of students with scores of 0-59 (F) is " + gradeF);
            }}

2 个答案:

答案 0 :(得分:1)

您正在尝试获得两个数字之间得分的学生人数,因此您需要的是计算有多少学生的成绩为A,B,C ...... 而不是做:

int gradeA= scores[0];

你应该这样做:

 int gradeA = 0;

因为你想要计算有多少人获得这个等级。并为其他人这样做。然后,而不是:

if ((scores[i] >= 90))
            scores[i]=gradeA;

你实际上应该增加获得这个等级的人数,你这样做:

if ((scores[i] >= 90))
            gradeA++;

最后,每组的数量都是正确的。

答案 1 :(得分:0)

这就是你要找的东西。

public static void main(String[] args) {
        int scores[] = { 90, 100, 80, 85, 63, 73, 80, 92, 90 };
        int sum = 0;
        int largest = scores[0];
        int gradeA = scores[0];
        int gradeB = scores[0];
        int gradeC = scores[0];
        int gradeD = scores[0];
        int gradeF = scores[0];
        int smallest = scores[0];

        int counterA=0;
        int counterB=0;
        int counterC=0;
        int counterD=0;
        int counterF=0;

            //Determine grade and update corresponding counter     
        for (int i = 0; i < 9; i++) {
            if (scores[i] > 90) {
                counterA++;
            }else if ((scores[i] < 90) & (scores[i] >= 80)) {
                counterB++;
            }else if ((scores[i] < 80) & (scores[i] >= 70)) {
                counterC++;
            }else if ((scores[i] < 70) & (scores[i] >= 60)) {
                counterD++;
            }else{
                counterF++;
            }
        }

        for (int i = 0; i < 9; i++) {
            sum = sum + scores[i];
            if (scores[i] > largest) {
                largest = scores[i];
            }
            if (scores[i] < smallest) {
                smallest = scores[i];
                if ((scores[i] >= 90)) {
                    scores[i] = gradeA;
                } else {
                    if ((scores[i] < 90) & (scores[i] >= 80)) {
                        scores[i] = gradeB;
                    } else {
                        if ((scores[i] < 80) & (scores[i] >= 70)) {
                            scores[i] = gradeC;
                        } else {
                            if ((scores[i] < 70) & (scores[i] >= 60)) {
                                scores[i] = gradeD;
                            } else {
                                scores[i] = gradeF;
                            }
                        }
                    }
                }
            }
        }
            //Show  new grade wise counter values
        JOptionPane.showMessageDialog(null, "The sum is " + sum
                + "\nThe Average is " + sum / 9 + "\nThe largest score is "
                + largest + "\nThe smallest score is " + smallest
                + "\nThe number of students with scores of 90-100 (A) is "
                + counterA
                + "\nThe number of students with scores of 80-89 (B) is "
                + counterB
                + "\nThe number of students with scores of 70-79 (C) is "
                + counterC
                + "\nThe number of students with scores of 60-69 (D) is "
                + counterD
                + "\nThe number of students with scores of 0-59 (F) is "
                + counterF);

    }
相关问题