《C++程序設(shè)計(jì)》課程設(shè)計(jì)說明書比賽參賽選手管理系統(tǒng)_第1頁
《C++程序設(shè)計(jì)》課程設(shè)計(jì)說明書比賽參賽選手管理系統(tǒng)_第2頁
《C++程序設(shè)計(jì)》課程設(shè)計(jì)說明書比賽參賽選手管理系統(tǒng)_第3頁
《C++程序設(shè)計(jì)》課程設(shè)計(jì)說明書比賽參賽選手管理系統(tǒng)_第4頁
《C++程序設(shè)計(jì)》課程設(shè)計(jì)說明書比賽參賽選手管理系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、內(nèi)蒙古科技大學(xué)c+課程設(shè)計(jì)說明書 c+程序設(shè)計(jì)課程設(shè)計(jì)說明書題 目:比賽參賽選手管理系統(tǒng) 學(xué)生姓名: 學(xué) 號: 專 業(yè):電子信息工程 班 級:信息092 指導(dǎo)老師: 內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書課程名稱c+語言課程設(shè)計(jì)設(shè)計(jì)題目比賽參賽選手管理系統(tǒng)指導(dǎo)教師時間2011.6.132011.6.24一、教學(xué)要求1. 鞏固和加深學(xué)生對c+語言課程的基本知識的理解和掌握2. 掌握c+語言編程和程序調(diào)試的基本技能3. 利用c+語言進(jìn)行基本的軟件設(shè)計(jì)4. 掌握書寫程序設(shè)計(jì)說明文檔的能力5. 提高運(yùn)用c+語言解決實(shí)際問題的能力二、設(shè)計(jì)資料及參數(shù)每個學(xué)生在教師提供的課程設(shè)計(jì)題目中任意選擇一題,獨(dú)立完成,可根據(jù)設(shè)

2、計(jì)內(nèi)容適當(dāng)修改題目名稱。*比賽參賽選手管理系統(tǒng)定義人員基類,包含選手的基本數(shù)據(jù)和基本屬性;要求至少設(shè)計(jì)以下各功能模塊:v 輸入記錄v 查詢功能v 排序v 顯示信息三、設(shè)計(jì)要求及成果1. 分析課程設(shè)計(jì)題目的要求2. 寫出詳細(xì)設(shè)計(jì)說明3. 編寫程序代碼,調(diào)試程序使其能正確運(yùn)行4. 設(shè)計(jì)完成的軟件要便于操作和使用4. 設(shè)計(jì)完成后提交課程設(shè)計(jì)報告四、進(jìn)度安排資料查閱與討論(1天)系統(tǒng)分析(2天)系統(tǒng)的開發(fā)與測試(5天)編寫課程設(shè)計(jì)說明書和驗(yàn)收(2天)五、評分標(biāo)準(zhǔn)1. 根據(jù)平時上機(jī)考勤、表現(xiàn)和進(jìn)度,教師將每天點(diǎn)名和檢查2. 根據(jù)課程設(shè)計(jì)完成情況,必須有可運(yùn)行的軟件。3. 根據(jù)課程設(shè)計(jì)報告的質(zhì)量,如有雷同

3、,則所有雷同的所有人均判為不及格。六、建議參考資料1c+面向?qū)ο蟪绦蛟O(shè)計(jì),吳敏、楊國林 主編,內(nèi)蒙古大學(xué)出版社2c+語言程序設(shè)計(jì)(第三版),鄭莉,清華大學(xué)出版社比賽參賽選手管理系統(tǒng)摘要c+語言是目前公認(rèn)的熱門編程語言之一。c+是在c語言基礎(chǔ)上發(fā)展演變而來的一種面向?qū)ο蟪绦蛟O(shè)計(jì)語言。它既支持面向過程的程序設(shè)計(jì)方法,也支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。當(dāng)今,c+語言在社會的各個領(lǐng)域發(fā)揮著越來越重要的作用。參賽選手系統(tǒng)的設(shè)計(jì)正是c+用于生活中的一項(xiàng)應(yīng)用。參賽選手管理系統(tǒng)能方便用戶快捷處理選手的信息,得到想要的數(shù)據(jù)并能將選手的信息以文檔方式保存。此系統(tǒng)的主要管理的信息有:選手的姓名,編號和三項(xiàng)賽事的成績。系

