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

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

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

15 積分

下載資源

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

資源描述:

《《C++程序設(shè)計(jì)》課程設(shè)計(jì)說(shuō)明書比賽參賽選手管理系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C++程序設(shè)計(jì)》課程設(shè)計(jì)說(shuō)明書比賽參賽選手管理系統(tǒng)(22頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

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

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

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

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

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

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

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

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

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

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

11、d; class competitor { public: competitor *next; public: string name; //姓名 long num; //編號(hào) float x,y,z; //短跑,跳高,跳遠(yuǎn) 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; //頭接點(diǎn) }; 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<<"編號(hào)已存在,請(qǐng)重新輸入"<

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

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

18、num1<<"的選手的信息:"<name<<" 短跑"<x<<" 跳高"<y<<" 跳遠(yuǎn)"<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<<"要查詢的編號(hào)"<>num1; //查找要查詢的結(jié)點(diǎn) competitor *p1,*p2; p1=comp; while(p1) { if(p1->num==num1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<<"編號(hào)是"<

21、name<<" 短跑:"<x<<" 跳高:"<y<<" 跳遠(yuǎn):"<z<>

22、name1; //查找要查詢的結(jié)點(diǎn) 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<<" 跳遠(yuǎn):"<z<

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

25、; p2->next=p1; //頭結(jié)點(diǎn)交換 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() //按短跑成績(jī)排序 { competitor *p1,*p2; int n; p1=comp; n=1;

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

28、 //頭結(jié)點(diǎn)交換 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() //按跳高成績(jī)排序 { competitor *p1,*p2; int n; p1=comp; n=1; while(p1->next) {n++; p1=p1->next;} cou

30、t<<"共有"<y>p1->next->y) //如果頭結(jié)點(diǎn)大于第二個(gè)的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1; //頭結(jié)點(diǎn)交換 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() //按跳遠(yuǎn)成績(jī)排序 { 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é)點(diǎn)大于第二個(gè)的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1; //頭結(jié)點(diǎn)交換 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<<"請(qǐng)選擇以何種方式排序:"<

36、cout<<"請(qǐng)選擇(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)建選手接點(diǎn) competitor *s; s=comp; s=new competitor(name1,num1,x1,y1,z1); s->next=0; if(comp)

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

41、 //連接 } tfile>>name1>>num1>>x1>>y1>>z1; } tfile.close(); cout<<"\n歡迎使用選手成績(jī)管理系統(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<<"請(qǐng)選擇(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); } 第六章 運(yùn)行結(jié)果 圖6.1 運(yùn)行結(jié)果主界面 第七章 設(shè)計(jì)總結(jié) 通過(guò)一個(gè)學(xué)期的C++學(xué)習(xí),我對(duì)C++語(yǔ)言有了基本認(rèn)識(shí),但是對(duì)有些知識(shí)懂得還不夠透徹。通過(guò)這次為期兩周的課程設(shè)計(jì),我學(xué)到了更多關(guān)于《C++面向?qū)ο蟮某绦蛟O(shè)計(jì)》的內(nèi)容。這個(gè)課題用到了C+

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

展開閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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