




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、學(xué)生成績管理系統(tǒng)1.題目要求設(shè)計“學(xué)生成績管理系統(tǒng)”,實現(xiàn)學(xué)生信息的錄入,顯示,查找,添加,保存以及成績排序等功能模塊。要求功能選擇用菜單實現(xiàn),數(shù)據(jù)輸入和結(jié)果輸出要求用文件存放。原始數(shù)據(jù)文件格式(具體數(shù)據(jù)自行編寫):學(xué)號 姓名 英語 C語言 高等數(shù)學(xué) 平均成績 1 張三 75 85 80 80 2 李四 【提示】(1)需求分析由于要錄入,讀取,保存學(xué)生成績信息,因而要實現(xiàn)文件的輸入和輸出功能;要求用戶可以查詢各個學(xué)生的成績,并且可以添加學(xué)生成績信息等,因而要提供查找和添加功能;另外,還應(yīng)該提供鍵盤式選擇菜單以實現(xiàn)功能選擇。(2)總體設(shè)計可以將這個系統(tǒng)的設(shè)計分為數(shù)據(jù)輸入,數(shù)據(jù)顯示,數(shù)據(jù)查找,數(shù)據(jù)
2、插入,成績排序等主要模塊。(3)數(shù)據(jù)結(jié)構(gòu)把學(xué)生的學(xué)號,姓名,科目成績,平時成績作為結(jié)構(gòu)體成員,存放若干個學(xué)生信息用結(jié)構(gòu)體數(shù)組。2.需求分析根據(jù)題目要求,由于學(xué)生數(shù)據(jù)要以文本方式存放在文件中,所以要實現(xiàn)文件的輸入和輸出功能;要求用戶可以查詢各個學(xué)生的成績,并且可以添加學(xué)生成績信息等,因而要提供查找和添加功能;另外,還應(yīng)該提供鍵盤式選擇菜單以實現(xiàn)功能選擇。3.總體設(shè)計根據(jù)上面的需求分析,可以將該系統(tǒng)的設(shè)計分為六大模塊,即錄入,讀取,保存,增加,查找,退出,如圖A1所示。其中,主要功能是統(tǒng)計和核對選票兩個模塊。學(xué)生成績管理系統(tǒng)錄入添加排序退出顯示查找保存圖A1系統(tǒng)功能模塊圖數(shù)據(jù)文件的讀入讀出隱含在主
3、函數(shù)中。4.詳細設(shè)計1.主函數(shù)主函數(shù)一般設(shè)計得比較簡潔,只提供輸入,功能處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊采用菜單方式選擇。另外,菜單部分也可以寫成函數(shù)。具體流程如圖A2所示。開始顯示一系列功能選項輸入sele,判斷sele是否是16根據(jù)sele的值調(diào)用各功能模塊函數(shù)結(jié)束圖A2主函數(shù)流程圖【程序】main() /*主函數(shù)*/int sele; / *變量sele使程序進入while循環(huán)*/struct student sM;Re_file(); /讀取學(xué)生信息sele=1;while(sele) system("cls");printf("nn")
4、;printf(" *學(xué)生成績管理系統(tǒng)*n");printf(" *n");printf(" * 1:錄入添加 2:顯示 * n");printf(" * 3:查找 4:保存 * n");printf(" * 5:排序 6:退出 * n");printf("n");scanf("%d",&sele); /*sele保存選擇菜單數(shù)字*/switch (sele) /選擇功能 case 1: append();display() ;break; cas
5、e 2: display();break;case 3: find() ;break;case 4: Wr_file() ;break; case 5: sort();display() ;break; case 6: Quit();sele=0;break;printf("nn按任意鍵繼續(xù)n");getch();Wr_file(); /寫文件2.各功能模塊設(shè)計(1)數(shù)據(jù)讀入模塊【數(shù)據(jù)結(jié)構(gòu)】學(xué)生信息保存在data.txt文件中。數(shù)據(jù)包括整數(shù),字符等?!痉治觥繉W(xué)生信息保存在data.txt文件中。使用結(jié)構(gòu)體數(shù)組來存放學(xué)生信息。把每一個學(xué)生的信息作為一個整體。讀取文件和計算平均
6、分過程流程圖分別如圖A3,A4所示。定義文件指針fp及循環(huán)計數(shù)器N打開文件讀到文件末尾了嗎?關(guān)閉調(diào)用fscanf()讀入學(xué)生信息并存入student結(jié)構(gòu)體數(shù)組,N自增。YNA3 讀取文件流程圖從每個結(jié)構(gòu)體數(shù)組中讀取3門成績分別計算平均分將結(jié)果存入結(jié)構(gòu)體中A-4 計算平均分流程圖struct student int num; /存放學(xué)生學(xué)號char name10; /用來存放學(xué)生姓名int English; /存放學(xué)生成績int C;int Math;int average;sM;/sM中的每一個數(shù)組元素對應(yīng)一個學(xué)生信息。注意:sM中M為最大學(xué)生人數(shù),程序采用宏定義的方式,可以隨時在源程序宏定義
7、中修改。本程序宏定義為#defined M 50?!境绦颉?*數(shù)據(jù)讀入模塊*/void Re_file() int average; int N =0;FILE *fp;fp=fopen("D:data.txt","r");while (fscanf(fp,"%d %s %d %d %d ",&sN.num,&sN.name,&sN.English,&sN.C,&sN.Math)!=EOF) /將學(xué)生數(shù)據(jù)保存在結(jié)構(gòu)體中。N+; /記錄學(xué)生個數(shù)A=N; /將學(xué)生數(shù)據(jù)傳遞到全局變量A中。for(N=
8、0;N<A;N+) sN.average=(sN.English+sN.C+sN.Math)/3; /計算學(xué)生的平均分fclose(fp);【分析】為了簡化過程,成績數(shù)據(jù)均用整數(shù)表示。(2)錄入添加模塊【需求分析】該模塊的功能是增加新的學(xué)生信息記錄,用戶從鍵盤輸入并逐條寫到原來的輸入文件中。在此采用的是增加,而不是覆蓋?!境绦颉?*錄入添加模塊*/void append() int n,i; printf("請輸入增加的學(xué)生數(shù)量:"); scanf("%d",&n); A+=n; printf("現(xiàn)在請輸入相關(guān)信息:n"
9、); for(i=0;i<n;i+) /增加n個學(xué)生記錄 printf("學(xué)號:"); scanf("%d",&sA-n+i.num);printf("姓名:"); scanf("%s",&sA-n+);printf("英語:"); scanf("%d",&sA-n+i.English); printf("C語言:"); scanf("%d",&sA-n+i.C); printf(&qu
10、ot;數(shù)學(xué):"); scanf("%d",&sA-n+i.Math); sA-n+i.average=(sA-n+i.English+sA-n+i.C+sA-n+i.Math)/3; /計算增加學(xué)生的平均分并保存在結(jié)構(gòu)體數(shù)組中。 (3)顯示模塊【需求分析】該模塊的功能是顯示所有學(xué)生的信息記錄?!境绦颉?*顯示模塊*/void display() int i; system("cls"); printf(" 學(xué)號 姓名 英語 C語言 數(shù)學(xué) 平均成績nn"); for(i=0;i<A;i+) printf(&quo
11、t;%5d %6s %4d %5d %6d %6dn",si.num,,si.English,si.C,si.Math,si.average); (4)查找模塊【需求分析】該模塊的功能是根據(jù)輸入的姓名或?qū)W號尋找相應(yīng)的信息。流程圖如圖A5.。顯示一系列選項開始輸入k,判斷是否屬于12輸出錯誤信息結(jié)束根據(jù)k值選擇姓名或?qū)W號進行查找顯示結(jié)果YNA-5 查找模塊流程圖【程序】/*查找模塊*/void find() int k,i,a,b;char m20;printf("查找模塊開始.nn");printf(" *n");printf(&
12、quot; * 1.姓名 2.學(xué)號 *nn"); /提供選擇菜單printf("請輸入查詢選項:");scanf("%d",&k); /記錄用戶輸入選項if (k=1) /判斷選項printf("請輸入姓名:");scanf("%s",&m);for (i=0;i<A;i+)if(strcmp(m,)=0) /逐條對比姓名字符 a=i; /記錄學(xué)生數(shù)組下標(biāo)else if(k=2) /判斷選項printf("請輸入學(xué)號:");scanf("%
13、d",&b);for(i=0;i<A;i+)if(b=si.num) /對比學(xué)生學(xué)號a=i;if(a=0)printf("沒有找到!n");printf(" 學(xué)號 姓名 英語 C語言 數(shù)學(xué) 平均成績n");printf("%5d %6s %4d %5d %6d %6dn",sa.num,,sa.English,sa.C,sa.Math,sa.average); (5)保存模塊【需求分析】將修改添加后的學(xué)生信息從結(jié)構(gòu)體寫入到data1.txt文件中。流程圖如圖A6所示。從結(jié)構(gòu)體數(shù)組中讀取數(shù)據(jù)寫入da
14、ta.txt文件A-6 保存模塊流程圖【程序】/*保存模塊*/void Wr_file()int i; FILE *fp;fp=fopen("D:data1.txt","w");for(i=0;i<A;i+) fprintf(fp,"n%d %s %d %d %d ",si.num,,si.English,si.C,si.Math);fclose(fp);(6)排序模塊【需求分析】該模塊的功能是將學(xué)生成績按照平均分按降序排序排序。這里使用選擇排序法。【程序】/*排序模塊*/void sort() int i,j; printf("*以下按照平均分由高到低排序*"); for(i=0;i<A-1;i+)for(j=i+1;j<A;j+)if (si.average<sj.average)sM=si;si=sj;sj=sM;puts("nn"); (7)退出模塊【分析】退出程序?!境绦颉?*退出模塊*/void Quit ()exit(0);5.上機操作1.數(shù)據(jù)源學(xué)生信息從data.txt中獲得。每行儲存一個學(xué)生成績信息包括學(xué)號,姓名,英語成績,C語言成績和數(shù)學(xué)成績,例如:001 小明 45 28 64 00
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國電腦清洗劑行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展報告
- 2025至2030中國電拋光鋼行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國電子游戲廣告行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國甲基丙烯酸二甲氨基乙酯行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國珠寶首飾行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國現(xiàn)場和非現(xiàn)場自動取款機行業(yè)市場占有率及投資前景評估規(guī)劃報告
- 2025至2030中國特種紙行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 2025至2030中國特殊砂漿行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 填充墻砌體培訓(xùn)課件
- 教育科技的研發(fā)與應(yīng)用評價研究
- HPE 3PAR8400、HPE 3000B SAN Switch安裝及維護手冊
- 酸堿平衡判斷血氣分析六步法新版培訓(xùn)課件
- 房建施工流程示意圖自己編制
- (學(xué)霸自主提優(yōu)拔尖)蘇教版四年級數(shù)學(xué)上冊第一單元《升和毫升》(知識點、??碱}、易錯題、拓展題)名師詳解與訓(xùn)練
- (完整版)GJB150A三防試驗(霉菌鹽霧濕熱)
- 汽輪機廠工業(yè)驅(qū)動技術(shù)介紹
- DB13T 5274-2020 醫(yī)療機構(gòu)安全生產(chǎn)風(fēng)險管控與隱患排查治理規(guī)范
- 新概念英語第一冊單詞匯總打印版已排版
- 混凝土施工倉面設(shè)計
- 電話號碼中的數(shù)學(xué)問題
- 環(huán)氧樹脂地坪漆施工規(guī)范
評論
0/150
提交評論