C++課程設(shè)計報告---學(xué)生成績管理系統(tǒng)設(shè)計報告.doc

上傳人:good****022 文檔編號:116548452 上傳時間:2022-07-05 格式:DOC 頁數(shù):16 大?。?83.01KB
收藏 版權(quán)申訴 舉報 下載
C++課程設(shè)計報告---學(xué)生成績管理系統(tǒng)設(shè)計報告.doc_第1頁
第1頁 / 共16頁
C++課程設(shè)計報告---學(xué)生成績管理系統(tǒng)設(shè)計報告.doc_第2頁
第2頁 / 共16頁
C++課程設(shè)計報告---學(xué)生成績管理系統(tǒng)設(shè)計報告.doc_第3頁
第3頁 / 共16頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C++課程設(shè)計報告---學(xué)生成績管理系統(tǒng)設(shè)計報告.doc》由會員分享,可在線閱讀,更多相關(guān)《C++課程設(shè)計報告---學(xué)生成績管理系統(tǒng)設(shè)計報告.doc(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 課程設(shè)計報告課程名稱:計算機高級語言(C+)課程設(shè)計課程設(shè)計題目:學(xué)生成績統(tǒng)計管理系統(tǒng)系:數(shù)學(xué)與計算科學(xué)系專 業(yè):信息與計算科學(xué)年級、班:信計0901姓 名:學(xué) 號:指導(dǎo)教師:職 稱:2010年12月學(xué)生成績管理系統(tǒng)設(shè)計報告1系統(tǒng)分析(需求分析)1.1需求分析:能夠?qū)崿F(xiàn)學(xué)生學(xué)號、姓名、各科成績的錄入;能夠?qū)崿F(xiàn)對學(xué)生信息的瀏覽、查找、刪除;能夠?qū)崿F(xiàn)對學(xué)生信息按學(xué)號順序顯示,成績排名; 能夠?qū)Ω骺瞥煽兘y(tǒng)計情況輸出。1.2系統(tǒng)性能要求:系統(tǒng)安全、可靠;功能齊全;操作方便、界面友好;易于維護(hù)和擴充。1.3系統(tǒng)的功能分析:資料維護(hù):系統(tǒng)維護(hù)包括對各學(xué)生姓名、成績、學(xué)號的錄入操作,對數(shù)據(jù)表中的信息進(jìn)行瀏

2、覽。成績查詢:可以對學(xué)生成績進(jìn)行詳細(xì)查詢及各科成績的優(yōu)秀和不及格人數(shù)、各科總平均成績等相關(guān)信息的瀏覽。排序顯示:包括統(tǒng)計學(xué)生排名成績、不及格科目情況、各科總平均成績。2概要設(shè)計2.1程序設(shè)計總體結(jié)構(gòu)學(xué)生成績管理系統(tǒng)錄入刪除查找修改保存排序退出系統(tǒng)2.2系統(tǒng)功能模塊主函數(shù)流程圖學(xué)生成績查詢系統(tǒng)功能主函數(shù)有:成績錄入、查詢修改、排序顯示。退出查找修改保存data,txt開始系統(tǒng)菜單選擇刪除添加清空排序3.功能的實現(xiàn)思路:本程序采用了單文件結(jié)構(gòu),對各部分的功能實現(xiàn)具體如下:3.1 “成績錄入”模塊:3.1.1序號錄入:對各個學(xué)生序號錄入3.1.2數(shù)據(jù)錄入:對學(xué)生科目和成績進(jìn)行錄入3.2 “查詢修改”

