2.6使用二維陣列儲存學生的資料,包括學號、姓名、作業系統成績、Java成績、高數成績、總分;一行儲存一個學生的資料;要求輸入若干學生的資料,求出總分;然後按照總分由高到低重新排列;輸出排序後的結果
阿新 • • 發佈:2018-12-25
摩爾的Java學習筆記2.6
第二週作業:
1、實現將一組整數進行升序排列;
2、用二維陣列實現,5個學生4門課程的總分和平均分的統計工作;
3、列印八行八列楊輝三角,開頭不列印空格;
4、模擬打牌遊戲中的發牌過程。用1~52來代表52張牌,玩家有四人,要求將發牌結果存入一個二維陣列(4行13列),最後顯示發牌結果,不許重複;
5、輸入多個字串,存入陣列,然後按照字串的大小重新升序排列;
6、使用二維陣列儲存學生的資料,包括學號、姓名、作業系統成績、Java成績、高數成績、總分;一行儲存一個學生的資料;要求輸入若干學生的資料,求出總分;然後按照總分由高到低重新排列;輸出排序後的結果。
6、使用二維陣列儲存學生的資料,包括學號、姓名、作業系統成績、Java成績、高數成績、總分;一行儲存一個學生的資料;要求輸入若干學生的資料,求出總分;然後按照總分由高到低重新排列;輸出排序後的結果。
/**
* @author 薛蓮婷
*使用二維陣列儲存學生的資料,包括學號、姓名、作業系統成績、Java成績、高數成績、總分;一行儲存一個學生的資料;
*要求輸入若干學生的資料,求出總分;然後按照總分由高到低重新排列;輸出排序後的結果
*
*/
/*供複製以輸入的學生資訊:
112 張一 98 70 78
20 李二 98 0 1
01 王三 98 78 29
302 趙四 99 97 20
*/
import java.util.*;
class Assignment5 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入學生人數:");
int n=sc.nextInt();
String [][]student=new String[n][6]; //學生資訊的二位陣列
System.out.println("請輸入學號、姓名、作業系統成績、Java成績、高數成績:" );
for(int i=0;i<n;i++)
{
System.out.printf("第%d位學生:",i+1);
for(int j=0;j<5;j++)
{
student[i][j]=sc.next(); //每位學生資訊佔一行
}
}
float []sum=new float[n]; //存放總分的一個float型陣列
for(int i=0;i<n;i++) //計算每位學生的總分
{
sum[i]=Float.parseFloat(student[i][2])+Float.parseFloat(student[i][3])+Float.parseFloat(student[i][4]);
student[i][5]=String.valueOf(sum[i]); //將float型轉為字串存入原陣列
}
float temp;
String [][]p=new String[1][6];
for(int i=0;i<n-1;i++) //根據總分進行升序排序
{
int max=i;
for(int j=i+1;j<n;j++)
{
if(sum[max]<sum[j])
{
max=j;
}
temp=sum[max];
sum[max]=sum[j];
sum[j]=temp;
p[0]=student[max];
student[max]=student[j];
student[j]=p[0];
}
}
System.out.println("按總分升序排列後的學生資訊:\n學號\t姓名\t作業系統成績\tJava成績\t高數成績\t總分");
for(int i=0;i<n;i++) //列印升序排列之後的學生資訊
{
for(int j=0;j<6;j++)
{
System.out.print(student[i][j]+"\t");
}
System.out.print("\n");
}
sc.close();
}
}