完整word版學(xué)生成績記錄簿簿設(shè)計word文檔良心出品_第1頁
完整word版學(xué)生成績記錄簿簿設(shè)計word文檔良心出品_第2頁
完整word版學(xué)生成績記錄簿簿設(shè)計word文檔良心出品_第3頁
完整word版學(xué)生成績記錄簿簿設(shè)計word文檔良心出品_第4頁
完整word版學(xué)生成績記錄簿簿設(shè)計word文檔良心出品_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實用文檔1 觀孝隠KUNMING UNIVERSITY文案大全課程設(shè)計(大作業(yè))報告設(shè)計r題目學(xué)生成績記錄簿設(shè)計院系:信息技術(shù)學(xué)院班級:XX設(shè)計者:XX學(xué)號:XX指導(dǎo)教師:XX設(shè)計r時間:XX程序設(shè)計基礎(chǔ)課程名稱:技術(shù)學(xué)院昆明學(xué)院課程設(shè)計(大作業(yè))任務(wù)書院(系):信息技術(shù)學(xué)院學(xué) 號:xx姓 名:xx專 業(yè):計算機(jī)科學(xué)與技術(shù)任務(wù)起止日期:xx 課程設(shè)計題目:學(xué)生成績記錄簿課程設(shè)計要求:編制一個C語言成績記錄簿,每個學(xué)生信息包括:學(xué)號、姓名、C語言成績。具體功能:1. 系統(tǒng)以菜單方式工作;2. 創(chuàng)建學(xué)生成績信息并以磁盤文件保存;3. 讀取磁盤文件并顯示輸出所有學(xué)生的成績;4. 查詢學(xué)生成績;(1)

2、按學(xué)號查詢成績;(2)學(xué)號姓名查詢成績;5. 修改指定姓名或?qū)W號的學(xué)生的成績并可存盤;6. 顯示輸出60分以下、6079 8089、90分以上各分?jǐn)?shù)段的學(xué)生信息。工作計劃及安排:星期一:老師的大概講解及主函數(shù)、目錄函數(shù)的編寫和調(diào)試;星期二:創(chuàng)建學(xué)生信息、輸出學(xué)生信息和修改學(xué)生信息的函數(shù)編寫及調(diào)試; 星期三:學(xué)生信息查詢、學(xué)生成績分段和學(xué)生成績排序的函數(shù)編寫及調(diào)試;星期四:整個函數(shù)的最終調(diào)試,課程設(shè)計(大作業(yè))報告的書寫;星期五:答辯。指導(dǎo)教師簽字課程設(shè)計(大作業(yè))成績學(xué)號:XX姓名:XX指導(dǎo)教師:XX課程設(shè)計題目:學(xué)生成績記錄簿設(shè)計總結(jié):通過這次的課程設(shè)計,增加了我對學(xué)習(xí)C語言學(xué)習(xí)的興趣,雖然

3、還不是真正 的明白所有的C語言的子函數(shù)和里面的一些邏輯順序,但我從C語言這門課程開 始,已經(jīng)發(fā)現(xiàn)程序設(shè)計的樂趣,在學(xué)習(xí)C語言的過程中也學(xué)到了許多計算機(jī)應(yīng)用 基礎(chǔ)知識,對計算機(jī)的運行也有一個大體的了解。這次課程設(shè)計經(jīng)過老師的講解, 自己的查找,在網(wǎng)上的搜索,實現(xiàn)題目上的要求,先做出一些簡單的函數(shù)和程序, 一步步的在做出其它的內(nèi)容,不過在實際操作過程中犯得一些錯誤也還是會得到 一些意外的收獲。在具體的操作中,對這學(xué)期的C語言的理論知識得到鞏固,在 設(shè)計的過程中也發(fā)現(xiàn)自己的不足之處,在以后的學(xué)習(xí)和上機(jī)的操作中會更加注 意,同時體會到C語言的簡潔和靈活。在上機(jī)操作中我們的任何不懂的問題都會 暴露出來,

