纯输入的学生成绩系统(从大到小排列)

import java.util.*;
public class add{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        System.out.println("请输入学生的人数:");
        int renshu=in.nextInt();//存储学生人数
        System.out.println("请输入课程的数目:");
        int kecheng=in.nextInt();//存储课程数目
        String[] name=new String[renshu];//声明一个String类来存储学生的姓名
        String[] course=new String[kecheng];//声明一个String类来存储课程的名字
        int[][] number=new int[renshu][kecheng];//二维数组,便于输出排序
        int[] sum=new int[renshu];//有多少人就有多少平均分,用数组装着
        int[] avg=new int[renshu];
        String[] str=new String[renshu];//声明一个String类来存储一行,为了排名比较后,能一起移动,由姓名,各科成绩,总分,平均分
        /*
         * 循环输入课程名
         */
        for(int i=0;i<course.length;i++){
            System.out.println("请输入第"+(i+1)+"个课程名:");
            course[i]=in.next();
        }
        /*
         * 用来循环输入学生的各科成绩
         */
        for(int i=0;i<renshu;i++){
            System.out.println("请输入第"+(i+1)+"个学生的姓名:");
            name[i]=in.next();
            String str11="";//局部声明一个分变量。
            for(int j=0;j<kecheng;j++){
                System.out.println("请输入"+name[i]+"的"+course[j]+"的成绩:");
                number[i][j]=in.nextInt();//接收成绩
                sum[i]+=number[i][j];
                avg[i]=sum[i]/kecheng;
                str11+=number[i][j]+"\t";
            }
            str[i]=name[i]+"\t"+str11+sum[i]+"\t"+avg[i];//str所有的组成
        }
        /*
         * 结果输出如下
         */
        System.out.print("学生\t");
        for(int i=0;i<course.length;i++){
            System.out.print(course[i]+"\t");
        }
        System.out.print("总分\t平均分\t排名");
        System.out.println();//上是print 下面也是print,需要换行输出。
        /* 已经将所有的东西整合在一个数组里,排序整合数组就好了
        for(int i=0;i<renshu;i++){
            System.out.print(name[i]);
            for(int j=0;j<kecheng;j++){
                System.out.print("\t"+number[i][j]);
            }
            System.out.print("\t"+sum[i]+"\t"+avg[i]);
            System.out.println();
        }
        */
        /*
         * 判断排序,按从小到大的顺序排列(冒泡排序)
         */
        for(int i=0;i<str.length-1;i++){
            for(int j=0;j<str.length-1;j++){
                if(sum[j]<sum[j+1]){
                    int t1=sum[j];      String t2=str[j];
                    sum[j]=sum[j+1];    str[j]=str[j+1];
                    sum[j+1]=t1;        str[j+1]=t2;
                }
            }
        }
        for(int i=0;i<renshu;i++){
            System.out.println(str[i]+"\t"+"第"+(i+1)+"名");
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容