版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 c+程序設計課程設計說明書題 目:比賽參賽選手管理系統(tǒng) 學生姓名: 學 號: 專 業(yè):電子信息工程 班 級:信息092 指導老師: 內蒙古科技大學課程設計任務書課程名稱c+語言課程設計設計題目比賽參賽選手管理系統(tǒng)指導教師時間2011.6.132011.6.24一、教學要求1. 鞏固和加深學生對c+語言課程的基本知識的理解和掌握2. 掌握c+語言編程和程序調試的基本技能3. 利用c+語言進行基本的軟件設計4. 掌握書寫程序設計說明文檔的能力5. 提高運用c+語言解決實際問題的能力二、設計資料及參數(shù)每個學生在教師提供的課程設計題目中任意選擇一題,獨立完成,可根據(jù)設計內容適當修改題目名稱。*比賽參
2、賽選手管理系統(tǒng)定義人員基類,包含選手的基本數(shù)據(jù)和基本屬性;要求至少設計以下各功能模塊:v 輸入記錄v 查詢功能v 排序v 顯示信息三、設計要求及成果1. 分析課程設計題目的要求2. 寫出詳細設計說明3. 編寫程序代碼,調試程序使其能正確運行4. 設計完成的軟件要便于操作和使用4. 設計完成后提交課程設計報告四、進度安排資料查閱與討論(1天)系統(tǒng)分析(2天)系統(tǒng)的開發(fā)與測試(5天)編寫課程設計說明書和驗收(2天)五、評分標準1. 根據(jù)平時上機考勤、表現(xiàn)和進度,教師將每天點名和檢查2. 根據(jù)課程設計完成情況,必須有可運行的軟件。3. 根據(jù)課程設計報告的質量,如有雷同,則所有雷同的所有人均判為不及格
3、。六、建議參考資料1c+面向對象程序設計,吳敏、楊國林 主編,內蒙古大學出版社2c+語言程序設計(第三版),鄭莉,清華大學出版社比賽參賽選手管理系統(tǒng)摘要c+語言是目前公認的熱門編程語言之一。c+是在c語言基礎上發(fā)展演變而來的一種面向對象程序設計語言。它既支持面向過程的程序設計方法,也支持面向對象的程序設計方法。當今,c+語言在社會的各個領域發(fā)揮著越來越重要的作用。參賽選手系統(tǒng)的設計正是c+用于生活中的一項應用。參賽選手管理系統(tǒng)能方便用戶快捷處理選手的信息,得到想要的數(shù)據(jù)并能將選手的信息以文檔方式保存。此系統(tǒng)的主要管理的信息有:選手的姓名,編號和三項賽事的成績。系統(tǒng)的主要功能有選手信息的添加、修
4、改、顯示,能對選手成績按編號或成績進行排序,可以根據(jù)用戶的要求按姓名,編號查詢選手的信息,保存信息到文件以及從文件中讀取信息等功能。目錄摘要2第一章 問題描述2第二章 問題分析2第三章 數(shù)據(jù)模型2第四章 設計流程圖2第五章 程序代碼2第六章 運行結果2第七章 設計總結2參考文獻2第一章 問題描述建立一套比賽參賽選手管理系統(tǒng)。定義人員基類(competitor),包含選手的基本數(shù)據(jù)和基本屬性,實現(xiàn)以下各功能:v 輸入記錄:選手信息數(shù)據(jù)要以文件的形式保存,能實現(xiàn)選手信息數(shù)據(jù)的維護。此模塊包括子模塊有:增加選手信息、修改選手信息。v 查詢功能:查詢時可實現(xiàn)按姓名查詢、按編號查詢、成績查詢v 排序:能
5、對用戶指定的任意項目名,按成績由低到高排列選手數(shù)據(jù)并顯示排序結果。v顯示信息:顯示選手的編號、項目、成績等信息。設計要求及成果1. 分析課程設計題目的要求2. 寫出詳細設計說明3. 編寫程序代碼,調試程序使其能正確運行4. 設計完成的軟件要便于操作和使用第二章 問題分析方案說明:參賽選手管理系統(tǒng)是用面向對象的方法設計,由于數(shù)組的存放是連續(xù)的,而單鏈表是非連續(xù)存放的,是動態(tài)分配內存空間,因此此系統(tǒng)采用單鏈表來完成。各個功能模塊的實現(xiàn)主要轉變到對單鏈表的遍歷,添加和刪除結點。系統(tǒng)功能模塊的劃分:在主界面中包括“增加選手 修改選手 查詢選手信息 排序 保存信息 讀取信息 退出”等全部的功能,之所以設
6、計這么一個主界面,一是因為能使用戶對程序操作的流程更加清楚簡明,二是保證了用戶同時只能對一個文件進行操作的系統(tǒng)要求,保證了系統(tǒng)不會發(fā)生打開文件紊亂或者出現(xiàn)致命錯誤。功能模板的劃分顯示菜單功能模板1增加選手功能2修改選手功能3查詢選手信息4排序功能5保存信息6讀取信息7退出第三章 數(shù)據(jù)模型類的設計定義參賽選手competitor類,包含成員變量:姓名name,編號num,短跑、跳高、跳遠成績x,y,z。class competitor /選手public: competitor *next; public: string name; /姓名 long num; /編號 int x,y,z; /短
7、跑,跳高,跳遠 成員函數(shù):void sadd(); /添加void samend(); /修改void ssearch(); /查詢void staxis(); /排序void ssave(); /保存void sload(); /讀取void pxh();void psx();void pyw();void pyy();第四章 設計流程圖開始讀入文件中的數(shù)據(jù)并輸出菜單及提示信息輸入選擇選擇操作子程序保存并退出 圖4.1 流程圖 第五章 程序代碼#include #include #include #include using namespace std; class competitor p
8、ublic: competitor *next; public: string name; /姓名 long num; /編號 float x,y,z; /短跑,跳高,跳遠 void play()coutname選手的編號是num,短跑:x,跳高:y,跳遠:z next; delete comp; comp=p; comp=0; void sadd(); /添加 void samend(); /修改 void ssearch(); /查詢 void staxis(); /排序 void ssave(); /保存 void sload(); /讀取 void pxh(); void psx();
9、 void pyw(); void pyy(); private: competitor *comp; /頭接點 ; void cla:sadd() /添加 competitor *q; string name1; long num1; float x1,y1,z1; system(cls); coutn *增加的選手* nendl; cout請輸入選手的(中間用空格間隔) endl; cout姓名 編號 短跑成績 跳高成績 跳遠成績name1num1x1y1z1; q=new competitor(name1,num1,x1,y1,z1); q-next=0; if(comp) compet
10、itor *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; /查找要修改的結點 competitor *p1,*p2; p1=comp; while(p1) if(p1-num=num1) break; else p2=p1; p1=p1-next; if(p
11、1!=null) cout編號是num1的選手的信息:endl; cout姓名 name 短跑x 跳高y 跳遠zendl; cout請輸入修改后的信息:姓名 短跑成績 跳高 ;cout成績 跳遠成績p1-namep1-xp1-yp1-z; cout修改成功endl; else /未找到接點 cout未找到!n; void cla:ssearch() /查詢 system(cls); coutn* 查詢選手信息 *nendl; cout請輸入查詢方式:endl; cout1.按編號查詢endl; cout2.按姓名查詢endl; cout3.返回c; switch (c) case 1: lon
12、g num1; cout要查詢的編號num1; /查找要查詢的結點 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 跳遠:zendl; cout查詢完畢.; else /未找到接點 cout未找到!n; break; case 2: string name1; cout要查詢的選手姓名name1; /查找要查詢的結點 competitor *p1,*p2;
13、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 跳遠:zendl; cout查詢完畢.; else /未找到接點 coutnext) n+; p1=p1-next; cout共有n條信息.endl; int i; p1=comp; for(i=1;inump1-next-num) / 如果頭結點大于第二個的 p2=p1-next; p1-next=p1-next-next; p2-next=p1;
14、/頭結點交換 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-next) n+; p1=p1
15、-next; cout共有n條信息.endl; int i; p1=comp; for(i=1;ixp1-next-x) / 如果頭結點大于第二個的 p2=p1-next; p1-next=p1-next-next; p2-next=p1; /頭結點交換 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=comp; do p1-pla
16、y(); 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) /如果頭結點大于第二個的 p2=p1-next; p1-next=p1-next-next; p2-next=p1; /頭結點交換 comp=p2; p1=comp; while(p1-next-next) /中間的交換 p2=p1; p1=p
17、1-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() /按跳遠成績排序 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;izp1-next-z) / 如果頭結
18、點大于第二個的 p2=p1-next; p1-next=p1-next-next; p2-next=p1; /頭結點交換 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() /排序 system(cls); char
19、 c; cout請選擇以何種方式排序:endl; cout1以編號排序endl; cout2以短跑成績排序endl; cout3以跳高成績排序endl; cout4以跳遠成績排序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; if(toupper(c)!=
20、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)建選手接點 competitor *s; s=comp; s=new competitor(name1,num1,x1,y1,z1); s-next=0; if(comp) /若已經存在結點 competitor *p2; p2=comp;while(p2-next) /查找尾結點 p2=p2-next; p2-next=s; /連接 else /若不存在結點(表空) comp=s; /連接 tfilename1num1x1y1z1; tfile.close(); coutn歡迎使用選手成績管理系統(tǒng)n; void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝店服務員的工作感悟
- 娛樂行業(yè)安全管理工作總結
- 餐飲排隊預約話務員工作總結
- 球類運動中空氣阻力計算和分析
- 班級晨會的實施方案計劃
- 南征北戰(zhàn)-C調《驕傲的少年》(抒情回憶版 段落優(yōu)化)鋼琴譜
- 空氣過剩系數(shù)
- 公共機構能源資源消費統(tǒng)計系統(tǒng)-操作手冊(統(tǒng)計員)
- 2025年度智能機器人設備采購合同書3篇
- 2025年度生產設備委托代銷合同示例2篇
- 華為客戶洞察報告
- (新版)全國職業(yè)院校技能大賽-焊接技術賽項-考試題庫(附答案)
- 大學生畢業(yè)論文寫作教程全套教學課件
- 廣西壯族自治區(qū)欽州市浦北縣2023-2024學年七年級上學期期中數(shù)學試題
- 新譯林版英語五年級上冊期末詞匯復習
- 浙江省溫州市2023-2024學年數(shù)學四年級第一學期期末含答案
- 安全保障作業(yè)方案
- 變壓器互感器制造工試題及答案
- 電工安全培訓教育記錄
- 梅花鹿養(yǎng)殖基地產業(yè)化建設項目可行性研究報告(含財務表)
- 一年級帶拼音閱讀(全)
評論
0/150
提交評論