1.获取成绩(键盘输入) 数组接收
2.数组排序 确定最大值和最小值
3.获取数组数据求平均值
4.统计成绩分布
5.问题 判断成绩分部变量较多 求解决
public class Studentgrade_out { class studentgrade_in{ //学生成绩内部类 int[] grede; public void grade(int number){ //接收成绩方法 grede=new int[number]; //定义数组 给定长度 Scanner scanner = new Scanner(System.in);//键盘输入成绩 System.out.println("请输入"+number+"位学生成绩(百分制):"); for (int i = 0; igrede[j+1]) { int temp =grede[j]; grede[j]=grede[j+1]; grede[j+1]=temp; } } } //此时数组顺序从小到大排序,第一个数据是最小值,最后一个数据是最大值 System.out.println("最小值是:"+grede[0]); System.out.println("最大值是:"+grede[grede.length-1]); } public void sum(int number) { //平均成绩 int sum=0; //number个数据相加总和 for (int i = 0; i < number; i++) { sum+=grede[i]; } //成绩总和/人数 平均成绩 System.out.println("这次测试平均成绩是:"+sum/number); } public void stage(int number){ //统计考试成绩分布规律 int l=0,j=0,k=0,g=0,f=0,d=0,q=0; //定义变量记录每个分数段的人数 for (int i = 0; i < number; i++) { //遍历数组 int a=grede[i]; //接收数组元素进行判断 if (a < 60) { l++; }else if (a>=60) { d++; } if (a >=60&&a<70 ) { k++; }else if (a >=70&&a<80) { g++; }else if(a>=80&&a<90){ f++; }else if (a>=90&&a<=100){ q++; } } System.out.println("不及格人数有"+l+"个"); System.out.println("及格人数有"+d+"个"); System.out.println("60-70的人数有"+k+"个"); System.out.println("70-80的人数有"+g+"个"); System.out.println("80-90的人数有"+f+"个"); System.out.println("90-100的人数有"+q+"个"); } } public void get(int number){ //实例化内部类调用方法(内部类非静态;main方法不能直接调用) studentgrade_in si = new studentgrade_in(); si.grade(number); si.judge(number); si.sum(number); si.stage(number); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请问有少位学生成绩输入:"); int number = scanner.nextInt(); Studentgrade_out so = new Studentgrade_out(); //实例化外部类 so.get(number); //调用get();方法 } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)