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 }