Java基础15-数组实例学生管理系统

 1 import java.util.Scanner;
 2 public class Student{
 3     public static void main(String[] args){
 4         Scanner in=new Scanner(System.in);
 5         System.out.println("请输入学生的人数");
 6         int studentsNum=in.nextInt();
 7         System.out.println("请输入课程数目");
 8         int coursesNum=in.nextInt();
 9         //声明数组存储课程
10         String[] courses=new String[coursesNum];
11         //声明数组存储姓名
12         String[] names=new String[studentsNum];
13         //声明二维数组存储特定成绩
14         double[][] scores=new double[studentsNum][coursesNum];
15         //声明数组存储总分
16         double[] sum=new double[studentsNum];
17         //声明数组存储平均分
18         double[] avg=new double[studentsNum];
19         //声明数组存储一行
20         String[] str=new String[studentsNum];
21         
22         //循环给课程数组赋值
23         for(int i=0;i<courses.length;i++){
24             System.out.println("请输入第"+(i+1)+"门课程是什么");
25             courses[i]=in.next();
26         }
27         
28         //循环给姓名数组和成绩赋值
29         for(int i=0;i<names.length;i++){
30             System.out.println("请输入第"+(i+1)+"个学生的姓名:");
31             names[i]=in.next();
32             double s=0;
33             String str1="";
34             for(int j=0;j<courses.length;j++){
35                 System.out.println("请输入"+names[i]+courses[j]+"的成绩:");
36                 scores[i][j]=in.nextDouble();
37                 s=s+scores[i][j];
38                 str1=str1+scores[i][j]+"\t";
39             }
40             sum[i]=s;
41             avg[i]=s/coursesNum;
42             str[i]=names[i]+"\t"+str1+sum[i]+"\t"+avg[i]+"\t";
43         }
44         
45         //按照表格形式输出
46         System.out.print("学生\t");
47         for(int i=0;i<courses.length;i++){
48             System.out.print(courses[i]+"\t");
49         }
50         System.out.print("总分\t平均分\t排行榜\t");
51         System.out.println();
52         
53         for(int i=0;i<sum.length-1;i++){
54             for(int j=0;j<sum.length-1;j++){
55                 if(sum[j]<sum[j+1]){
56                     double temp=sum[j];//叫总分高的排在前面
57                     sum[j]=sum[j+1];
58                     sum[j+1]=temp;
59                     
60                     String temp2=str[j];//将整行交换
61                     str[j]=str[j+1];
62                     str[j+1]=temp2;
63                 }
64                 
65             }
66         }
67         
68         for(int i=0;i<names.length;i++){
69             //System.out.print(names[i]+"\t");
70             //for(int j=0;j<courses.length;j++){
71                 //System.out.print(scores[i][j]+"\t");
72             //}
73             //System.out.print(sum[i]+"\t"+avg[i]+"\t");
74             System.out.print(str[i]);
75             System.out.print("第"+(i+1)+"名");
76             System.out.println();
77         }
78     }
79 }

 

posted on 2018-11-15 22:46  深海溺心  阅读(298)  评论(0编辑  收藏  举报

导航