4、統(tǒng)的主要功能有選手信息的添加、修改、顯示,能對選手成績按編號或成績進(jìn)行排序,可以根據(jù)用戶的要求按姓名,編號查詢選手的信息,保存信息到文件以及從文件中讀取信息等功能。目錄摘要2第一章 問題描述2第二章 問題分析2第三章 數(shù)據(jù)模型2第四章 設(shè)計(jì)流程圖2第五章 程序代碼2第六章 運(yùn)行結(jié)果2第七章 設(shè)計(jì)總結(jié)2參考文獻(xiàn)2第一章 問題描述建立一套比賽參賽選手管理系統(tǒng)。定義人員基類(competitor),包含選手的基本數(shù)據(jù)和基本屬性,實(shí)現(xiàn)以下各功能:v 輸入記錄:選手信息數(shù)據(jù)要以文件的形式保存,能實(shí)現(xiàn)選手信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加選手信息、修改選手信息。v 查詢功能:查詢時可實(shí)現(xiàn)按姓名查詢、

5、按編號查詢、成績查詢v 排序:能對用戶指定的任意項(xiàng)目名,按成績由低到高排列選手?jǐn)?shù)據(jù)并顯示排序結(jié)果。v顯示信息:顯示選手的編號、項(xiàng)目、成績等信息。設(shè)計(jì)要求及成果1. 分析課程設(shè)計(jì)題目的要求2. 寫出詳細(xì)設(shè)計(jì)說明3. 編寫程序代碼,調(diào)試程序使其能正確運(yùn)行4. 設(shè)計(jì)完成的軟件要便于操作和使用第二章 問題分析方案說明:參賽選手管理系統(tǒng)是用面向?qū)ο蟮姆椒ㄔO(shè)計(jì),由于數(shù)組的存放是連續(xù)的,而單鏈表是非連續(xù)存放的,是動態(tài)分配內(nèi)存空間,因此此系統(tǒng)采用單鏈表來完成。各個功能模塊的實(shí)現(xiàn)主要轉(zhuǎn)變到對單鏈表的遍歷,添加和刪除結(jié)點(diǎn)。系統(tǒng)功能模塊的劃分:在主界面中包括“增加選手 修改選手 查詢選手信息 排序 保存信息 讀取信

6、息 退出”等全部的功能,之所以設(shè)計(jì)這么一個主界面,一是因?yàn)槟苁褂脩魧Τ绦虿僮鞯牧鞒谈忧宄喢?,二是保證了用戶同時只能對一個文件進(jìn)行操作的系統(tǒng)要求,保證了系統(tǒng)不會發(fā)生打開文件紊亂或者出現(xiàn)致命錯誤。功能模板的劃分顯示菜單功能模板1增加選手功能2修改選手功能3查詢選手信息4排序功能5保存信息6讀取信息7退出第三章 數(shù)據(jù)模型類的設(shè)計(jì)定義參賽選手competitor類,包含成員變量:姓名name,編號num,短跑、跳高、跳遠(yuǎn)成績x,y,z。class competitor /選手public: competitor *next; public: string name; /姓名 long num; /

7、編號 int x,y,z; /短跑,跳高,跳遠(yuǎn) 成員函數(shù):void sadd(); /添加void samend(); /修改void ssearch(); /查詢void staxis(); /排序void ssave(); /保存void sload(); /讀取void pxh();void psx();void pyw();void pyy();第四章 設(shè)計(jì)流程圖開始讀入文件中的數(shù)據(jù)并輸出菜單及提示信息輸入選擇選擇操作子程序保存并退出 圖4.1 流程圖 第五章 程序代碼#include #include #include #include using namespace std; cl

8、ass competitor public: competitor *next; public: string name; /姓名 long num; /編號 float x,y,z; /短跑,跳高,跳遠(yuǎn) void play()coutname選手的編號是num,短跑:x,跳高:y,跳遠(yuǎn):z next; delete comp; comp=p; comp=0; void sadd(); /添加 void samend(); /修改 void ssearch(); /查詢 void staxis(); /排序 void ssave(); /保存 void sload(); /讀取 void px

9、h(); 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); coutn *增加的選手* nendl; cout請輸入選手的(中間用空格間隔) endl; cout姓名 編號 短跑成績 跳高成績 跳遠(yuǎn)成績name1num1x1y1z1; q=new competitor(name1,num1,x1,y1,z1); q-next=0;

10、 if(comp) competitor *t; t=comp; if(t-num=num1) cout編號已存在,請重新輸入next) if(t-num=num1) cout編號已存在,請重新輸入next; t-next=q; else comp=q; cout輸入完畢endl; void cla:samend() /修改 system(cls); long num1; coutn* 修改選手信息 *n; coutnum1; /查找要修改的結(jié)點(diǎn) competitor *p1,*p2; p1=comp; while(p1) if(p1-num=num1) break; else p2=p1;

