Java基礎15-陣列例項學生管理系統
阿新 • • 發佈:2018-11-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 }