4、對于我們來說是是件好事,在課程設(shè)計的過程中特別是對數(shù)組和循環(huán) 有了深刻的理解。通過實際的操作,學(xué)會C語言程序編程的基本步驟、基本方法, 開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題,解決問題的能力。指導(dǎo)教師評語:成績:填表時間:指導(dǎo)教師簽名:目錄問題的定義、需求分析、總體設(shè)計3131四、詳細(xì)設(shè)計五、調(diào)試與測試六、結(jié)語問題的定義編制一個C語言成績記錄簿,每個學(xué)生信息包括:學(xué)號、姓名、C語言成績。 要求:1. 數(shù)據(jù)存儲采用文件形式。2. 標(biāo)準(zhǔn)的 C 語言輸入輸出3. 功能完善,適當(dāng)注釋4. 模塊化設(shè)計、結(jié)構(gòu)化編程二、需求分析系統(tǒng)能實現(xiàn)以下主要功能:1系統(tǒng)以菜單方式工作2. 創(chuàng)建學(xué)生成績信息并以磁盤文件

5、保存;3. 讀取磁盤文件并顯示輸出所有學(xué)生的成績;4. 查詢學(xué)生成績(1)按學(xué)號查詢成績(2)學(xué)號姓名查詢成績4添加成績記錄;5修改指定姓名或?qū)W號的學(xué)生的成績并可存盤;6顯示輸出 60 分以下、 6079、8089、90 分以上各分?jǐn)?shù)段的學(xué)生信息。、總體設(shè)計根據(jù)系統(tǒng)的要求,系統(tǒng)總體設(shè)計如圖 1 所示。圖1系統(tǒng)總體結(jié)構(gòu)四、詳細(xì)設(shè)計(包括函數(shù)原型、算法思想、流程描述)該部分主要包括:數(shù)據(jù)結(jié)構(gòu)設(shè)計、函數(shù)設(shè)計 代碼設(shè)計及程序運行結(jié)果顯示。(一)學(xué)生成績數(shù)據(jù)結(jié)構(gòu)設(shè)計#in cludevstdio.h#in cludevstdlib.h#in cludevstri ng.hint i,j,k,y;FILE

6、 *fp;Struct stuint no;char n ame30;float cscore;long a;struct stu s100;(二)函數(shù)設(shè)計1. 主函數(shù)ma in ()允許用戶通過菜單進(jìn)行功能選擇,使用相應(yīng)的功能代碼來調(diào)用對應(yīng)的函數(shù)功能。2. 其他各功能函數(shù)(1) 學(xué)生成績信息錄入函數(shù)void inp ut()算法思想: 依次錄入結(jié)構(gòu)體數(shù)組中所包含的各個成員; 直到輸入的結(jié)構(gòu)體成員中信息全部為0,數(shù)據(jù)輸入結(jié)束; 返回實際錄入的學(xué)生成績信息數(shù)。(2) 將學(xué)生成績信息輸出為 void output() 算法思想: 定義結(jié)構(gòu)體變量的指針變量; 輸出所輸入的全部信息,若不能輸出信息給出

7、提示信息; 將文件中的信息依次讀出,最后結(jié)構(gòu)體的指針為NULL。(3) 從文件中修改學(xué)生成績信息 void modify() 算法思想: 定義指向結(jié)構(gòu)體變量的指針和指向文件的指針; 修改方式分為兩種(學(xué)號和姓名),選擇是給出相應(yīng)的信息; 將修改后的信息保存,并提示。3. 流程描述(1)菜單函數(shù)int fun()成績記錄薄 );int n; system(cls); printf(nntttt printf(nnttt); for(i=0;i33;i+) printf(*);printf(n);printf(ttt * 菜單*n);printf(ttt* 1、創(chuàng)建學(xué)生的信息!t*n);print

8、f(ttt* 2、輸出所有學(xué)生的信息!t*n);printf(ttt* 3、修改成績!t*n);printf(ttt* 4、查詢!t*n);printf(ttt* 5、顯示成績分段的學(xué)生信息! t*nprintf(ttt* 6、學(xué)生成績排名!t*n);printf(ttt* 7、退出成績記錄??!t*n);printf(ttt);Hfor(i=0;i33;i+)printf(*);printf(nn);printf(nttt請輸入選項: );scanf(%d,&n);return n;(2) 學(xué)生成績信息錄入函數(shù)void input()system(cls);i=0;fp=fopen(out.d

9、at,w);printf(do請以 0 作為輸入學(xué)生學(xué)號信息的結(jié)束! n);printf( 輸入學(xué)生的學(xué)號: ); scanf(%d,&si.no);printf( 輸入學(xué)生的姓名: ); scanf(%s,);printf( 輸入學(xué)生的 C 語言成績: ); scanf(%f,&si.cscore);printf( 輸入添加成績的時間: ); scanf(%ld,&si.a);if(si.no!=0)fprintf(fp,%d %-4s %.1f %ldn,si.no,,si.cscore,si.a); while(si.no!=0);fclose(fp); vo

10、id output() if(fp=fopen(out.dat,r)=NULL) printf(Cannot open the file!n);/學(xué)生全部信息輸出printf(tttk=0;while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.cscore,&sk.a)!=EOF) printf(ttt%dt%st%.1ft%ldn,sk.no,,sk.cscore,sk.a);k+;fclose(fp);全部的學(xué)生信息: n);(3)學(xué)生信息輸出函數(shù)void output()if(fp=fopen(out.dat,r)=NULL)printf

