答案是通过数组统计成绩频次并用字符绘制控制台柱状图。首先定义成绩区间与计数数组,遍历学生成绩按分数段累加频次,再以星号数量表示人数输出柱状图,每行标注区间和具体数值,增强可读性,最后可扩展统计平均分等信息。

在Java中实现成绩统计图表的生成,可以通过数据整理与控制台可视化输出的方式完成。这种方式不需要依赖图形库,适合学习基础数据处理和字符绘图技巧。
要统计学生成绩分布,先要有原始数据。通常成绩是0到100之间的整数。我们可以使用一个数组或集合来存储这些成绩。
接下来将成绩划分为若干区间,常见的是每10分一个段,如:
每个区间对应一个计数器,用于统计落在该范围内的成绩数量。
立即学习“Java免费学习笔记(深入)”;
遍历成绩列表,根据每个成绩所属区间累加计数。可以使用长度为11的数组(对应0~100分共11个区间)来记录频次。
示例代码片段:
int[] scores = {85, 92, 78, 63, 90, 88, 74, 100, 55, 42, 70, 80};
int[] bins = new int[11]; // 每个元素代表一个分数段的计数
<p>for (int score : scores) {
if (score >= 0 && score <= 100) {
bins[score / 10]++;
}
}</p>这样bins[8]就表示80-89分之间的人数,bins[10]表示100分的人数。
利用字符“*”或“#”在控制台绘制简易柱状图。每一行代表一个分数段,星号数量代表人数。
输出示例:
0-9 : 10-19: 20-29: 30-39: 40-49: * 50-59: ** 60-69: * 70-79: *** 80-89: *** 90-99: ** 100 : *
实现方式:
String[] labels = {"0-9", "10-19", "20-29", "30-39", "40-49",
"50-59", "60-69", "70-79", "80-89", "90-99", "100"};
<p>for (int i = 0; i < bins.length; i++) {
System.out.print(labels[i] + ": ");
for (int j = 0; j < bins[i]; j++) {
System.out.print("*");
}
System.out.println();
}</p>为了更清晰,可以在每行末尾显示具体人数。
修改输出部分:
for (int i = 0; i < bins.length; i++) {
System.out.print(String.format("%-5s: ", labels[i]));
for (int j = 0; j < bins[i]; j++) {
System.out.print("*");
}
System.out.println(" (" + bins[i] + ")");
}
输出效果:
0-9 : (0) 10-19: (0) ... 80-89: *** (3)
基本上就这些。通过简单的数组统计和循环输出,就能在控制台实现直观的成绩分布图。虽然不如GUI图表美观,但对理解数据处理流程很有帮助。不复杂但容易忽略细节,比如边界判断和格式对齐。实际应用中也可以扩展支持更多统计信息,如平均分、最高分、最低分等。
以上就是Java制作成绩统计图表_数据整理与控制台可视化输出的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号