二維陣列和函式綜合程式設計練習
《java》學生成績統計從鍵盤輸入一個班(全班最多不超過30人)學生某門課的成績,當輸入成績為負值時,輸入結束,分別實現下列功能:
.學生成績統計
從鍵盤輸入一個班(全班最多不超過30人)學生某門課的成績,當輸入成績為負值時,輸入結束,分別實現下列功能:
(1)統計不及格人數並列印不及格學生名單;
(2)統計成績在全班平均分及平均分之上的學生人數,並列印這些學生的名單;
(3)統計各分數段的學生人數及所佔的百分比。
第2學期第2次實驗
二維陣列和函式綜合程式設計練習
1.成績排名次
某班期末考試科目為數學(MT)、英語(EN)和物理(PH),有最多不超過30人蔘加考試。考試後要求:
(1)計算每個學生的總分和平均分;
(2)按總分成績由高到低排出成績的名次;
(3)列印出名次表,表格內包括學生編號、各科分數、總分和平均分;
(4)任意輸入一個學號,能夠查詢出該學生在班級中的排名及其考試分數。
【思考題】 請讀者思考如下問題。
① 如果增加一個要求:要求按照學生的學號由小到大對學號、成績等資訊進行排序,那麼程式如何修改呢?
② 如果要求程式執行後先列印出一個選單,提示使用者選擇:成績錄入、成績排序、成績查詢,在選擇某項功能後執行相應的操作,那麼程式如何修改呢?
import java.util.Scanner;
public class task {
double score[][]=new double[30][3];
double stuNum;
int sno[]=new int[30];
int rank[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29};
double sum[]=new double[30];
double aver[]=new double[30];
//設定學號和各科成績
public void setSonAndScore()
{
System.out.println(“Enter No. and score as: MT EN PH”);
Scanner input=new Scanner(System.in);
for(int i=0;i<stuNum;i++)
{
sno[i]=input.nextInt();
for(int j=0;j<3;j++)
{
score[i][j]=input.nextDouble();
}
}
}
//設定學生人數
public void setStuNum()
{
System.out.println(“Please enter the total number of the students(n<=30):”);
Scanner input=new Scanner(System.in);
this.stuNum=input.nextDouble();
}
//計算總分
public void setSum()
{
for(int i=0;i<stuNum;i++)
{
this.sum[i]=score[i][1]+score[i][2]+score[i][0];
}
}
//計算平均分
public void setAver()
{
for(int i=0;i<stuNum;i++)
{
this.aver[i]= sum[i]/3.0;
}
}
//計算排名
public void ranking()
{
double forRank[]=new double[30];
forRank= sum;
for(int i=0;i<stuNum-1;i++)
{
for(int j=0;j<=stuNum-i-1;j++)
{
if(forRank[j]<forRank[j+1])
{
double temp=forRank[j];
forRank[j]=forRank[j+1];
forRank[j+1]=temp;
int temp2;
temp2=rank[j];
rank[j]=rank[j+1];
rank[j+1]=temp2;
}
}
}
}
//查詢
public void query()
{
int pos;
System.out.println(“Please enter searching number:”);
Scanner input=new Scanner(System.in);
int tSno=input.nextInt();
System.out.println(“position NO MT EN PH SUM AVER”);
System.out.println("----------------------------------------------");
for(pos=0;pos<stuNum;++pos)
{
if(sno[pos]==tSno)
break;
}
for (int k=0;k<stuNum;k++)
{
if (rank[k]==pos)
{
System.out.print(++k);
System.out.print(" “);
System.out.print(sno[rank[k]]);
System.out.print(” “);
for(int j=0;j<3;j++)
{
System.out.print(score[rank[k]][j]);
System.out.print(” “);
}
System.out.print(sum[rank[k]]+” “+ aver[rank[k]]);
System.out.println(”");
}
}
}
//列印排名
public void print()
{
System.out.println(“NO MT EN PH SUM AVER”);
System.out.println("-------------------------------------------");
for(int i=0;i<stuNum;i++)
{
System.out.print(sno[rank[i]]);
System.out.print(" “);
for(int j=0;j<3;j++)
{
System.out.print(score[rank[i]][j]);
System.out.print(” “);
}
System.out.print(sum[rank[i]]+” “+ aver[rank[i]]);
System.out.println(”");
}
}
public static void main(String args[])
{
task t=new task();
t.setStuNum();
t.setSonAndScore();
t.setSum();
t.setAver();
System.out.println(“Before sort”);
t.print();
System.out.println(“After sort:”);
t.ranking();
t.print();
t.query();
}
}
本部落格轉自:https://blog.csdn.net/qq_41526054/article/details/84501564
相關文章
- 二維陣列練習陣列
- c語言程式設計學習之二維陣列C語言程式設計陣列
- JavaScript學習筆記(二)——函式和陣列JavaScript筆記函式陣列
- C++動態建立二維陣列,二維陣列指標,以及動態二維陣列函式傳遞C++陣列指標函式
- 二維陣列排序函式array_multisort()陣列排序函式
- Java 學習筆記 二維陣列和物件陣列Java筆記陣列物件
- 函式式思維和函數語言程式設計函式函數程式設計
- 程式設計實踐(Pandas)綜合練習1程式設計
- 二級指標,二維陣列函式引數傳遞指標陣列函式
- 二維陣列和稀疏陣列互轉陣列
- PHP一維陣列轉二維陣列正規表示式PHP陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- 二維陣列的計算陣列
- 二維陣列和指標陣列指標
- 指標陣列和陣列指標與二維陣列指標陣列
- C的二維陣列(習題)陣列
- 二維陣列陣列
- 第二週程式設計練習程式設計
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- PHP二維陣列轉一維陣列PHP陣列
- 求二維陣列中最大子陣列的和陣列
- 二維陣列鐘擺式輸出陣列
- 陣列排序函式-php陣列函式(一)陣列排序函式PHP
- 二維陣列程式碼案例分析陣列
- 精通javascript 函式和陣列JavaScript函式陣列
- PHP中二維陣列與多維陣列PHP陣列
- JavaScript --二維陣列查詢一維陣列JavaScript陣列
- C Primer Plus 第9章 函式 程式設計練習函式程式設計
- JAVA 陣列 練習Java陣列
- 陣列練習題陣列
- vector 二維陣列陣列
- Java二維陣列Java陣列
- JavaScript二維陣列JavaScript陣列
- JavaScript 二維陣列JavaScript陣列
- 二維陣列排序陣列排序
- C++ 練氣期之二維陣列與矩陣運算C++陣列矩陣