版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、華北水利水電大學(xué) North China Institute of Water Conservancy and Hydroelectric Power 課 程 設(shè) 計(jì) 題 目: 學(xué)生成績(jī)管理系統(tǒng) 姓 名: 王漫漫 學(xué) 院: 信息工程學(xué)院 專(zhuān) 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 208班 學(xué) 號(hào): 指導(dǎo)教師: 鄭作勇 2014年11月16日 目 錄一 設(shè)計(jì)目的.1二 課程設(shè)計(jì)的內(nèi)容.2三 課程設(shè)計(jì)的要求與數(shù)據(jù).3四 課程設(shè)計(jì)應(yīng)完成的工作.4五 總體設(shè)計(jì)(包含幾大功能模塊).5六 詳細(xì)設(shè)計(jì)(各功能模塊的具體實(shí)現(xiàn)算法流程圖).6七 調(diào)試分析(包含各模塊的測(cè)試用例,及測(cè)試結(jié)果).7八 總結(jié).8十 參考資
2、料.9一 設(shè)計(jì)目的進(jìn)一步加深、鞏固所學(xué)專(zhuān)業(yè)課程(C語(yǔ)言程序設(shè)計(jì))的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)自己綜合分析問(wèn)題和解決問(wèn)題的能力。掌握運(yùn)用C語(yǔ)言獨(dú)立地編寫(xiě)、調(diào)試應(yīng)用程序和進(jìn)行其它相關(guān)設(shè)計(jì)的技能。二 課程設(shè)計(jì)的內(nèi)容對(duì)學(xué)生信息(包括學(xué)號(hào)、語(yǔ)文、數(shù)學(xué)、英語(yǔ)、平均分)進(jìn)行管理,包括學(xué)生成績(jī)的信息輸入、輸出、查詢(xún)、刪除、排序、統(tǒng)計(jì)、退出.將學(xué)生的成績(jī)信息進(jìn)行記錄,信息內(nèi)容包含:(1)學(xué)生的學(xué)號(hào)(2)學(xué)生的姓名(3)學(xué)生的成績(jī)。假設(shè),現(xiàn)收集到了一個(gè)班學(xué)生的所有成績(jī)信息,要求用C語(yǔ)言編寫(xiě)一個(gè)簡(jiǎn)單的成績(jī)管理系統(tǒng),可進(jìn)行錄入、查詢(xún)、修改和瀏覽等功能。學(xué)習(xí)相關(guān)開(kāi)發(fā)工具和應(yīng)用軟件,熟悉系統(tǒng)建設(shè)過(guò)程。三 課程
3、設(shè)計(jì)的要求與數(shù)據(jù)1、用C語(yǔ)言實(shí)現(xiàn)系統(tǒng);2、對(duì)學(xué)生信息(包括學(xué)號(hào)、姓名、語(yǔ)文、數(shù)學(xué)、英語(yǔ)、平均分)進(jìn)行管理,包括學(xué)生成績(jī)的信息輸入、輸出、查詢(xún)、刪除、排序、統(tǒng)計(jì)、退出.3、學(xué)生信息包括:其內(nèi)容較多,為了簡(jiǎn)化討論,要求設(shè)計(jì)的管理系統(tǒng)能夠完成以下功能:(1) 每一條記錄包括一個(gè)學(xué)生的學(xué)號(hào)、姓名、3門(mén)課成績(jī)(2)、成績(jī)信息錄入功能:(成績(jī)信息用文件保存,可以一次完成若干條記錄的輸入。)(3)、成績(jī)信息顯示瀏覽功能:完成全部學(xué)生記錄的顯示。(4)、查詢(xún)功能:完成按姓名查找學(xué)生記錄,并顯示。(5)成績(jī)信息的刪除:按學(xué)號(hào)進(jìn)行刪除某學(xué)生的成績(jī).(6)、排序功能:按學(xué)生平均成績(jī)進(jìn)行排序。(7)、應(yīng)提供一個(gè)界面來(lái)
4、調(diào)用各個(gè)功能,調(diào)用界面和各個(gè)功能的操作界面應(yīng)盡可能清晰美觀(guān)!四 課程設(shè)計(jì)應(yīng)完成的工作(1)編寫(xiě)算法;(2)算法測(cè)試,并有具體的測(cè)試結(jié)果和結(jié)果分析;(3)撰寫(xiě)課程設(shè)計(jì)報(bào)告。內(nèi)容包括:1) 封面扉頁(yè)2) 設(shè)計(jì)任務(wù)書(shū)3) 目錄4) 總體設(shè)計(jì)方案(包括流程圖)5) 使用說(shuō)明及運(yùn)行實(shí)例(包括界面)6) 成員設(shè)計(jì)內(nèi)容簡(jiǎn)介7) 項(xiàng)目源程序代碼(注意注釋的使用)8) 指導(dǎo)教師評(píng)語(yǔ)五 總體設(shè)計(jì)(包含幾大功能模塊) 1、成績(jī)錄入功能2、成績(jī)輸出功能3、成績(jī)查詢(xún)功能4、刪除模塊 5、排序功能 6、統(tǒng)計(jì)功能 7、退出系統(tǒng)六 詳細(xì)設(shè)計(jì)(各功能模塊的具體實(shí)現(xiàn)算法流程圖)6.1各函數(shù)的功能和實(shí)現(xiàn)1、輸入初始的學(xué)生信息:輸入
5、信息包括學(xué)生的姓名、學(xué)號(hào)以及學(xué)生的成績(jī)等相關(guān)信息;可用函數(shù)void input(STUDENT *data, int *len)來(lái)實(shí)現(xiàn)此操作。 2、成績(jī)輸出模塊:輸出學(xué)生的信息以及成績(jī)void output(STUDENT *data, int len):通過(guò)學(xué)生的姓名來(lái)查看學(xué)生的相關(guān)成績(jī),同時(shí)也可以分別通過(guò)caverage()、maverage()、eaverage()和comaverage()來(lái)輸出成績(jī)的平均分?jǐn)?shù)、最高和最低分?jǐn)?shù)。3、成績(jī)查詢(xún)模塊:可用void find(STUDENT *data, int len)來(lái)實(shí)現(xiàn)。找到就輸出此學(xué)生全部信息。4、刪除模塊:用函數(shù)void delet
6、e_item(STUDENT *data, int *len)來(lái)實(shí)現(xiàn)5、排序模塊:用函數(shù)void sort(STUDENT *data, int len)來(lái)實(shí)現(xiàn)6、統(tǒng)計(jì)功能能:用函數(shù)void stat(STUDENT *data, int len) 來(lái)實(shí)現(xiàn)7、退出系統(tǒng):可用一個(gè)函數(shù)exit()來(lái)實(shí)現(xiàn),首先將信息保存到文件中,釋放動(dòng)態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。 如圖6.1結(jié)束開(kāi)始輸出菜單根據(jù)菜單輸入n的值選擇程序輸入退出輸出保存查找排序統(tǒng)計(jì)插入刪除 圖 6.1七 調(diào)試分析(包含各模塊的測(cè)試用例,及測(cè)試結(jié)果) 7.1源程序#include #include #include #define M
7、AXN 35#define MAX_NAME 256typedef struct student /學(xué)生信息int no;char nameMAX_NAME;char sex10;char address50;double xianxingdaishu;double math;double wuli;double c;double mark_ave;double mark_tot; STUDENT;/*-輸入信息子程序-*/void input(STUDENT *data, int *len)int no;putchar(n);printf(%sn, 請(qǐng)輸入新的記錄,如果需要退出當(dāng)前菜單請(qǐng)輸入
8、-1.);printf(%s, 格式:n學(xué)號(hào) nn);printf(%sn, 姓名 性別 籍貫 線(xiàn)性代數(shù) 高等數(shù)學(xué) 大學(xué)物理 C語(yǔ)言);putchar(n);printf(如:n);printf(1n);printf(王漫漫 女 河南 93 95 70 75n);scanf(%d, &no);while(no != -1) data*len.no = no;scanf(%s %lf %lf %lf %lf, data*, &data*len.xianxingdaishu, &data*len.math,&data*len.wuli,&data*len.c );data*len.
9、mark_ave=(data*len.xianxingdaishu+data*len.math+data*len.wuli+data*len.c)/4.0;data*len.mark_tot=data*len.xianxingdaishu+data*len.math+data*len.wuli+data*len.c;(*len)+;scanf(%d, &no); /*-輸出信息子程序-*/void output(STUDENT *data, int len) int i;system(cls); printf(%8s, 學(xué)號(hào)); printf(%8s, 姓名); printf(%8s, 性別)
10、; printf(%8s, 籍貫); printf(%10s, 線(xiàn)性代數(shù)); printf(%10s, 高等數(shù)學(xué)); printf(%10s, 大學(xué)物理); printf(%10s, C語(yǔ)言); printf(%12s, 平均分); printf(%10s, 總分); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); for (i = 0; i len; i+) printf(%8d, datai.no); printf(%8s, );printf(%8s, datai.sex);printf(%8s, dat
11、ai.address); printf(%8.1lf, datai.xianxingdaishu); printf(%8.1lf, datai.math); printf(%10.1lf, datai.wuli);printf(%10.1lf, datai.c); printf(%12.1lf, datai.mark_ave); printf(%10.1lf, datai.mark_tot); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(按回車(chē)鍵繼續(xù).); getchar(); getchar();/*-排序子
12、程序-*/void sort(STUDENT *data, int len) int i,j,k; STUDENT temp; for (i=0; ilen-1; i+) for (k=i, j=i+1; j dataj.mark_ave) k=j;if (k != i) temp = datai;datai = datak;datak = temp; /*-搜索子程序-*/void find(STUDENT *data, int len) int find_no, result ; int i;lab: result=0; printf(%sn, 請(qǐng)輸入需要查找的學(xué)生的學(xué)號(hào),退出當(dāng)前菜單請(qǐng)輸
13、入 -1.); scanf(%d, &find_no); if (find_no = -1) return; /*exit the fine sub program*/ while( dataresult.no != find_no & result = len ) printf(%sn, 未查詢(xún)到相關(guān)信息); goto lab; else system(cls); printf(%sn, 查詢(xún)信息如下:); for (i =0; i 80; i+) putchar(=); putchar(n); printf(%8s, 學(xué)號(hào)); printf(%8s, 姓名); printf(%8s, 性別
14、); printf(%8s, 籍貫); printf(%10s, 線(xiàn)性代數(shù)); printf(%10s, 高等數(shù)學(xué)); printf(%10s, 大學(xué)物理); printf(%10s, C語(yǔ)言); printf(%12s, 平均分); printf(%10s, 總分); putchar(n); printf(%8d, dataresult.no); printf(%8s, ); printf(%8s, dataresult.sex); printf(%8s, dataresult.address); printf(%8.1lf, dataresult.xianxi
15、ngdaishu); printf(%8.1lf, dataresult.math); printf(%10.1lf, dataresult.wuli); printf(%10.1lf, dataresult.c); printf(%12.1lf, dataresult.mark_ave); printf(%10.1lf, dataresult.mark_tot); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); goto lab; /*-插入子程序-*/void insert(STUDENT *data, int *len)
16、int no, pos; double xianxingdaishu, math, wuli,c, mark_ave, mark_tot; int i; char nameMAX_NAME,sex10, address50;lab: printf(%sn, 輸入新的記錄,退出當(dāng)前菜單請(qǐng)輸入-1.); printf(%s, 格式:n); printf(%sn, 學(xué)號(hào) 姓名 性別 籍貫 線(xiàn)性代數(shù) 高等數(shù)學(xué) 大學(xué)物理 C語(yǔ)言); scanf(%d, &no); if (no = -1) return; data*len.no = no; scanf(%s %s %s %lf %lf %lf %lf,
17、 name, sex, address, &xianxingdaishu, &math, &wuli, &c); mark_ave=(xianxingdaishu+math+wuli+c)/4.0; mark_tot=xianxingdaishu+math+wuli+c; pos = 0; while (datapos.mark_ave mark_ave) & (pos = pos; i-) datai+1 = datai; datapos.no = no; strcpy(, name); datapos.xianxingdaishu = xianxingdaishu;
18、 datapos.math = math; datapos.wuli = wuli; datapos.c = c; datapos.mark_ave = mark_ave; datapos.mark_tot = mark_tot; (*len)+; goto lab;/*-刪除子程序-*/void delete_item(STUDENT *data, int *len) int no, i, pos;lab: pos=0; printf(%sn, 輸入需要?jiǎng)h除的學(xué)生的學(xué)號(hào),退出當(dāng)前菜單請(qǐng)輸入-1.); scanf(%d, &no); if (no = -1) return; while( (d
19、atapos.no != no) & (pos = *len) printf(%sn, 未找到需要?jiǎng)h除的學(xué)生); goto lab; else for (i = pos+1;i *len; i+) datai-1 = datai; *len = *len -1; if (*len = 0) printf(%sn, 沒(méi)有任何記錄,請(qǐng)按回車(chē)鍵返回.); getchar(); getchar(); return; goto lab; /*-統(tǒng)計(jì)子程序-*/void stat(STUDENT *data, int len) int no_59=0, no_69=0, no_79=0, no_89=0,
20、 no_100=0; int i; for (i = 0;i len; i+) if (datai.mark_ave =59) no_59+; else if (datai.mark_ave =69) no_69+;else if (datai.mark_ave =79) no_79+;else if (datai.mark_ave = 89) no_89+;else no_100+; system(cls); for (i =0; i 80; i+) putchar(=);putchar(n); printf(%10s, 分?jǐn)?shù)); printf(%10s, 0-59); printf(%10
21、s, 60-69); printf(%10s, 70-79); printf(%10s, 80-89); printf(%10s, 90-100); putchar(n); putchar(n); printf(%10s, 學(xué)生); printf(%10d, no_59); printf(%10d, no_69); printf(%10d, no_79); printf(%10d, no_89); printf(%10d, no_100); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(按回車(chē)鍵返回); getc
22、har(); getchar();/*-顯示信息子程序-*/void paint() int i;system(cls); printf(%55sn, 華北水利水電大學(xué)學(xué)生成績(jī)管理系統(tǒng)n); printf( 制作者: 信息工程學(xué)院 王漫漫 n); for (i = 0; i 80; i+) putchar(=); putchar(n); printf( 1 輸入信息 2 輸出信息n); printf( 3 按平均分排序 4 按學(xué)號(hào)查找n); printf( 5 插入 6 按學(xué)號(hào)刪除n); printf( 7 按平均分輸出統(tǒng)計(jì)信息 8 保存到文件n); printf( 0 退出n);for (i
23、 = 0; i= 79; i+) putchar(=); putchar(n); printf(%sn, 請(qǐng)輸入各操作對(duì)應(yīng)的序號(hào):);void save(STUDENT *data, int len)/將數(shù)據(jù)保存到文件 int i;FILE *fp;fp=fopen(成績(jī)統(tǒng)計(jì)表.txt,w);fprintf(fp,%8s, 學(xué)號(hào)); fprintf(fp,%8s, 姓名); fprintf(fp,%8s, 性別); fprintf(fp,%8s, 籍貫); fprintf(fp,%8s, 線(xiàn)性代數(shù)); fprintf(fp,%8s, 高等數(shù)學(xué)); fprintf(fp,%10s, 大學(xué)物理);
24、 fprintf(fp,%10s, C語(yǔ)言); fprintf(fp,%12s, 平均分); fprintf(fp,%10sn, 總分); fprintf(fp,=n); putchar(n); for (i = 0; i len; i+) fprintf(fp,%8d, datai.no); fprintf(fp,%8s, );fprintf(fp,%8s, datai.sex);fprintf(fp,%8s, datai.address); fprintf(fp,%8.1lf, datai.xianxingdaishu); fprintf(fp,%8.1lf, data
25、i.math); fprintf(fp,%10.1lf, datai.wuli);fprintf(fp,%10.1lf, datai.c); fprintf(fp,%12.1lf, datai.mark_ave); fprintf(fp,%10.1lfn, datai.mark_tot); fprintf(fp,=n);fclose(fp);printf(文件已保存到成績(jī)統(tǒng)計(jì)表.txt);getchar();getchar();/*-主程序-*/void main() STUDENT dataMAXN; int len = 0; char ctrl_ch; paint(); scanf(%c,
26、 &ctrl_ch); while (ctrl_ch != 0) switch(ctrl_ch) case 1:input(data, &len);break;case 2:output(data, len);break;case 3:sort(data, len);break;case 4:find(data, len);break;case 5:insert(data, &len);break;case 6:delete_item(data, &len);break;case 7:stat(data, len);break;case 8:save(data, len);break;defa
27、ult:if (ctrl_ch != n) printf(%sn, 輸入錯(cuò)誤!);break; if (ctrl_ch != n) paint(); scanf(%c, &ctrl_ch); 7.2調(diào)試與測(cè)試7.2.1算法調(diào)試過(guò)程中出現(xiàn)的問(wèn)題及解決方法(以下為其中一例)-Configuration: Cpp1 - Win32 Debug-Compiling.Cpp1.cppC:Documents and SettingsAdministrator桌面Cpp1.cpp(9) : error C2065: MAX_MAME : undeclared identifierC:Documents and SettingsAdministrator桌面Cpp1.cpp(9) : error C2057: expected constant expressionC:Documents and SettingsAdministrator桌面Cpp1.cpp(10) : error C2229: stru
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 便民市場(chǎng)攤販工作總結(jié)
- 幼兒園中班教案《秋風(fēng)》含反思
- 2024年度貸款購(gòu)買(mǎi)房產(chǎn)糾紛調(diào)解合同3篇
- 內(nèi)科護(hù)理工作總結(jié)
- 房地產(chǎn)業(yè)員工培訓(xùn)方案
- 建筑行業(yè)裝修設(shè)計(jì)經(jīng)驗(yàn)分享
- 委托清收處置協(xié)議
- 2024年度高科技研發(fā)項(xiàng)目單方保密協(xié)議書(shū)3篇
- 托育大班游戲課程設(shè)計(jì)
- 游泳課程設(shè)計(jì)原理
- 【新收入準(zhǔn)則對(duì)建筑企業(yè)會(huì)計(jì)核算的影響:以J公司為例14000字(論文)】
- 2023北京西城五年級(jí)(上)期末英語(yǔ)試卷含答案
- icu護(hù)士年終工作總結(jié)
- 浙教版七年級(jí)下冊(cè)英語(yǔ)單詞表
- 2024年連云港師范高等專(zhuān)科學(xué)校高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 隧道勘察重點(diǎn)難點(diǎn)分析報(bào)告
- 風(fēng)濕免疫疾病的皮膚病變與管理
- 高端康養(yǎng)項(xiàng)目計(jì)劃書(shū)
- 項(xiàng)目立項(xiàng)匯報(bào)模板課件
- 天然氣站場(chǎng)泄漏原因分析與治理
- 江蘇省鹽城市東臺(tái)市2022-2023學(xué)年四年級(jí)上學(xué)期期末語(yǔ)文試題
評(píng)論
0/150
提交評(píng)論