11、(Cannot open the file!n);全部的學(xué)生信息: n);printf(tttk=0;while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.cscore,&sk.a)!=EOF) printf(ttt%dt%st%.1ft%ldn,sk.no,,sk.cscore,sk.a);k+;fclose(fp);(4)修改學(xué)生信息函數(shù)void modify()char st30;int x,num;float nu;long h;k=0;system(cls); if(fp=fopen(out.dat,r)=NULL)printf(Ca

12、nnot open the file!n); return; while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.cscore,&sk.a)!=EOF) k+; fclose(fp);printf( 輸入 1 表示用學(xué)號修改,輸入 scanf(%d,&x);if(x=1)printf( 請輸入修改成績?nèi)说膶W(xué)號: for(i=0;ik;i+)if(num=si.no)printf( 請輸入修改的成績: scanf(%f,&nu);2 表示用姓名修改!請選擇: n););scanf(%d,&num);n);si.cscore=nu;printf( 請輸入修改的

13、時間: n); scanf(%ld,&h);si.a=h;fp=fopen(out.dat,w); for(i=0;ik;i+)fprintf(fp,%d %s %.1f %ldn,si.no,,si.cscore,si.a);fclose(fp);printf( 修改成功 n);return;printf( 沒有找到該生的信息! n);return;if(x=2)printf( 請輸入修改成績?nèi)说男彰?);scanf(%s,st);for(i=0;ik;i+)if(strcmp(,st)=0)printf( 請輸入修改的成績: n);scanf(%f,&nu);

14、si.cscore=nu;printf( 請輸入修改成績的時間: n);scanf(%ld,&h);si.a=h;fp=fopen(out.dat,w);for(i=0;ik;i+)fprintf(fp,%d %s %.1f %ldn,si.no,,si.cscore,si.a); fclose(fp);printf( 修改成功 n);return;printf( 沒有找到該生的信息! n); return;(5) 代碼設(shè)計和執(zhí)行結(jié)果1. 頭文件Struct stuint no;/* 學(xué)號 */char name30; /* 姓名 */ float cscore; /*成績 */

15、long a; /* 時間 */;struct stu s100;/* 以下是函數(shù)原型 */void input() /*輸入記錄 */void output()/*輸出記錄 */void modify()/*修改記錄 */2. 源程序代碼與運行結(jié)果#include #include #include int i,j,k,y;FILE *fp;struct stu/ 結(jié)構(gòu)體函數(shù)的定義int no;char name30;float cscore;long a;/ 目;struct stu s100;int fun()錄函數(shù)int n;system(cls);printf(nntttt成績記錄薄

16、 );printf(nnttt);for(i=0;i33;i+)printf(*);printf(n);printf(ttt*菜單*n);printf(ttt*1、創(chuàng)建學(xué)生的信息!t*n);printf(ttt*2、輸出所有學(xué)生的信息!t*n);printf(ttt*3、修改成績!t*n);printf(ttt*4、查詢!t*n);printf(ttt*5、顯示成績分段的學(xué)生信息! t*n);printf(ttt*6、學(xué)生成績排名!t*n);printf(ttt*7、退出成績記錄??!t*n);printf(ttt);for(i=0;i33;i+)printf(*);printf(nn);pri

