




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì) 報(bào) 告課程名稱 c語(yǔ)言程序設(shè)計(jì) 課題名稱 班級(jí)成績(jī)管理系統(tǒng) 專 業(yè) 機(jī)械電子 班 級(jí) 0601班 學(xué) 號(hào) 200602170124 姓 名 彭浪 指導(dǎo)教師 肖偉平 羅敬 2008年 元 月 7 日湖南工程學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 c語(yǔ)言程序設(shè)計(jì) 課 題 班級(jí)成績(jī)管理系統(tǒng) 專業(yè)班級(jí) 機(jī)械電子* 學(xué)生姓名 * 學(xué) 號(hào) &* 指導(dǎo)老師 肖* 羅* 審 批 任務(wù)書下達(dá)日期 2008 年 元 月 7 日任務(wù)完成日期 2008 年 元 月 15 日目錄一 引言. 1二 總體設(shè)計(jì). 1三 詳細(xì)設(shè)計(jì). 3四 問(wèn)題分析及設(shè)計(jì)體會(huì). 11五 參考書目. 12六 附錄. 12一
2、、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1 設(shè)計(jì)內(nèi)容:班級(jí)成績(jī)管理系統(tǒng)設(shè)計(jì)涉及的知識(shí)點(diǎn):掌握并熟練運(yùn)用c語(yǔ)言的基本數(shù)據(jù)類型與各種表達(dá)式,程序的流程控制語(yǔ)句; 掌握數(shù)組的基本概念。熟練掌握一維數(shù)組、二維數(shù)組的應(yīng)用、掌握字符數(shù)組與字符串的關(guān)系以及字符串的簡(jiǎn)單處理。掌握函數(shù)的定義,函數(shù)的返回值,函數(shù)的調(diào)用,函數(shù)的形式參數(shù)和實(shí)際參數(shù)之間的關(guān)系;掌握變量的作用域與生存期,了解函數(shù)的作用域。掌握結(jié)構(gòu)的概念,結(jié)構(gòu)類型的定義,結(jié)構(gòu)變量的定義和初始化,結(jié)構(gòu)成員的表示,結(jié)構(gòu)的賦值含義,結(jié)構(gòu)與指針、函數(shù)的關(guān)系。掌握文件、文件類型指針的基本概念,熟練掌握文件的打開與關(guān)閉以及文件的建立、讀寫等有關(guān)操作。2 設(shè)計(jì)要求:1) 用c語(yǔ)言實(shí)現(xiàn)系統(tǒng)
3、;利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)班級(jí)成績(jī)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);應(yīng)提供一個(gè)界面來(lái)調(diào)用各個(gè)功能,調(diào)用界面和各個(gè)功能的操作界面應(yīng)盡可能清晰美觀。2) 建立一個(gè)班級(jí)學(xué)生成績(jī)數(shù)據(jù)庫(kù),文件名為bjcjk.txt,并從該文件中讀取數(shù)據(jù);3) 班級(jí)成績(jī)管理系統(tǒng)應(yīng)能提供以下功能:(1)主菜單界面設(shè)計(jì)。通過(guò)提示用戶輸入一個(gè)數(shù)字選項(xiàng),調(diào)用相應(yīng)的功能函數(shù)。(2)成績(jī)顯示:完成班級(jí)全部學(xué)生成績(jī)的顯示;(3)成績(jī)錄入:完成新增一個(gè)學(xué)生的成績(jī)記錄,并重新計(jì)算學(xué)生的平均成績(jī);(4)成績(jī)修改:按學(xué)號(hào)修改一個(gè)學(xué)生的學(xué)習(xí)成績(jī),并重新計(jì)算學(xué)生的平均成績(jī);(5)成績(jī)排序:按學(xué)生平均成績(jī)進(jìn)行排序;(6)成績(jī)統(tǒng)計(jì):
4、統(tǒng)計(jì)并顯示每門課程的平均成績(jī); 統(tǒng)計(jì)并顯示超過(guò)某門課程平均分的人數(shù)以及學(xué)生記錄;4) 說(shuō)明:(1) 要求將修改后的數(shù)據(jù)寫入到一個(gè)新的數(shù)據(jù)文件nwejck.txt中。(2) 對(duì)系統(tǒng)有興趣的同學(xué)可以在實(shí)現(xiàn)基本要求的基礎(chǔ)上,完善系統(tǒng)的其它功能。5) 班級(jí)成績(jī)管理系統(tǒng)采用一個(gè)結(jié)構(gòu)體數(shù)組,學(xué)生成績(jī)數(shù)據(jù)庫(kù)結(jié)構(gòu)如下:int xh /*學(xué)號(hào)*/char name10 /*姓名*/int yy /*英語(yǔ)*/int mat /*數(shù)學(xué)*/int jsj /*計(jì)算機(jī)*/int wl /*物理*/int zf /*總分*/ 注意:學(xué)號(hào)不重復(fù),且數(shù)據(jù)庫(kù)應(yīng)有10條或以上的記錄。6) 要求:1 要求每個(gè)學(xué)生必須獨(dú)立思考,認(rèn)真
5、并按時(shí)完成本課程設(shè)計(jì)所包含的所有內(nèi)容;2 要求學(xué)生必須按照課程設(shè)計(jì)報(bào)告的完整格式說(shuō)明設(shè)計(jì)內(nèi)容,設(shè)計(jì)任務(wù)分析過(guò)程和算法,給出程序流程圖和全部源程序;3 設(shè)計(jì)報(bào)告的完整格式應(yīng)包括以下部分的內(nèi)容: 設(shè)計(jì)總體思路; 程序及各個(gè)模塊說(shuō)明; 總體模塊框圖; 各個(gè)程序模塊說(shuō)明; 程序流程圖; 程序清單; 課程設(shè)計(jì)總結(jié)與體會(huì)(不少于400字)。4 上機(jī)時(shí)要求必到,設(shè)計(jì)完成,必須演示程序,答辯并提交設(shè)計(jì)報(bào)告。二、進(jìn)度安排第 19 周 星期一 8:0011:00 星期一 19:0022:00 星期二 14:0017:00 星期三 8:0011:00 星期五 14:0017:30附:課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)
6、書、目錄、正文、評(píng)分、附件(a4大小的圖紙及程序清單)。 正文的格式:一級(jí)標(biāo)題用3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體;行距為22。正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個(gè)主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對(duì)程序?qū)懗霰匾淖⑨專U目傋謹(jǐn)?shù)要求在5000字以上(不含程序原代碼)。 一:引言1.1 編寫目的 編寫班級(jí)成績(jī)管理系統(tǒng)主要是為為方便我們能夠更好的管理班級(jí)學(xué)生各項(xiàng)信息。并且能夠很輕松的查找、修改、刪除我們需要學(xué)生的所有信息,并按一定要求顯示信息,按成績(jī)的總分,均值由高
7、到低進(jìn)行排序。二總體設(shè)計(jì)2.1主要功能主要實(shí)現(xiàn)學(xué)生各項(xiàng)信息的長(zhǎng)久保存,瀏覽記錄、修改記錄、刪除記錄、查詢記錄、追加記錄、排序和統(tǒng)計(jì)記錄。 班級(jí)成績(jī)管理系統(tǒng)提供以下功能:(1)主菜單界面。通過(guò)提示用戶輸入一個(gè)數(shù)字選項(xiàng),調(diào)用相應(yīng)的功能函數(shù)。(2)成績(jī)顯示:完成班級(jí)全部學(xué)生成績(jī)的顯示;(3)成績(jī)錄入:完成新增一個(gè)學(xué)生的成績(jī)記錄,并重新計(jì)算學(xué)生的平均成績(jī);(4)成績(jī)修改:按學(xué)號(hào)修改一個(gè)學(xué)生的學(xué)習(xí)成績(jī),并重新計(jì)算學(xué)生的平均成績(jī);(5)成績(jī)排序:按學(xué)生平均成績(jī)進(jìn)行排序;(6)成績(jī)統(tǒng)計(jì): 統(tǒng)計(jì)并顯示每門課程的平均成績(jī); 統(tǒng)計(jì)并顯示超過(guò)某門課程平均分的人數(shù)以及學(xué)生記錄;2.1 各個(gè)模塊(1)本程序是由七個(gè)基本
8、模塊夠成。其中主模塊是由系統(tǒng)函數(shù)夠建而成,其重要功能是顯示出主菜單,由用戶做出選擇。用戶每選擇除退出外的菜單都能返回系統(tǒng)函數(shù)。系統(tǒng)模塊圖如下: 主函數(shù)主界面查詢功能排序功能顯示功能刪除功能追加功能修改功能統(tǒng)計(jì)功能(2)模塊說(shuō)明主界面 main() 提供用戶選擇界面顯示模塊 disp() 顯示用戶學(xué)生的所有信息追加模塊 appe() 用來(lái)添加學(xué)生信息修改模塊 modi() 修改學(xué)生記錄里面的某項(xiàng)信息刪除模塊 dele() 刪除學(xué)生記錄的某條信息查詢模塊 query() 查詢學(xué)生記錄的某條信息排序模塊 sort() 按總分的高低排序統(tǒng)計(jì)模塊 statistics 高于單課成績(jī)的平均分?jǐn)?shù)的顯示、打印
9、退出模塊 quit() 安全退出并保存信息三詳細(xì)設(shè)計(jì)3.1 主函數(shù)的流程圖退出系統(tǒng)信息安全退出并保存結(jié)束開始file *fp調(diào)用 re_file()main menuswitch(choice)修改信息查詢信息排序信息統(tǒng)計(jì)信息87653421顯示信息追加信息刪除信息調(diào)用wr_file()3.2 各個(gè)模塊的運(yùn)行步驟及運(yùn)行界面 主菜單選擇界面1按1選擇顯示功能2按2進(jìn)入追加功能:輸入相應(yīng)的信息后:添加后顯示如下:3按3進(jìn)入修改功能:輸入要修改的學(xué)生的學(xué)號(hào)和姓名:(如下修改剛添加的學(xué)生的信息)然后選擇要修改的項(xiàng)目:(如下按3把英語(yǔ)成績(jī)改成82)修改后顯示如下:如果輸入的學(xué)號(hào)或姓名有錯(cuò)誤的話就會(huì)提示:
10、can not find the information! (修改和刪除模塊也一樣)輸入錯(cuò)誤信息顯示如下:4按4進(jìn)入刪除功能:(刪除剛添加的學(xué)生的信息)刪除后顯示如下:5按5進(jìn)入查詢功能:(如下001號(hào)peng 的信息)查詢后顯示如下:6按6進(jìn)入排序功能:7統(tǒng)按7進(jìn)入統(tǒng)計(jì)功能:(顯示單科平均分以及超過(guò)平均分的學(xué)生的學(xué)號(hào)姓名和此科成績(jī)并顯示超過(guò)平均分的學(xué)生的個(gè)數(shù))8按8選擇退出程序:四問(wèn)題分析與設(shè)計(jì)體會(huì)(1) 問(wèn)題及解決的辦法 在調(diào)試過(guò)程中我們也遇到過(guò)不少的錯(cuò)誤,警告等,有些錯(cuò)誤多達(dá)二十多個(gè),改得頭都是暈的,有時(shí)就想放棄了,但是在老師的幫助下,我慢慢的將程序調(diào)好,這都?xì)w功于老師的幫助。有時(shí)我們?cè)?/p>
11、調(diào)試的時(shí)候無(wú)意間多打了一個(gè)空格或者是無(wú)意間刪了一個(gè)字符,導(dǎo)致程序很多的錯(cuò)誤,還有就是在建庫(kù)的時(shí)候不能出錯(cuò),一但出了一點(diǎn)錯(cuò)就得重新輸入。所以,希望以后程序設(shè)計(jì)者一定要注意這點(diǎn),一定要小心,三思而后行。還有就是程序本身存在很多不足,有待改進(jìn)。比如修改模塊,一次只能改一項(xiàng)數(shù)據(jù)。(2) 設(shè)計(jì)體會(huì)在這次c語(yǔ)言課程設(shè)計(jì)的實(shí)習(xí)中,我不但深刻地認(rèn)識(shí)到了理論知識(shí)的重要性,更懂的了要理論聯(lián)系實(shí)際,學(xué)會(huì)學(xué)以致用 。因?yàn)槠綍r(shí)在這方面沒有過(guò)多的關(guān)注,平時(shí)學(xué)的一點(diǎn)理論知識(shí)也很有限所以在實(shí)習(xí)過(guò)程中也遇到了不少問(wèn)題,但在我和同學(xué)的討論下都得到了解決,同時(shí)也使我頗有收獲,當(dāng)然我程序能完成來(lái)于老師的指導(dǎo)有方。當(dāng)然當(dāng)中很多模塊都是
12、借鑒的,但畢竟我還初在出學(xué)階段,要成為高手還有很長(zhǎng)的一段路要走,但通過(guò)這次實(shí)習(xí),我了解到程序也不想想象中的那么復(fù)雜,只要花功夫就會(huì)有收獲,其實(shí)很多知識(shí)在課堂上老師都已經(jīng)講過(guò),但我就是缺少了那一份靈動(dòng),所以除了要有扎實(shí)的基本功外,那一點(diǎn)點(diǎn)小聰明還是必要的??傊疄榱四軌蝽樌ㄟ^(guò),我努力查閱了很多資料,也請(qǐng)教了老師,這一周很快就過(guò)去了,但這一周過(guò)的很愉快,我鞏固了很多東西,收獲不少。五. 參考書目 (1)楊路明.c程序設(shè)計(jì).北京郵電大學(xué)出版社.2006.6 (2)譚浩強(qiáng).c程序設(shè)計(jì)(第三版).清華大學(xué)出版社,2007.2六附件:#include "stdio.h"#include
13、 "string.h"int n=0;struct stu int xh; /*學(xué)號(hào)*/ char name10; /*姓名*/ int yy; /*英語(yǔ)*/ int mat; /*數(shù)學(xué)*/ int jsj; /*計(jì)算機(jī)*/ int wl; /*物理*/ int zf; /*總分*/ float jz; /* 均值*/ float tj4; /*統(tǒng)計(jì)*/ s20;void re_file() file *fp; fp=fopen("g:pl2bjcjk.txt","r"); while( fscanf(fp,"%dn%sn%
14、dn%dn%dn%dn%dn",&sn.xh,sn.name,&sn.yy,&sn.mat,&sn.jsj,&sn.wl,&sn.zf)!=eof) n+; fclose(fp); void wr_file()int i; file *fp; fp=fopen("g:pl2nwejck.txt","w"); for(i=0;i<n;i+) fprintf(fp,"%dn%sn%dn%dn%dn%dn%dn",si.xh,,si.yy,si.mat,si.js
15、j,si.wl,si.zf); fclose(fp);void disp() /*顯示模塊*/ int i; clrscr();printf("n xh name yy mat jsj wl zf n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"); for(i=0;i<n;i+) printf("n %5d %-7s %-3d %-3d %-3d %-3d %-3d",si.xh,si.nam
16、e,si.yy,si.mat,si.jsj,si.wl,si.zf);void appe() /*追加模塊*/printf("input:n xh name yy mat jsj wl zfn"); scanf("%d%s%d%d%d%d%d",&sn.xh,sn.name,&sn.yy,&sn.mat,&sn.jsj,&sn.wl,&sn.zf); printf("nn%5d %-7s %-3d %-3d %-3d %-3d %-3d",sn.xh,sn.name,sn.yy,sn.m
17、at,sn.jsj,sn.wl,sn.zf); n=n+1;void modi() /*修改模塊*/int i,t,k; char ch10; printf("input one xh and name n"); printf("xh:"); scanf("%d",&k); printf("nname:"); scanf("%s",ch); for(i=0;i<n;i+) if(k=si.xh)&&(strcmp(ch,)=0) break; if(i
18、=n) printf("can not find information!n");else printf("n xh name yy mat jsj wl zf n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"); printf("nn %5d %-7s %-3d %-3d %-3d %-3d %-3d",si.xh,,si.yy,si.mat,si.jsj,si.
19、wl,si.zf); printf("nninput information 1-xh 2-name 3-yy 4-mat 5-jsj 6-wl 7-zfn"); printf("t="); scanf("%d",&t); switch(t) case 1:printf("input new xh=");scanf("%d",&si.xh);break; case 2:printf("input new name=");scanf("%s"
20、,);break; case 3:printf("input new yy=");scanf("%d",&si.yy);break; case 4:printf("input new mat=");scanf("%d",&si.mat);break; case 5:printf("input new jsj=");scanf("%d",&si.jsj);break; case 6:printf("input new wl=&qu
21、ot;);scanf("%d",&si.wl);break; case 7:printf("input new zf=");scanf("%d",&si.zf);break; ;disp(); void dele() /*刪除模塊*/ int i,k; char ch10; printf("input one xh and name n"); printf("xh:"); scanf("%d",&k); printf("nname:"
22、;); scanf("%s",ch); for(i=0;i<n;i+) if(k=si.xh)&&(strcmp(ch,)=0) break; if(i=n) printf("can not find information!n"); else for(;i<n-1;i+) si=si+1;n=n-1;disp();void query() /*查詢模塊*/ int i,t; char ch10; printf("input xh:"); scanf("%d",&t
23、); printf("input name:"); scanf("%s",ch); for(i=0;i<n;i+) if(t=si.xh)&&(strcmp(ch,)=0) break; if(i=n) printf("can not find information!n"); else printf("n%5d %-7s %-3d %-3d %-3d %-3d %-3d ",si.xh,,si.yy,si.mat,si.jsj,si.wl,si.zf);void
24、sort() /*排序*/ struct stu s1;int i,j;for(i=0;i<n;i+)si.zf=si.yy+si.mat+si.jsj+si.wl;si.jz=si.zf/4.0; for(i=0;i<n-1;i+ ) for(j=i+1;j<n;j+) if(si.jz<sj.jz) s1=si;si=sj;sj=s1; void statistics() /*統(tǒng)計(jì)模塊*/ int i,t=0; float tj4=0; for(i=0;i<n;i+) tj0+=si.yy; tj1+=si.mat;tj2+=si.jsj;tj3+=si.wl
25、; tj0=tj0/i;tj1=tj1/i;tj2=tj2/i;tj3=tj3/i; printf(" average yy=%.1ft average mat=%.1fn average jsj=%.1ft average wl=%.1fn",tj0,tj1,tj2,tj3); for(i=0;i<n;i+) if(tj0<si.yy) t+;printf(" xh:%d name:%s yy:%d",si.xh,,si.yy);if(t)%2=0) printf("n"); printf("na
26、bove average yy:%dn",t);t=0; for(i=0;i<n;i+) if(tj1<si.mat) t+;printf(" xh:%d name:%s mat:%d",si.xh,,si.mat);if(t)%2=0) printf("n"); printf("nabove average mat:%dn",t);t=0; for(i=0;i<n;i+) if(tj2<si.jsj) t+;printf(" xh:%d name:%s jsj:%d"
27、;,si.xh,,si.jsj);if(t)%2=0) printf("n"); printf("nabove average jsj:%dn",t);t=0; for(i=0;i<n;i+) if(tj3<si.wl) t+;printf(" xh:%d name:%s wl:%d",si.xh,,si.wl);if(t)%2=0) printf("n"); printf("nabove average wl:%d",t); void quit() /*退出*/ printf(" * thank you bye * n"); main() int sele; re_file(); sele=1; while(se
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)燃機(jī)基礎(chǔ)知識(shí)培訓(xùn)課件
- 教育培訓(xùn)機(jī)構(gòu)課程退費(fèi)須知
- 小紅帽故事征文
- 信息技術(shù)在農(nóng)業(yè)領(lǐng)域的應(yīng)用開發(fā)合同
- 江西省南昌市2024-2025學(xué)年高二上學(xué)期期末生物學(xué)試題(含答案)
- 福建省三明市2024-2025學(xué)年高二上學(xué)期期末考試生物學(xué)試題(含答案)
- 城市交通智能調(diào)度系統(tǒng)開發(fā)合同
- 農(nóng)民土地承包經(jīng)營(yíng)權(quán)優(yōu)化項(xiàng)目協(xié)議
- 企業(yè)級(jí)自動(dòng)化測(cè)試工具開發(fā)合作協(xié)議
- 廚房瓷磚知識(shí)培訓(xùn)課件
- 2025年天翼云解決方案架構(gòu)師認(rèn)證考試指導(dǎo)題庫(kù)-上(單選題)
- 2025年廣東省深圳市高考語(yǔ)文一模試卷
- 2025年春人教版英語(yǔ)八年級(jí)下冊(cè)同步課件 Unit 7 Whats the highest mountain in the world課件 Section A 1a-2d
- 2025年哈爾濱鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)必考題
- 行為規(guī)范教育中學(xué)校長(zhǎng)在國(guó)旗下講話:嚴(yán)格要求自己規(guī)范自己的行為
- 2025年福建省高職單招職業(yè)適應(yīng)性測(cè)試題庫(kù)及答案解析
- 七下綜合世界真奇妙-共享“地球村”
- 2025年信陽(yáng)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025-2030年中國(guó)eva熱熔膠行業(yè)運(yùn)營(yíng)狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2024年廣東職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 印刷服務(wù)投標(biāo)方案(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論