3、模塊:3.2.1可以對學(xué)生數(shù)據(jù)進(jìn)行指定查找、修改或查看全部學(xué)生信息。3.2.2選擇輸出單科成績統(tǒng)計情況。3.3 “排序顯示”模塊:3.3.1可自行按學(xué)號順序顯示所有學(xué)生信息。3.3.2可選擇查看學(xué)生總分排名,排序顯示到用戶屏幕。3.4其他功能的實現(xiàn)在這個程序中定義了一個標(biāo)志flag去判斷數(shù)據(jù)是否修改,是否保存。文件的讀寫等功能的具體實現(xiàn)都應(yīng)用了恰當(dāng)?shù)姆绞健?.系統(tǒng)測試程序測試結(jié)果良好,基本實現(xiàn)了所有要求屏幕截圖如下:5. 設(shè)計總結(jié)此次c+課程設(shè)計,在指導(dǎo)教師的精心教導(dǎo)下,我們學(xué)會了如何用C+編寫一個簡單的應(yīng)用程序。首先要對程序的設(shè)計要求有一個比較明確的認(rèn)識,然后系統(tǒng)分析與系統(tǒng)設(shè)計,最后是代碼設(shè)

4、計與調(diào)試。程序?qū)崿F(xiàn)上,設(shè)計了簡單的查詢界面,將各個功能集中出來按照程序編寫原則,便于查詢。根據(jù)C+課程所學(xué)的概念、理論和方法,按照C+程序設(shè)計的基本步驟,設(shè)計出一個適當(dāng)規(guī)模的程序;進(jìn)一步加深對C+語言的理解和掌握。理論聯(lián)系實際,加深和鞏固所學(xué)的理論知識,提高實踐能力和計算機的綜合運用能力。我們編寫程序的過程是辛苦與快樂的,程序的編寫原則很重要,只要我們在編程,就必須不斷改進(jìn),才能更好提高編程能力。6. 參考文獻(xiàn)1、陳雪飛著C+實例入門 中國青年出版社2、譚浩強著C程序設(shè)計(第二版)北京:清華大學(xué)出版社19993、譚浩強著C+程序設(shè)計北京:清華大學(xué)出版社 20047. 學(xué)生成績數(shù)據(jù)管理系統(tǒng)源代碼

5、(附:)#include#include#include#include#include#includeusing namespace std;struct Student int id; /學(xué)號 string name; /姓名 float score3; /分?jǐn)?shù) float sum;/總分;extern const int MAXNUM; /聲明MAXNUM變量void Insert(Student *S); /插入學(xué)生數(shù)據(jù)void Delete(Student *S,int n); /刪除學(xué)號為n的學(xué)生數(shù)據(jù)void Clear(Student *S);/清除所有學(xué)生數(shù)據(jù)int Searc

6、h(Student *S,int n);/查找學(xué)號為n的學(xué)生,返回其索引號(數(shù)組下標(biāo))void Find(Student *S,int n);/查找并顯示學(xué)號為n的學(xué)生的信息void View(Student *S);/查看所有學(xué)生的信息void Load(Student *S);/從文件中載入學(xué)生信息void Save(Student *S);/將學(xué)生信息保存到文件void Revise(Student *S);/修改學(xué)生數(shù)據(jù)void Tongji(Student *S);/查看各科成績統(tǒng)計void Paiming(Student *s);/查看排名void Exit(Student *s)

7、; /安全退出void ShowMenu(); /顯示菜單void ShowTip(); /顯示操作提示void DoMenu(Student *S,char n);/執(zhí)行相應(yīng)菜單項功能int main() Student sMAXNUM; /定義保存學(xué)生數(shù)據(jù)的數(shù)組 Load(s); /載入學(xué)生數(shù)據(jù) char ch=9; ShowMenu(); /顯示菜單 coutch; system(cls); /清除屏幕 ShowMenu(); /顯示菜單 DoMenu(s,ch); /執(zhí)行菜單 ShowTip(); /顯示提示 int num,i; /學(xué)生人數(shù)bool flag=true; /數(shù)據(jù)是否修

8、改過的標(biāo)志const int MAXNUM=100; /學(xué)生人數(shù)允許的最大值void Insert(Student *S) /插入學(xué)生數(shù)據(jù) Student t; cout學(xué)號為整數(shù),輸入0終止錄入endl; while(1) if(num=(MAXNUM-1) cout學(xué)生人數(shù)已達(dá)最大值!endl; return; coutt.id) /輸入的不是數(shù)字,重新提示輸入 cout學(xué)號應(yīng)為整數(shù)!0) /查找此學(xué)號是否已存在 cout此學(xué)號已存在!endl; continue; if(t.id=0) /輸入0結(jié)束錄入 cout錄入結(jié)束。endl; return; cin.sync(); /清空輸入緩沖

9、區(qū) cout請輸入姓名:; getline(cin,t.name); /讀取一行 if(t.name=) /如讀取的為空串,則設(shè)name為null t.name=null; coutt.score0t.score1t.score2; +num; /學(xué)生人數(shù)增1 Snum=t; /將新錄入的學(xué)生加入數(shù)組中 flag=true; /數(shù)據(jù)已改動 void Delete(Student *S) /刪除學(xué)生 if(num=0) cout無學(xué)生!endl; else int n,m=0; char q; coutn; m=Search(S,n); /查找學(xué)號為n的學(xué)生的索引號(在數(shù)組中的下標(biāo)) if(m=

10、0) /Search()返回0表示沒找到 cout找不到要刪除的學(xué)生!; return; /結(jié)束刪除操作 else coutq; if(q=y|q=Y) for(int i=m; inum; i+) /刪除Sm處的學(xué)生 Si=Si+1; -num; /人數(shù)減1 flag=true; /數(shù)據(jù)已改動 cout成功刪除學(xué)號為n的學(xué)生endl; else return; void Clear(Student *S)/清除所有學(xué)生數(shù)據(jù) num=0; /設(shè)置學(xué)生人數(shù)為0int Search(Student *S,int n)/查找學(xué)號為n的學(xué)生,返回其索引號(數(shù)組下標(biāo)) for(int i=1; i=nu

11、m; i+) if(Si.id=n) return i; /返回找到的學(xué)生的索引號(數(shù)組下標(biāo)) return 0; /沒找到,返回0,void Find(Student *S)/查找并顯示學(xué)生的信息 int n; coutn; int i=Search(S,n); /查找學(xué)號為n的學(xué)生,返回其索引號(數(shù)組下標(biāo)) if(i=0) cout查無此人!endl; else coutsetw(6)學(xué)號 setw(10)姓名setw(6)語文 setw(6)數(shù)學(xué)setw(6)英語endl; coutsetw(6)Si.id setw(10)Si.namesetw(6)Si.score0 setw(6)S

12、i.score1setw(6)Si.score2endl; void View(Student *S)/查看所有學(xué)生的信息 char n; Student r; if(num=0) cout無學(xué)生記錄!; else cout共有num條學(xué)生記錄endl; coutsetw(6)學(xué)號 setw(10)姓名setw(6)語文setw(6) 數(shù)學(xué)setw(6)英語setw(6)總分setw(8)平均分endl; for(int j=1; j=num; j+) for(int i=1; iSi+1.id) r=Si; Si=Si+1; Si+1=r; for(int i=1; i=num; i+) S

13、i.sum=Si.score0+Si.score1+Si.score2; float b=Si.sum/3.0; coutsetw(6)Si.id setw(10)Si.namesetw(6) Si.score0setw(6)Si.score1setw(6)Si.score2 setw(6)Si.sumsetw(8)setprecision(3)bendl; coutn; if(n=y|n=Y) Tongji(S); coutendl; Paiming(S); else return; flag=true; void Load(Student *S)/從文件中載入學(xué)生信息 Student t;

14、 ifstream infile(data.txt); /創(chuàng)建文件輸入流,文件位于項目文件夾中 if(!infile) cerrSi.id; i+) /從文件中讀取保存的學(xué)生數(shù)據(jù) infileSi.nameSi.score0Si.score1Si.score2; num+; flag=false; /設(shè)置數(shù)據(jù)沒改動 infile.close(); /關(guān)閉文件void Save(Student *S)/將學(xué)生信息保存到文件 ofstream outfile(data.txt); /創(chuàng)建文件輸出流 if(!outfile) cerr錯誤:數(shù)據(jù)文件不能打開!n; else for(int i=1;

15、i=num; i+) /將學(xué)生數(shù)據(jù)寫入文件 outfileSi.id Si.name Si.score0 Si.score1 Si.score2endl; flag=false; /設(shè)置數(shù)據(jù)沒改動 cout保存成功!endl; void Exit(Student *S) /安全退出 char s=y; if(flag) /判斷數(shù)據(jù)是否修改 couts; if(s=y|s=Y) Save(S); /保存數(shù)據(jù) cout已安全退出,; system(pause); /程序暫停,按任意鍵繼續(xù) exit(0); /結(jié)束程序void ShowMenu() /顯示菜單 cout|-|endl; cout|

