【发布时间】:2014-01-29 10:00:28
【问题描述】:
提供了一个成绩文本文件,每行有一个整数,代表一个 学生在课堂上的成绩。这些数字未排序,但它们的范围在 0 到 100 之间 (包括的)。使用数组,您必须计算每个等级值的频率并将其打印到 标准输出为水平直方图。您还必须标记每个直方图条的范围,并 允许用户指明他们希望制作直方图的大小区间。
这是我的任务,我被困在如何标记每个直方图条的范围和 允许用户指示他们希望使用什么大小的间隔来制作直方图?
如何修复我的代码?
我的代码:
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class GradeHistogram{
public static void main(String[] args) throws Exception {
Scanner gradeFile = new Scanner(new FileInputStream("grades.txt"));
int counter = 0;
while (gradeFile.hasNextLine()) {
gradeFile.nextLine();
counter++;
}
int[] grades = new int[counter];
System.out.println("Grades loaded!");
System.out.println("What bucket size would you like?");
Scanner output = new Scanner(System.in);
for (int i = 0; i < grades.length; i++) {
grades[i] = Integer.parseInt(output.nextLine());
for ( i = 0; i < grades.length; i++) {
if (grades[i] > 0){
System.out.print(i + " | ");
for (int j = 0; j < grades[i]; j++) {
System.out.print("[]");
}
System.out.println();
}
}
}
}
【问题讨论】: