軟件工程課程設(shè)計之學(xué)生成績管理系統(tǒng)_第1頁
軟件工程課程設(shè)計之學(xué)生成績管理系統(tǒng)_第2頁
軟件工程課程設(shè)計之學(xué)生成績管理系統(tǒng)_第3頁
軟件工程課程設(shè)計之學(xué)生成績管理系統(tǒng)_第4頁
軟件工程課程設(shè)計之學(xué)生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件工程課程設(shè)計之——學(xué)生成績管理系統(tǒng)1.題目與要求1.1問題提出設(shè)計學(xué)生成績管理系統(tǒng),有N個學(xué)生,每個學(xué)生的數(shù)據(jù)包含學(xué)號(不重復(fù))、姓名、三門課的成績及平均成績,試設(shè)計一學(xué)生成績管理系統(tǒng)1.2本系統(tǒng)涉及的知識點

結(jié)構(gòu)體數(shù)組、結(jié)構(gòu)體指針、數(shù)組、循環(huán)、函數(shù)、分支、指針1.3功能要求

1、成績錄入:輸入學(xué)生的學(xué)號、姓名及三門課的成績;

2、成績查詢:(至少一種查詢方式)。按學(xué)號查詢學(xué)生記錄,或查詢不及格學(xué)生的記錄;

3、成績統(tǒng)計:計算學(xué)生的平均分;根據(jù)學(xué)生的平均分高低,對學(xué)生的數(shù)據(jù)進行排序后輸出;對學(xué)生單科成績排序,輸出學(xué)生姓名與該科成績;

4、退出系統(tǒng):退出整個系統(tǒng)(即主菜單);1.4根據(jù)所選菜單編寫相應(yīng)代碼:

1)輸入學(xué)生的信息,利用循環(huán)賦值的方式,給結(jié)構(gòu)體數(shù)組賦值。2)輸出平均分函數(shù)ave:首先定義double型數(shù)組,利用循環(huán)賦值的方式,計算出三門課的成績的平均值放入數(shù)組中,利用循環(huán)的方式,輸出相關(guān)值及平均值。

3)按學(xué)號查詢成績函數(shù)search:首先輸入要查詢的學(xué)號,與結(jié)構(gòu)體中的學(xué)號進行比較,如果相等輸出這個學(xué)生的信息,另外輸出沒有查到相關(guān)結(jié)果。

4)按平均分排序后輸出函數(shù)average:首先另外一個定義結(jié)構(gòu)體數(shù)組、結(jié)構(gòu)體指針變量,計算三門課程的平均值存到結(jié)構(gòu)體成員aver中,利用循環(huán)的方式,進行平均分排序,輸出相應(yīng)的學(xué)生信息。5)對學(xué)生單科成績排序后輸出函數(shù)grade:首先另外一個定義結(jié)構(gòu)體數(shù)組、結(jié)構(gòu)體指針變量,通過選擇k的值來選擇按分數(shù)幾排序,利用循環(huán)的方式,進行單科成績排序(從大到?。敵鰧W(xué)生姓名及該課的成績。

6)退出程序。2、附錄:程序清單#include<stdio.h>#include<stdlib.h>typedefstructstudent{intnum;charname[13];intscore[3];doubleaver;}STU;voidave(STUs[],intn){doublea[1000];inti;for(i=0;i<n;i++)a[i]=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;printf("學(xué)號\t姓名\t\t分數(shù)1\t分數(shù)2\t分數(shù)3\t平均分\n");for(i=0;i<n;i++)printf("%d\t%s\t\t%d\t%d\t%d\t%.1f\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],a[i]);}voidsearch(STUs[],intn,inta){inti,k=0;for(i=0;i<n;i++){if(s[i].num==a){printf("學(xué)號\t姓名\t分數(shù)1\t分數(shù)2\t分數(shù)3\t\n");printf("%d\t%s\t%d\t%d\t%d\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2]);k=k+1;break;}}if(k==0)printf("\t沒有查詢到相關(guān)信息");}voidaverage(STUs[],intn){inti,j;STUss[10000];STU*p=ss;for(i=0;i<n;i++)s[i].aver=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;for(i=0;i<n;i++)ss[i]=s[i];for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(ss[i].aver<ss[j].aver){STUtemp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;}}}printf("學(xué)號\t姓名\t平均分\n");for(i=0;i<n;i++)printf("%d\t%s\t%.1f\n",(p+i)->num,(p+i)->name,(p+i)->aver);}voidgrade(STUs[],intn){inti,j,k;STUss[10000];STU*p=ss;for(i=0;i<n;i++)ss[i]=s[i];printf("請輸入k的值查詢,k=0時按分數(shù)1,k=1時按分數(shù)2,k=2時按分數(shù)3:");scanf("%d",&k);for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(ss[i].score[k]<ss[j].score[k]){STUtemp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;}}}printf("姓名\t分數(shù)\n");for(i=0;i<n;i++)printf("%s\t%d\n",(p+i)->name,(p+i)->score[k]);}main(){intN,i;STUs[10000];intnum1;intmenu;printf("請輸入學(xué)生個數(shù):");scanf("%d",&N);for(i=0;i<N;i++){printf("請輸入學(xué)號姓名分數(shù)1分數(shù)2分數(shù)3\n");scanf("%d%s%d%d%d",&s[i].num,s[i].name,&s[i].score[0],&s[i].score[1],&s[i].score[2]);}printf("\n\n");printf("*************學(xué)生成績管理系統(tǒng)*************\n\n");printf("1--------輸出平均分\n");printf("2--------按學(xué)號查詢成績\n");printf("3--------按平均分排序后輸出\n");printf("4--------對學(xué)生單科成績排序后輸出\n");printf("5--------退出程序\n");printf("\n\n");while(1){printf("\n請輸入菜單號:");scanf("%d",&menu);switch(menu){case1:ave(s,N);break;case2:printf("請輸入要查詢的學(xué)號:");scanf("%d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論