如何使用Java匹配2个数组和制作图表

问题描述 投票:1回答:1

我正在开展一个学校项目,用户将输入学生数量,学科数量,学科名称,学生姓名和每个学生的学生成绩,这些学生将被保存到一个阵列中。最后一部分应使用星号*表示通过的数量。除了图表,我能够解决项目。以下是您要了解的确切问题:

BIT-CT部门要求您创建一个将数据存储到数组的应用程序。您的课程必须询问学生人数,科目数和科目名称。输入每个科目的学生姓名和成绩,显示每位学生的平均成绩。显示一个图表,通过星号()显示有多少学生通过该科目,通过成绩为75.00,最后显示学生中最高的平均成绩。*

样本输出

MIDTERM EXAM: STUDENT RANKING

Enter # of Students:  3
Enter # of Subjects:  2
-----------------------------------------------
Enter your 2 subjects: 
1. Java
2. Python
-----------------------------------------------
1. Name: Jan
   Grade in Java: 90
   Grade in Python: 100
Average: 95.0
-----------------------------------------------
2. Name: Jen
   Grade in Java: 100
   Grade in Python: 65
Average: 82.5
-----------------------------------------------
3. Name: Jane
   Grade in Java: 100
   Grade in Python: 90
Average: 95.0
-----------------------------------------------

Highest average score is: 95.0

----GRAPH-----
Java: ***
Python: **

你能帮我看一下图形部分吗?我不能发布整个代码,因为它是至少5个部分的项目(每个部分60多个学生),我确信他们都在寻找答案,但这里是我工作的图形部分的代码,假设输入与样本输出相同,

for (int count = 0; count < noOfSubject; count++){
                System.out.print(subjects[count] +": ");
            for (int counter = 0; counter < allGrades.length; counter ++){
                    if (allGrades[counter] >= 75){
                        System.out.print("*");}
                    else{
                        System.out.print("");}}
            System.out.println("");}

输出错误:

 ----GRAPH-----
 Java: *****
 Python: *****

正确输出:

 ----GRAPH-----
 Java: ***
 Python: **

noOfSubject显然是用户输入的主题数量。

subject是用户输入的主题的名称。

allGrades变量是一个数组,包括所有输入的等级,与主题无关。所以基于样本输出:allGrades = {90,100,100,65,100,90}

我已经问了一个关于这个项目的问题,但不是我工作的最后一部分,所以请不要把它混淆为同一个问题。谢谢!

java arrays loops for-loop graph
1个回答
2
投票

由于你将所有等级转换为单个数组allGrades,你的嵌套循环应该从noOfSubject开始计数,从主题的count开始,如下所示:

for (int counter = count ; counter < allGrades.length ; counter += noOfSubject) {
    ...
}

注意:将所有成绩放在一个数组中并不是一个好主意。你最好在2D数组中组织它,无论是学生还是主题。

© www.soinside.com 2019 - 2024. All rights reserved.