綜合程序?qū)嶒?yàn)(共7頁)_第1頁
綜合程序?qū)嶒?yàn)(共7頁)_第2頁
綜合程序?qū)嶒?yàn)(共7頁)_第3頁
綜合程序?qū)嶒?yàn)(共7頁)_第4頁
綜合程序?qū)嶒?yàn)(共7頁)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上綜合程序?qū)嶒?yàn)實(shí)驗(yàn)者姓名:何彥輝 學(xué)號: 實(shí)驗(yàn)日期:2012/6/9一、 實(shí)驗(yàn)題目學(xué)生信息管理程序二、 實(shí)驗(yàn)的目的和要求有一個班級的學(xué)生(不超過50人),每個學(xué)生的數(shù)據(jù)包括學(xué)號、姓名、五門課(英語、高數(shù)、馬哲、計算機(jī)、電子技術(shù))的成績,從鍵盤輸入此數(shù)據(jù),要求按總分從高到低的順序保存到cj.dat中,并按按學(xué)號大小從小到大排序打印出沒門課的成績,以及總分最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號、姓名、各門課的成績、平均分?jǐn)?shù))。要求:用input函數(shù)輸入學(xué)生數(shù)據(jù),用printscore(x)函數(shù)打印出課程x的成績表;用max函數(shù)找出最高分?jǐn)?shù)數(shù)據(jù);最高分的學(xué)生在主函數(shù)中輸出。三、程序設(shè)計

2、思路、流程圖1、程序設(shè)計思路: 定義結(jié)構(gòu)體數(shù)組來存放學(xué)生信息。用input函數(shù)輸入學(xué)生數(shù)據(jù) ,for循環(huán)輸入學(xué)生數(shù)據(jù)。再編寫printscore(x)函數(shù)打印出課程x的成績表,其中用了冒泡排序法對學(xué)號的排序,還用了if語句對分?jǐn)?shù)范圍的判斷,來統(tǒng)計人數(shù)以及計算比例,在輸出統(tǒng)計結(jié)果。用max函數(shù)找出最高分?jǐn)?shù)數(shù)據(jù),用for語句遍歷一遍,曬篩選出最高分成績的學(xué)生數(shù)據(jù),再返回結(jié)構(gòu)體函數(shù)值。文件的打開以及輸入數(shù)據(jù)到文件中再關(guān)閉,其中用了for語句對文件的輸出,使用了函數(shù)fprintf,fopen,fclose等。最后用main函數(shù)調(diào)用這些函數(shù),再在main函數(shù)里輸出最高成績的學(xué)生數(shù)據(jù)即完成。2、程序流程圖

3、:for(i=0;i<n;i+)返回最高分的學(xué)生結(jié)構(gòu)體數(shù)組 所有的學(xué)生的總分大于第一個學(xué)生的總分YN進(jìn)行交換下標(biāo)輸出某科的全班平均分以及每個分?jǐn)?shù)段的人數(shù)以及比例 for(k=0;k<5;k+)計算每個分?jǐn)?shù)段的比例for(i=0;i<n;i+)算出總成績以及每個分?jǐn)?shù)段的人數(shù)輸出某個科目的數(shù)據(jù) for (i=0;i<n;i+))for(j=0;j<n-i;j+) stuj+1> stuj yn前一項(xiàng)與后一項(xiàng)交換 計算總成績賦值給結(jié)構(gòu)體存放以及平均值存放到結(jié)構(gòu)體stu中 scanf()輸入學(xué)生數(shù)據(jù)賦值給結(jié)構(gòu)體數(shù)組stu,數(shù)據(jù)的輸入n-s圖直到i大于n(學(xué)生人數(shù))輸

