《C++程序設計》課程設計說明書比賽參賽選手管理系統(tǒng)

上傳人:仙*** 文檔編號:28316243 上傳時間:2021-08-25 格式:DOC 頁數(shù):22 大小:137.50KB
收藏 版權(quán)申訴 舉報 下載
《C++程序設計》課程設計說明書比賽參賽選手管理系統(tǒng)_第1頁
第1頁 / 共22頁
《C++程序設計》課程設計說明書比賽參賽選手管理系統(tǒng)_第2頁
第2頁 / 共22頁
《C++程序設計》課程設計說明書比賽參賽選手管理系統(tǒng)_第3頁
第3頁 / 共22頁

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

15 積分

下載資源

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

資源描述:

《《C++程序設計》課程設計說明書比賽參賽選手管理系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《《C++程序設計》課程設計說明書比賽參賽選手管理系統(tǒng)(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、內(nèi)蒙古科技大學C++課程設計說明書 《C++程序設計》課程設計說明書 題 目:比賽參賽選手管理系統(tǒng) 學生姓名: 學 號: 專 業(yè):電子信息工程 班 級:信息09—2 指導老師: 內(nèi)蒙古科技大學課程設計任務書 課程名稱 C++語言課程設計 設計題目 比賽參賽選手管理系統(tǒng) 指導教師 時間 2011.6.13~2011.6.24 一

2、、教學要求 1. 鞏固和加深學生對C++語言課程的基本知識的理解和掌握 2. 掌握C++語言編程和程序調(diào)試的基本技能 3. 利用C++語言進行基本的軟件設計 4. 掌握書寫程序設計說明文檔的能力 5. 提高運用C++語言解決實際問題的能力 二、設計資料及參數(shù) 每個學生在教師提供的課程設計題目中任意選擇一題,獨立完成,可根據(jù)設計內(nèi)容適當修改題目名稱。 **比賽參賽選手管理系統(tǒng) 定義人員基類,包含選手的基本數(shù)據(jù)和基本屬性; 要求至少設計以下各功能模塊: v 輸入記錄 v 查詢功能 v 排序 v 顯示信息 三、設計要求及成果 1. 分析課程設計題目的要求 2. 寫出

3、詳細設計說明 3. 編寫程序代碼,調(diào)試程序使其能正確運行 4. 設計完成的軟件要便于操作和使用 4. 設計完成后提交課程設計報告 四、進度安排 資料查閱與討論(1天) 系統(tǒng)分析(2天) 系統(tǒng)的開發(fā)與測試(5天) 編寫課程設計說明書和驗收(2天) 五、評分標準 1. 根據(jù)平時上機考勤、表現(xiàn)和進度,教師將每天點名和檢查 2. 根據(jù)課程設計完成情況,必須有可運行的軟件。 3. 根據(jù)課程設計報告的質(zhì)量,如有雷同,則所有雷同的所有人均判為不及格。 六、建議參考資料 1.《C++面向?qū)ο蟪绦蛟O計》,吳敏、楊國林 主編,內(nèi)蒙古大學出版社 2.《C++語言程序設計(第三版)》,

4、鄭莉,清華大學出版社 比賽參賽選手管理系統(tǒng) 摘要 C++語言是目前公認的熱門編程語言之一。C++是在C語言基礎(chǔ)上發(fā)展演變而來的一種面向?qū)ο蟪绦蛟O計語言。它既支持面向過程的程序設計方法,也支持面向?qū)ο蟮某绦蛟O計方法。當今,C++語言在社會的各個領(lǐng)域發(fā)揮著越來越重要的作用。 參賽選手系統(tǒng)的設計正是C++用于生活中的一項應用。參賽選手管理系統(tǒng)能方便用戶快捷處理選手的信息,得到想要的數(shù)據(jù)并能將選手的信息以文檔方式保存。此系統(tǒng)的主要管理的信息有:選手的姓名,編號和三項賽事的成績。系統(tǒng)的主要功能有選手信息的添加、修改、顯示,能對選手成績按編號或成績進行排序,可以根據(jù)用戶的要求按姓名,編號查