11、p1=p1-next; if(p1!=null) cout編號是num1的選手的信息:endl; cout姓名 name 短跑x 跳高y 跳遠(yuǎn)zendl; cout請輸入修改后的信息:姓名 短跑成績 跳高 ;cout成績 跳遠(yuǎn)成績p1-namep1-xp1-yp1-z; cout修改成功endl; else /未找到接點(diǎn) cout未找到!n; void cla:ssearch() /查詢 system(cls); coutn* 查詢選手信息 *nendl; cout請輸入查詢方式:endl; cout1.按編號查詢endl; cout2.按姓名查詢endl; cout3.返回c; switch

12、 (c) case 1: long num1; cout要查詢的編號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編號是num1的選手的信息endl; cout姓名:name 短跑:x 跳高:y 跳遠(yuǎn):zendl; cout查詢完畢.; else /未找到接點(diǎn) cout未找到!n; break; case 2: string name1; cout要查詢的選手姓名name1; /查找要查詢的結(jié)點(diǎn) comp

13、etitor *p1,*p2; p1=comp; while(p1) if(p1-name=name1) break; else p2=p1; p1=p1-next; if(p1!=null) coutname1的選手的信息endl; cout編號:num 短跑:x c+:y 跳遠(yuǎn):zendl; cout查詢完畢.; else /未找到接點(diǎn) coutnext) n+; p1=p1-next; cout共有n條信息.endl; int i; p1=comp; for(i=1;inump1-next-num) / 如果頭結(jié)點(diǎn)大于第二個的 p2=p1-next; p1-next=p1-next-ne

14、xt; p2-next=p1; /頭結(jié)點(diǎn)交換 comp=p2; p1=comp; while(p1-next-next) /中間的交換 p2=p1; p1=p1-next; if(p1-nump1-next-num) p2-next=p1-next; p1-next=p1-next-next; p2-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; while(p1

15、-next) n+; p1=p1-next; cout共有n條信息.endl; int i; p1=comp; for(i=1;ixp1-next-x) / 如果頭結(jié)點(diǎn)大于第二個的 p2=p1-next; p1-next=p1-next-next; p2-next=p1; /頭結(jié)點(diǎn)交換 comp=p2; p1=comp; while(p1-next-next) /中間的交換 p2=p1; p1=p1-next; if(p1-xp1-next-x) p2-next=p1-next; p1-next=p1-next-next; p2-next-next=p1; p1=p2-next; /交換 p1

16、=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; cout共有n條信息.endl; int i; p1=comp; for(i=1;iyp1-next-y) /如果頭結(jié)點(diǎn)大于第二個的 p2=p1-next; p1-next=p1-next-next; p2-next=p1; /頭結(jié)點(diǎn)交換 comp=p2; p1=comp; while(p1-next-next) /中

17、間的交換 p2=p1; p1=p1-next; if(p1-yp1-next-y) p2-next=p1-next; p1-next=p1-next-next; p2-next-next=p1; p1=p2-next; /交換 p1=comp; do p1-play(); p1=p1-next; while(p1); void cla:pyy() /按跳遠(yuǎn)成績排序 competitor *p1,*p2; int n; p1=comp; n=1; while(p1-next) n+; p1=p1-next; cout共有n條信息.endl; int i; p1=comp; for(i=1;izp

18、1-next-z) / 如果頭結(jié)點(diǎn)大于第二個的 p2=p1-next; p1-next=p1-next-next; p2-next=p1; /頭結(jié)點(diǎn)交換 comp=p2; p1=comp; while(p1-next-next) /中間的交換 p2=p1; p1=p1-next; if(p1-zp1-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-next; while(p1); void cla:staxis() /排序 s

19、ystem(cls); char c; cout請選擇以何種方式排序:endl; cout1以編號排序endl; cout2以短跑成績排序endl; cout3以跳高成績排序endl; cout4以跳遠(yuǎn)成績排序endl; cout5返回endl; 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; coutc;

20、 if(toupper(c)!=y) return; ofstream tfile(date.txt,ios_base:binary); competitor *p=comp; while(p) / 寫入文件 tfilenametnumtxtytz; tfilenext; tfile.close(); cout保存完畢.next; delete p; p=comp; if stream tfile(date.txt,ios_base:binary); string name1; long num1; float x1,y1,z1; tfilename1num1x1y1z1; while(tfile.good() /創(chuàng)建選手接點(diǎn) competitor *s; s=comp; s=new competitor(name1,num1,x1,y1,z1); s-next=0; if(comp) /若已經(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; /連接 tfilename1num1x1y1z1; tfile.close(); coutn歡迎使用選手成績管理系統(tǒng)n; void m

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論