17、ntf(nttt請輸入選項: );scanf(%d,&n);return n;void input()/ 輸入學(xué)生的學(xué)號、姓名、成績信息system(cls);i=0;fp=fopen(out.dat,w);printf( 請以 0 作為輸入學(xué)生學(xué)號信息的結(jié)束! n);doprintf( 輸入學(xué)生的學(xué)號: );scanf(%d,&si.no);printf( 輸入學(xué)生的姓名: );scanf(%s,);printf( 輸入學(xué)生的 C 語言成績: );scanf(%f,&si.cscore);printf( 輸入添加成績的時間: );scanf(%ld,&si.a);if(si.n

18、o!=0)fprintf(fp,%d%-4s%.1f%ldn,si.no,,si.cscore,si.a);while(si.no!=0);fclose(fp);void output()/ / 學(xué)生全部信息輸出if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);printf(ttt全部的學(xué)生信息: n);k=0;while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.c score,&sk.a)!=EOF)printf(ttt%dt%st%.1ft%ldn,sk.no,sk.na

19、me,s k.cscore,sk.a);k+;fclose(fp);void modify()/ 修改學(xué)生信息char st30;int x,num;float nu;long h;k=0;system(cls);if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);return;while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.c score,&sk.a)!=EOF)k+;fclose(fp);printf( 輸入 1 表示用學(xué)號修改,輸入 2 表示用姓名修改!請選擇: n);scanf(

20、%d,&x);if(x=1)printf( 請 輸 入 修 改 成績?nèi)说膶W(xué)號);scanf(%d,&num);for(i=0;ik;i+)if(num=si.no)printf( 請輸入修改的成績:n);scanf(%f,&nu);si.cscore=nu;printf( 請輸入修改的時間:n);scanf(%ld,&h);si.a=h;fp=fopen(out.dat,w);for(i=0;ik;i+)fprintf(fp,%d%s%.1f%ldn,si.no,,si.cscore,si.a);fclose(fp);printf( 修改成功 n);return;printf(

21、沒有找到該生的信息! n);return;if(x=2)printf( 請輸入修改成績?nèi)说男彰?);scanf(%s,st);for(i=0;ik;i+) if(strcmp(,st)=0)printf( 請輸入修改的成績: n);scanf(%f,&nu);si.cscore=nu;printf( 請輸入修改成績的時間: n);scanf(%ld,&h);si.a=h;實用文檔fp=fopen(out.dat,w);for(i=0;ik;i+)fprintf(fp,%d %s %.1f %ldn,si.no,,si.cscore,si.a);fclose(fp)

22、;printf( 修改成功 n);return;printf( 沒有找到該生的信息! n);return;void lookat()/ 學(xué)生信息查詢char st30;int x,num;k=0;system(cls);if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);return;while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.c score,&sk.a)!=EOF) k+;printf( 輸入 1 表示用學(xué)號查詢,輸入 2 表示用姓名查詢!請選擇: n);scanf(%d,&x);

23、if(x=1)printf( 請輸入查詢的學(xué)號: );scanf(%d,&num);for(i=0;ik;i+) if(num=si.no)printf(%d%s%.1f%ldn,si.no,,si.cscore,si.a);return;printf( 對不起,找不到該生! n);return;if(x=2) printf( 請輸入查詢的姓名: );scanf(%s,st);for(i=0;ik;i+) if(strcmp(,st)=0)printf(%d%s%.1f%ldn,si.no,,si.cscore,si.a);return;printf(

24、 對不起,找不到該生! n);文案大全void subsection()/學(xué)生成績分段system(cls);k=0;if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.c score,&sk.a)!=EOF)k+;printf(ttt 90分以上學(xué)生的信息 !n);for(i=0;i=90)printf(ttt%d%s%.1f%ldn,si.no,,si.cscore,si.a);printf(nn);printf(ttt

25、80到 89 分學(xué)生的信息 !n);for(i=0;ik;i+)if(si.cscore=80)printf(ttt%d%s%.1f%ldn,si.no,,si.cscore,si.a);printf(nn);printf(ttt 60到 79 分學(xué)生的信息 !n);for(i=0;i=60&si.cscore80)printf(ttt%d%s%.1f%ldn,si.no,,si.cscore,si.a);printf(nn);printf(ttt 60分以下學(xué)生的信息 !n);for(i=0;ik;i+)if(si.cscore60)printf(ttt%d%s%

26、.1f%ldn,si.no,,si.cscore,si.a);printf(nn);void rank()/成績的排序?qū)嵱梦臋nstruct stu t;k=0;system(cls);if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.c score,&sk.a)!=EOF) k+;for(i=0;ik;i+)for(j=i+1;jk+1;j+)if(si.cscoresj.cscore) t=si;si=sj;sj=t;%d