4、入數(shù)據(jù),并排序:對其中一門課程的成績輸出,并進(jìn)行了統(tǒng)計: for(i=0;i<n;i+)輸出某個科目的數(shù)據(jù)for(i=0;i<n;i+)算出總成績以及每個分?jǐn)?shù)段的人數(shù) for(k=0;k<5;k+)計算每個分?jǐn)?shù)段的比例輸出某科的全班平均分以及每個分?jǐn)?shù)段的人數(shù)以及比例篩選最高分的成績的學(xué)生數(shù)據(jù):for(i=0;i<n;i+) 所有的學(xué)生的總分大于第一個學(xué)生的總分YN進(jìn)行交換下標(biāo)返回最高分的學(xué)生結(jié)構(gòu)體數(shù)組四、關(guān)鍵部分的源代碼定義結(jié)構(gòu)體:struct Studentlong int num;char name20;float grade5;float aver;float t

5、otal;對最高分的輸出:max_stu=Max(p,n);printf("n");printf("輸出最高分的學(xué)生數(shù)據(jù):n學(xué)號 姓名 英語 高數(shù) 馬哲 計算機(jī) 電子技術(shù)n");printf("%-10d%8s%6.2f%6.2f%6.2f%6.2f%6.2fn",max_stu.num,max_,max_stu.grade0,max_stu.grade1,max_stu.grade2,max_stu.grade3,max_stu.grade4);輸入的關(guān)鍵for循環(huán)輸入學(xué)生數(shù)據(jù):for(i=0;i<N;i+)

6、scanf("%d %s %f %f %f %f %f",&stui.num,,&stui.grade0,&stui.grade1,&stui.grade2,&stui.grade3,&stui.grade4);stui.total=stui.grade0+stui.grade1+stui.grade2+stui.grade3+stui.grade4;stui.aver=stui.total/5.0;冒泡排序算法:使用了兩次;一次是對學(xué)號的排序,另一次是對總成績的排序:for (i=0;i<N;i+)f

7、or(j=0;j<N-i;j+)if(stuj+1.total>stuj.total)t=stuj;stuj=stuj+1;stuj+1=t;文件的打開以及輸入數(shù)據(jù)到文件中在關(guān)閉的程序代碼:fp=fopen("cj.dat","w+");for(i=0;i<n;i+)fprintf(fp,"%-10d,%-10s",p->num,p->name);for(j=0;j<5;j+)fprintf(fp,"%8.2f",p->gradej);fputs("n"

8、,fp);fclose(fp);如下是對其中一門課程的成績輸出,并進(jìn)行了統(tǒng)計:其實(shí)可以用一個函數(shù)把這些代碼包含在里面,之后再調(diào)用五次就可以完成五門課的成績表輸出了.但由于程序已經(jīng)寫好了,不怎么想改動。就免了,其實(shí)改過了也很方便,用個一個形參輸入即可控制哪一門的輸出。此處在源程序代碼中copy了五次。printf("課程名稱:英語n");print1();for(i=0;i<3;i+)printf("%-10ld%5s%8.2fn",stui.num,,stui.grade0);print2();for(i=0;i<N;i+)

9、sum+=stui.grade0;if(stui.grade0>=90) rs0+=1;if(stui.grade0>=80&&stui.grade0<90) rs1+=1;if(stui.grade0>=70&&stui.grade0<80) rs2+=1;if(stui.grade0>=60&&stui.grade0<70) rs3+=1;if(stui.grade0<60) rs4+=1;for(k=0;k<5;k+)blk=100.0*rsk/n;printf("90100分

10、(優(yōu)):%4d占%6.2f%n",rs0,bl0);printf("8089分(良):%4d占%6.2f%n",rs1,bl1);printf("7079分(中):%4d占%6.2f%n",rs2,bl2);printf("6069分(及格):%4d占%6.2f%n",rs3,bl3);printf("059分(不及格):%4d占%6.2f%n",rs4,bl4);篩選最高分的成績的學(xué)生數(shù)據(jù):for(i=0;i<N;i+)if(stuk.total<stui.total)k=i;return stuk;五、實(shí)驗(yàn)運(yùn)行結(jié)果的典型畫面六、實(shí)驗(yàn)總結(jié)這個實(shí)驗(yàn)真有點(diǎn)難,算法不難,很簡單,但是格式的要求等等以及語法會經(jīng)常出錯,這個程序我調(diào)試了好久,終于完成了。很高興,不僅因?yàn)槌绦蛲瓿闪耍且驗(yàn)閺闹袑W(xué)會了很多,有很

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論