5、詢選手的信息,保存信息到文件以及從文件中讀取信息等功能。 目錄 摘要 2 第一章 問題描述 2 第二章 問題分析 2 第三章 數(shù)據(jù)模型 2 第四章 設計流程圖 2 第五章 程序代碼 2 第六章 運行結(jié)果 2 第七章 設計總結(jié) 2 參考文獻 2 第一章 問題描述 建立一套比賽參賽選手管理系統(tǒng)。定義人員基類(competitor),包含選手的基本數(shù)據(jù)和基本屬性,實現(xiàn)以下各功能: v 輸入記錄:選手信息數(shù)據(jù)

6、要以文件的形式保存,能實現(xiàn)選手信息數(shù)據(jù)的維護。此模塊包括子模塊有:增加選手信息、修改選手信息。 v 查詢功能:查詢時可實現(xiàn)按姓名查詢、按編號查詢、成績查詢 v 排序:能對用戶指定的任意項目名,按成績由低到高排列選手數(shù)據(jù)并顯示排序結(jié)果。 v 顯示信息:顯示選手的編號、項目、成績等信息。 設計要求及成果 1. 分析課程設計題目的要求 2. 寫出詳細設計說明 3. 編寫程序代碼,調(diào)試程序使其能正確運行 4. 設計完成的軟件要便于操作和使用 第二章 問題分析 方案說明:參賽選手管理系統(tǒng)是用面向?qū)ο蟮姆椒ㄔO計,由于數(shù)組的存放是連續(xù)的,

7、而單鏈表是非連續(xù)存放的,是動態(tài)分配內(nèi)存空間,因此此系統(tǒng)采用單鏈表來完成。各個功能模塊的實現(xiàn)主要轉(zhuǎn)變到對單鏈表的遍歷,添加和刪除結(jié)點。 系統(tǒng)功能模塊的劃分:在主界面中包括“增加選手 修改選手 查詢選手信息 排序 保存信息 讀取信息 退出”等全部的功能,之所以設計這么一個主界面,一是因為能使用戶對程序操作的流程更加清楚簡明,二是保證了用戶同時只能對一個文件進行操作的系統(tǒng)要求,保證了系統(tǒng)不會發(fā)生打開文件紊亂或者出現(xiàn)致命錯誤。 功能模板的劃分 顯示菜單功能模板 1……增加選手功能 2……修改選手功能 3……查詢選手信息 4……排序功能 5……保存信息 6……讀取信息 7……退出

8、 第三章 數(shù)據(jù)模型 類的設計 定義參賽選手competitor類,包含成員變量:姓名name,編號num,短跑、跳高、跳遠成績x,y,z。 class competitor //選手 public: competitor *next; public: string name; //姓名 long num; //編號 int x,y,z; //短跑,跳高,跳遠 成員函數(shù): void sadd();

9、 //添加 void samend(); //修改 void ssearch(); //查詢 void staxis(); //排序 void ssave(); //保存 void sload(); //讀取 void pxh(); void psx(); void pyw(); void pyy(); 第四章 設計流程圖 開始

10、 讀入文件中的數(shù)據(jù)并輸出菜單及提示信息 輸入選擇 選擇操作 子程序 保存并退出 圖4.1 流程圖 第五章 程序代碼 #include #include #include #include using namespace st

11、d; class competitor { public: competitor *next; public: string name; //姓名 long num; //編號 float x,y,z; //短跑,跳高,跳遠 void play(){cout<

12、snum,float sx,float sy,float sz) { name=sname; num=snum; x=sx; y=sy; z=sz; } }; class cla { public: cla() //構(gòu)造函數(shù) { comp=0; sload(); } ~cla() //析構(gòu)函數(shù) { competitor *p; p=comp; while(p) { p=p->

13、next; delete comp; comp=p; } comp=0; } void sadd(); //添加 void samend(); //修改 void ssearch(); //查詢 void staxis(); //排序 void ssave(); //保存 void sload();