27、for(i=0;ik;i+)名 %d %-4sprintf(ttt%.1f %ldn,i+1,si.no,,si.cscore,si.a);void choose(int n)/目錄的選項system(cls);switch(n)case 1:input();printf(nnnnttt是否返回?輸入表返回,文案大全輸入 2表退出! n);scanf(%d,&y);if(y=1)choose(fun();break;case 2:output();printf(nnnnttt是否返回?輸入表返回,輸入 2表退出! n);scanf(%d,&y);if(y=1)choose(fun

28、();break;case 3:modify();printf(nnnnttt是否返回?輸入表返回,輸入 2表退出! n);scanf(%d,&y);if(y=1)choose(fun();break;case 4:lookat();printf(nnnnttt是否返回?輸入1 表返回,輸入 2表退出! n);scanf(%d,&y);if(y=1)choose(fun();break;case 5:subsection();printf(nnnnttt是否返回?輸入1 表返回,輸入 2表退出! n);scanf(%d,&y);if(y=1)choose(fun();break;case 6:

29、rank();printf(nnnnttt是否返回?輸入1 表返回,輸入 2表退出! n);scanf(%d,&y);if(y=1)choose(fun();break;case 7:exit(0);break;default:printf(nnttt輸入沒有的選項, 請重新輸入! n);choose(fun();void main()/主函int n;system(cls);n=fun();choose(n);執(zhí)行結(jié)果如圖所示:1) 菜單盂C:LOCOIEHTS AND SETTIflGSIiniJ面lucimbii叭ub meBSD成績記錄薄Z,3、JtKKM KKM KKKMK 菜単_M

30、KMM MKM KKW1.創(chuàng)建芋生的信息 嬲巔譽的信息I 查閒I顯T成績分S的學(xué)生信息I 學(xué)生咸績專諾!退出成績總錄?。≌堓斎脒x項:.cT *C:DOCOIEITS ARD SETTIflCSIIDl面讓(A恥Im貞uc.埔的的的成的的的成的的的成的的的成yyl/ITlqq辦甘甘勺力些勺力目些勺力 以入入入入入入入入入入入入入入入入學(xué)i績生;成卄2管鑫的更名託的號魯?shù)奶柮毜?船于姓確睪姓簾範(fàn)于姓襦華姓簾績0QU(2) 創(chuàng)建學(xué)生信息(3) 退出創(chuàng)建學(xué)生信息實用文檔ILJ(4) 輸出全部的學(xué)生信息CA *C:DOCDIESTS ABD SETTIIGSEini面IccVJebti叭ub Me制:

31、r學(xué)生i言昌1234I戸卮、;11wn耐 chen song77.06衛(wèi)59.081.02013201320132013是否飯回?輸入1表飯回,輸入2表退岀I文案大全(5) 用學(xué)號修改學(xué)生信息實用文檔(6) 用姓名修改學(xué)生信息頁C:DOCTIIEHTS AID SETTIHGSKini桌面ccDebiiecc. eie輸入i表示用學(xué)號傢改,苛扎2表靈用姓W 佟茂!請選F&2輙鐮翳姓名-請輸入修改成績的吋間;2Q13修改成功是否返回?輸入丄表返回,輸入2表退出!(7 )沒有找到該學(xué)生的信息空 C:DOCniEITS AID SEITIICSKini面譏 輸入i表示用學(xué)號修改,肩A2表示用姓宕修改!請選擇乂

溫馨提示

  • 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

提交評論