需要帮助计算每个字母等级的百分比

时间:2016-04-13 23:33:57

标签: java arrays

public class GradePercent {

    static final int THRESHOLD = 4;

    public static void main(String[] args) 
    {
        //Create Scanner 
        Scanner input = new Scanner(System.in);

        //
        System.out.print("Enter the number of courses: ");
        int n = input.nextInt();
        System.out.print("Enter " + n + " scores: ");

        int[][] students = new int[3][n + THRESHOLD];

        for (int i = 0; i < n; i++)
        {
            students[0][i] = input.nextInt();
        }

        int bestScore = getBestScore(students);
        setGradeRange(students, bestScore);


        for (int i = 0; i < students[0].length - THRESHOLD; i++) {
            char grade = getStudentGrade(students, i);
            System.out.println("Grade " + i + " score is " + students[0][i] + " and grade is " + grade);
        }

        countLetters(students);
        System.out.println("Total grades: " + n );
    }

    public static char getStudentGrade(int[][] students, int index) 
    {
        int grade = students[0][index];
        for (int i = 0; i < 4; i++) 
        {
            if (grade >= students[1][i]) 
            {
                return (char) students[2][i];
            }
        }
        return 'F';
    }    

    public static void setGradeRange(int[][] students, int bestScore)
    {
        for (int i = 0; i < 4; i++) 
        {
            students[1][i] = bestScore - (10 * (i + 1));
            students[2][i] = ('A' + i);
        }
    }

    public static int getBestScore(int[][] students) 
    {
        int bestScore = 100;
        return bestScore;
    }

    public static void countLetters(int[][] students) 
    {
        int As = 0, Bs = 0, Cs = 0, Ds = 0, Fs = 0; 
        for (int i = 0; i < students [0][i]; i++){
        if ( 90 < students [0][i] || students [0][i] < 100 )
            As++;
        else if (80 < students [0][i] || students [0][i]  < 89 )
            Bs++;
        else if (70 < students[0][i] || students [0][i] < 79)
            Cs++;
        else if (60 < students [0][i]|| students [0][i] < 69 )
            Ds++;
        else if (students [0][i] < 60 )
            Fs++;
        }
        System.out.println("There are " + As + " A"  );
        System.out.println("There are " + Bs + " B" );
        System.out.println("There are " + Cs + " C" );
        System.out.println("There are " + Ds + " D" );
        System.out.println("There are " + Fs + " F" );
    }
}

我想知道每个字母等级的数量是多少,但是每次我运行程序时它都会说我输入了所有'A'字母等级。该程序应该能够输入每门课程的等级#,并显示每个字母等级的输入数量,最后显示等级的百分比。

0 个答案:

没有答案