14、 //讀取 void pxh(); void psx(); void pyw(); void pyy(); private: competitor *comp; //頭接點 }; void cla::sadd() //添加 { competitor *q; string name1; long num1; float x1,y1,z1; system("cls"); cout<<"\n **增加的選手*

15、* \n"<>name1>>num1>>x1>>y1>>z1; q=new competitor(name1,num1,x1,y1,z1); q->next=0; if(comp) { competitor *t; t=comp; if(t->num==num1) { cout<<"編號已存在,請重新輸入"<

16、 } while(t->next) { if(t->num==num1) { cout<<"編號已存在,請重新輸入"<next; } t->next=q; } else { comp=q; } cout<<"輸入完畢"<

17、num1; cout<<"\n** 修改選手信息 **\n"; cout<<"輸入要修改選手的編號"; cin>>num1; //查找要修改的結(jié)點 competitor *p1,*p2; p1=comp; while(p1) { if(p1->num==num1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<<"編號是"<<

18、num1<<"的選手的信息:"<name<<" 短跑"<x<<" 跳高"<y<<" 跳遠"<z<>p1->name>>p1->x>>p1->y>>p1->z; cout<<"修改成功"<

19、<"未找到!\n"; } void cla::ssearch() //查詢 { system("cls"); cout<<"\n** 查詢選手信息 **\n"<>c; switch (c) { case 1: {

20、long num1; cout<<"要查詢的編號"<>num1; //查找要查詢的結(jié)點 competitor *p1,*p2; p1=comp; while(p1) { if(p1->num==num1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<<"編號是"<

21、name<<" 短跑:"<x<<" 跳高:"<y<<" 跳遠:"<z<>

22、name1; //查找要查詢的結(jié)點 competitor *p1,*p2; p1=comp; while(p1) { if(p1->name==name1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<num<

23、<" 短跑:"<x<<" C++:"<y<<" 跳遠:"<z<

24、 *p1,*p2; int n; p1=comp; n=1; while(p1->next) {n++; p1=p1->next;} cout<<"共有"<num>p1->next->num) // 如果頭結(jié)點大于第二個的 { p2=p1->next; p1->next=p1->next->next

25、; p2->next=p1; //頭結(jié)點交換 comp=p2; } p1=comp; while(p1->next->next) //中間的交換 { p2=p1; p1=p1->next; if(p1->num>p1->next->num) { p2->next=p1->next; p1->next=p1->next->next; p2

26、->next->next=p1; p1=p2->next; //交換 } } } p1=comp; do { p1->play(); p1=p1->next; }while(p1); } void cla::psx() //按短跑成績排序 { competitor *p1,*p2; int n; p1=comp; n=1;

27、 while(p1->next) {n++; p1=p1->next;} cout<<"共有"<x>p1->next->x) // 如果頭結(jié)點大于第二個的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1;

28、 //頭結(jié)點交換 comp=p2; } p1=comp; while(p1->next->next) //中間的交換 { p2=p1; p1=p1->next; if(p1->x>p1->next->x) { p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next;

29、 //交換 } } } p1=comp; do { p1->play(); p1=p1->next; }while(p1); } void cla::pyw() //按跳高成績排序 { competitor *p1,*p2; int n; p1=comp; n=1; while(p1->next) {n++; p1=p1->next;} cou

30、t<<"共有"<y>p1->next->y) //如果頭結(jié)點大于第二個的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1; //頭結(jié)點交換 comp=p2; } p1

31、=comp; while(p1->next->next) //中間的交換 { p2=p1; p1=p1->next; if(p1->y>p1->next->y) { p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; //交換 } } } p1

32、=comp; do { p1->play(); p1=p1->next; }while(p1); } void cla::pyy() //按跳遠成績排序 { competitor *p1,*p2; int n; p1=comp; n=1; while(p1->next) {n++; p1=p1->next;} cout<<"共有"<