16、學(xué)生信息管理系統(tǒng) |endl; cout|- -|endl; cout| 1.清空:清除所有學(xué)生數(shù)據(jù) |endl; cout| 2.添加:插入一條學(xué)生數(shù)據(jù) |endl; cout| 3.刪除:刪除指定學(xué)生數(shù)據(jù) |endl; cout| 4.查找:查找指定學(xué)生數(shù)據(jù) |endl; cout| 5.顯示:顯示所有學(xué)生數(shù)據(jù) |endl; cout| 6.修改:修改所有學(xué)生數(shù)據(jù) |endl; cout| 7.保存:保存所有學(xué)生數(shù)據(jù) |endl; cout| 0.退出:安全的退出本系統(tǒng) |endl; cout|-|endlendl;void ShowTip() /顯示操作提示 coutendl; cout

17、-操作完成-endl; cout-選擇06繼續(xù)-endl; cout請選擇:;void DoMenu(Student *S,char n) /執(zhí)行相應(yīng)菜單項功能 switch(n) case 1: Clear(S); break; case 2: Insert(S); break; case 4: Find(S); break; case 3: Delete(S); break; case 5: View(S); break; case 6: Revise(S); break; case 7: Save(S); break; case 0: Exit(S); break; default: c

18、out輸入錯誤!; void Revise(Student *S)/修改學(xué)生信息 int n,a; char m; string name; coutn; int i=Search(S,n); if(i=0) cout查無此人!endl; else coutsetw(6)學(xué)號 setw(10)姓名setw(6)語文 setw(6)數(shù)學(xué)setw(6)英語endl; coutsetw(6)Si.id setw(10)Si.namesetw(6) Si.score0setw(6)Si.score1setw(6)Si.score2endl; coutm; switch(m) case 1: coutn

19、ame; Si.name=name; break; case 2: couta; Si.score0=a; break; case 3: couta; Si.score1=a; break; case 4: couta; Si.score2=a; break; default: cout輸入錯誤!請再輸入編號:; flag=true; void Tongji(Student *S)/查看各科成績統(tǒng)計 system(cls); ShowMenu(); coutsetw(14)語文setw(6)數(shù)學(xué)setw(6)英語endl; float m=0,n=0,l=0; int a=0,b=0,c=0,

20、e=0,f=0,g=0; for(int i=1; i=90) a+; else if(Si.score060) e+; if(Si.score1=90) b+; else if(Si.score160) f+; if(Si.score2=90) c+; else if(Si.score260) g+; coutsetw(8)優(yōu)秀人數(shù)setw(6)asetw(6)bsetw(6)cendl;coutsetw(8)及格人數(shù)setw(6)a+esetw(6)b+fsetw(6)c+gendl;coutsetw(8)不及格setw(6)num-a-esetw(6)num-b-fsetw(6)num-

21、c-gendl; coutsetw(8)平均成績setw(6)msetw(6)nsetw(6)lendl;void Paiming(Student *S)/查看排名 Student r; for(int j=1; j=num; j+) for(int i=1; i=num-j; i+) if(Si.sumSi+1.sum) r=Si; Si=Si+1; Si+1=r; coutsetw(6)學(xué)號 setw(10)姓名setw(6) 總分setw(8)平均分setw(6)名次endl; for(int i=1; i=num; i+) Si.sum=Si.score0+Si.score1+Si.score2; float b=Si.sum/3.0; coutsetw(6)Si.id setw(10)Si.namesetw(6) Si.sumsetw(8)setprecision(3)bsetw(6)iendl; 16

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!