用Java统计人数,并计算平均分
题目要求
输入一组学生成绩,统计各等级的人数,并计算平均分。
解题思路
- 先定义所需变量;
- 用while语句判断成绩是否输入有误;
- 再用switch语句判断成绩等级。
代码
package choice;
import java.util.Scanner;
public class Score {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
float score,sum=0,avg;
int g1=0,g2=0,g3=0,g4=0,g5=0;
while(sc.hasNextFloat()) {
score=sc.nextFloat();
while(score<0||score>100) {
System.out.println("成绩输入错误!学生成绩应该在0~100之间。");
System.out.println("请重新输入学生成绩:");
score=sc.nextFloat();
}
sum=sum+score;
switch((int)score/10) {
case 10:
case 9:g1++;break;//成绩优秀学生个数加1
case 8:g2++;break;//成绩良好学生个数加1
case 7:g3++;break;//成绩中等学生个数加1
case 6:g4++;break;//成绩及格学生个数加1
default :g5++;break;//成绩不及格学生个数加1
}
}
avg=sum/(g1+g2+g3+g4+g5);
System.out.println("学生总个数:"+(g1+g2+g3+g4+g5));
System.out.println("平均分:"+avg);
System.out.println("成绩优秀学生个数:"+g1);
System.out.println("成绩良好学生个数:"+g2);
System.out.println("成绩中等学生个数:"+g3);
System.out.println("成绩及格学生个数:"+g4);
System.out.println("成绩不及格学生个数:"+g5);
}
}
运行结果
改进:
1.可以把成绩录入数据库,增加读取数据逻辑功能。
2.可以把成绩放在表格,增加表格数据转换为数据库数据,再执行改进1。
还有什么改进想法欢迎留言讨论。