33、 for(i=1;iz>p1->next->z) // 如果頭結(jié)點大于第二個的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1; //頭結(jié)點交換 comp=p2; } p1=comp; while(p1->next->next)

34、 //中間的交換 { p2=p1; p1=p1->next; if(p1->z>p1->next->z) { p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; //交換 } } } p1=comp; do { p1->play(); p1=p1->ne

35、xt; }while(p1); } void cla::staxis() //排序 { system("cls"); char c; cout<<"請選擇以何種方式排序:"<

36、cout<<"請選擇(1-5)"<>c; switch (c) { case 1:pxh(); break; case 2:psx(); break; case 3:pyw(); break; case 4:pyy(); break; case 5:return; } } void cla::ssave() //保存到文件 { system("cls"); char c; cout<<"\n保存選手信息

37、(將覆蓋原文件),是否繼續(xù)?[Y/N]:"; cin>>c; if(toupper(c)!=Y) return; ofstream tfile("date.txt",ios_base::binary); competitor *p=comp; while(p) // 寫入文件 { tfile<name<<"\t"<num<<"\t"<x<<"\t"<y<<"\t"<z; tfile<

38、next; } tfile.close(); cout<<"保存完畢..."<next; delete p; p=comp; } If stream tfile("date.txt",ios_base::binary); string name1; lo

39、ng num1; float x1,y1,z1; tfile>>name1>>num1>>x1>>y1>>z1; while(tfile.good()) { //創(chuàng)建選手接點 competitor *s; s=comp; s=new competitor(name1,num1,x1,y1,z1); s->next=0; if(comp)

40、 //若已經(jīng)存在結(jié)點 { competitor *p2; p2=comp; while(p2->next) //查找尾結(jié)點 { p2=p2->next; } p2->next=s; //連接 } else //若不存在結(jié)點(表空) { comp=s;

41、 //連接 } tfile>>name1>>num1>>x1>>y1>>z1; } tfile.close(); cout<<"\n歡迎使用選手成績管理系統(tǒng)\n"; } void main() { char c; cla a; do { cout<<"*************************************\n"; cout<<" 1……增加選手 \n"; cout<<" 2……修改選手 \n"; cou

42、t<<" 3……查詢選手信息 \n"; cout<<" 4……排序 \n"; cout<<" 5……保存信息 \n"; cout<<" 6……讀取信息 \n"; cout<<" 7……退出 \n"; cout<<"*************************************\n"; cout<<"請選擇(1-7):"; cin>>c; switch(c) { case 1: a.sadd();break; case 2: a.samend();break; case 3: a.sse

43、arch();break; case 4: a.staxis();break; case 5: a.ssave();break; case 6: a.sload();break; } }while(c!=7); } 第六章 運行結(jié)果 圖6.1 運行結(jié)果主界面 第七章 設計總結(jié) 通過一個學期的C++學習,我對C++語言有了基本認識,但是對有些知識懂得還不夠透徹。通過這次為期兩周的課程設計,我學到了更多關(guān)于《C++面向?qū)ο蟮某绦蛟O計》的內(nèi)容。這個課題用到了C+

44、+語言程序設計的知識,通過這次課程設計,使我對C++設計有了更深的了解,對課本上的知識有了進一步的掌握,同時也使我對自己的專業(yè)知識有進一步的鞏固加深。在寫程序時,要注意類與對象、構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)等相結(jié)合,尤其是在學好程序后,要運行,有不足之處及時完善。把理論知識與實踐相結(jié)合,才能將所學知識運用的恰到好處。 參考文獻 [1]吳敏,楊國林. C++面向?qū)ο蟪绦蛟O計[M].呼和浩特:內(nèi)蒙古大學出版社.2006. [2]鄭莉.C++語言程序設計[M]. 北京:清華大學出版社.2003. [3]劉開軍.C++程序設計[M].北京:清華大學出版社.2004. 21

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(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ǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