《C++程序設(shè)計》課程設(shè)計說明書比賽參賽選手管理系統(tǒng)
《《C++程序設(shè)計》課程設(shè)計說明書比賽參賽選手管理系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《《C++程序設(shè)計》課程設(shè)計說明書比賽參賽選手管理系統(tǒng)(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、內(nèi)蒙古科技大學(xué)C++課程設(shè)計說明書 《C++程序設(shè)計》課程設(shè)計說明書 題 目:比賽參賽選手管理系統(tǒng) 學(xué)生姓名: 學(xué) 號: 專 業(yè):電子信息工程 班 級:信息09—2 指導(dǎo)老師: 內(nèi)蒙古科技大學(xué)課程設(shè)計任務(wù)書 課程名稱 C++語言課程設(shè)計 設(shè)計題目 比賽參賽選手管理系統(tǒng) 指導(dǎo)教師 時間 2011.6.13~2011.6.24 一
2、、教學(xué)要求 1. 鞏固和加深學(xué)生對C++語言課程的基本知識的理解和掌握 2. 掌握C++語言編程和程序調(diào)試的基本技能 3. 利用C++語言進(jìn)行基本的軟件設(shè)計 4. 掌握書寫程序設(shè)計說明文檔的能力 5. 提高運用C++語言解決實際問題的能力 二、設(shè)計資料及參數(shù) 每個學(xué)生在教師提供的課程設(shè)計題目中任意選擇一題,獨立完成,可根據(jù)設(shè)計內(nèi)容適當(dāng)修改題目名稱。 **比賽參賽選手管理系統(tǒng) 定義人員基類,包含選手的基本數(shù)據(jù)和基本屬性; 要求至少設(shè)計以下各功能模塊: v 輸入記錄 v 查詢功能 v 排序 v 顯示信息 三、設(shè)計要求及成果 1. 分析課程設(shè)計題目的要求 2. 寫出
3、詳細(xì)設(shè)計說明 3. 編寫程序代碼,調(diào)試程序使其能正確運行 4. 設(shè)計完成的軟件要便于操作和使用 4. 設(shè)計完成后提交課程設(shè)計報告 四、進(jìn)度安排 資料查閱與討論(1天) 系統(tǒng)分析(2天) 系統(tǒng)的開發(fā)與測試(5天) 編寫課程設(shè)計說明書和驗收(2天) 五、評分標(biāo)準(zhǔn) 1. 根據(jù)平時上機(jī)考勤、表現(xiàn)和進(jìn)度,教師將每天點名和檢查 2. 根據(jù)課程設(shè)計完成情況,必須有可運行的軟件。 3. 根據(jù)課程設(shè)計報告的質(zhì)量,如有雷同,則所有雷同的所有人均判為不及格。 六、建議參考資料 1.《C++面向?qū)ο蟪绦蛟O(shè)計》,吳敏、楊國林 主編,內(nèi)蒙古大學(xué)出版社 2.《C++語言程序設(shè)計(第三版)》,
4、鄭莉,清華大學(xué)出版社 比賽參賽選手管理系統(tǒng) 摘要 C++語言是目前公認(rèn)的熱門編程語言之一。C++是在C語言基礎(chǔ)上發(fā)展演變而來的一種面向?qū)ο蟪绦蛟O(shè)計語言。它既支持面向過程的程序設(shè)計方法,也支持面向?qū)ο蟮某绦蛟O(shè)計方法。當(dāng)今,C++語言在社會的各個領(lǐng)域發(fā)揮著越來越重要的作用。 參賽選手系統(tǒng)的設(shè)計正是C++用于生活中的一項應(yīng)用。參賽選手管理系統(tǒng)能方便用戶快捷處理選手的信息,得到想要的數(shù)據(jù)并能將選手的信息以文檔方式保存。此系統(tǒng)的主要管理的信息有:選手的姓名,編號和三項賽事的成績。系統(tǒng)的主要功能有選手信息的添加、修改、顯示,能對選手成績按編號或成績進(jìn)行排序,可以根據(jù)用戶的要求按姓名,編號查
5、詢選手的信息,保存信息到文件以及從文件中讀取信息等功能。 目錄 摘要 2 第一章 問題描述 2 第二章 問題分析 2 第三章 數(shù)據(jù)模型 2 第四章 設(shè)計流程圖 2 第五章 程序代碼 2 第六章 運行結(jié)果 2 第七章 設(shè)計總結(jié) 2 參考文獻(xiàn) 2 第一章 問題描述 建立一套比賽參賽選手管理系統(tǒng)。定義人員基類(competitor),包含選手的基本數(shù)據(jù)和基本屬性,實現(xiàn)以下各功能: v 輸入記錄:選手信息數(shù)據(jù)
6、要以文件的形式保存,能實現(xiàn)選手信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加選手信息、修改選手信息。 v 查詢功能:查詢時可實現(xiàn)按姓名查詢、按編號查詢、成績查詢 v 排序:能對用戶指定的任意項目名,按成績由低到高排列選手?jǐn)?shù)據(jù)并顯示排序結(jié)果。 v 顯示信息:顯示選手的編號、項目、成績等信息。 設(shè)計要求及成果 1. 分析課程設(shè)計題目的要求 2. 寫出詳細(xì)設(shè)計說明 3. 編寫程序代碼,調(diào)試程序使其能正確運行 4. 設(shè)計完成的軟件要便于操作和使用 第二章 問題分析 方案說明:參賽選手管理系統(tǒng)是用面向?qū)ο蟮姆椒ㄔO(shè)計,由于數(shù)組的存放是連續(xù)的,
7、而單鏈表是非連續(xù)存放的,是動態(tài)分配內(nèi)存空間,因此此系統(tǒng)采用單鏈表來完成。各個功能模塊的實現(xiàn)主要轉(zhuǎn)變到對單鏈表的遍歷,添加和刪除結(jié)點。 系統(tǒng)功能模塊的劃分:在主界面中包括“增加選手 修改選手 查詢選手信息 排序 保存信息 讀取信息 退出”等全部的功能,之所以設(shè)計這么一個主界面,一是因為能使用戶對程序操作的流程更加清楚簡明,二是保證了用戶同時只能對一個文件進(jìn)行操作的系統(tǒng)要求,保證了系統(tǒng)不會發(fā)生打開文件紊亂或者出現(xiàn)致命錯誤。 功能模板的劃分 顯示菜單功能模板 1……增加選手功能 2……修改選手功能 3……查詢選手信息 4……排序功能 5……保存信息 6……讀取信息 7……退出
8、 第三章 數(shù)據(jù)模型 類的設(shè)計 定義參賽選手competitor類,包含成員變量:姓名name,編號num,短跑、跳高、跳遠(yuǎn)成績x,y,z。 class competitor //選手 public: competitor *next; public: string name; //姓名 long num; //編號 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è)計流程圖 開始
10、
讀入文件中的數(shù)據(jù)并輸出菜單及提示信息
輸入選擇
選擇操作
子程序
保存并退出
圖4.1 流程圖
第五章 程序代碼
#include
11、d;
class competitor
{
public:
competitor *next;
public:
string name; //姓名
long num; //編號
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; //頭接點
};
void cla::sadd() //添加
{
competitor *q;
string name1;
long num1;
float x1,y1,z1;
system("cls");
cout<<"\n **增加的選手* 15、* \n"< 16、 }
while(t->next)
{
if(t->num==num1)
{
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<<"的選手的信息:"< 19、<"未找到!\n";
}
void cla::ssearch() //查詢
{
system("cls");
cout<<"\n** 查詢選手信息 **\n"< 20、long num1;
cout<<"要查詢的編號"< 21、 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< 23、<" 短跑:"< 24、 *p1,*p2;
int n;
p1=comp;
n=1;
while(p1->next)
{n++; p1=p1->next;}
cout<<"共有"< 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<<"共有"< 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<<"共有"< 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)成績排序
{
competitor *p1,*p2;
int n;
p1=comp;
n=1;
while(p1->next)
{n++; p1=p1->next;}
cout<<"共有"< 33、
for(i=1;i 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)"< 37、(將覆蓋原文件),是否繼續(xù)?[Y/N]:"; cin>>c;
if(toupper(c)!=Y) return;
ofstream tfile("date.txt",ios_base::binary);
competitor *p=comp;
while(p) // 寫入文件
{
tfile< 38、next;
}
tfile.close();
cout<<"保存完畢..."< 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é)果主界面
第七章 設(shè)計總結(jié)
通過一個學(xué)期的C++學(xué)習(xí),我對C++語言有了基本認(rèn)識,但是對有些知識懂得還不夠透徹。通過這次為期兩周的課程設(shè)計,我學(xué)到了更多關(guān)于《C++面向?qū)ο蟮某绦蛟O(shè)計》的內(nèi)容。這個課題用到了C+ 44、+語言程序設(shè)計的知識,通過這次課程設(shè)計,使我對C++設(shè)計有了更深的了解,對課本上的知識有了進(jìn)一步的掌握,同時也使我對自己的專業(yè)知識有進(jìn)一步的鞏固加深。在寫程序時,要注意類與對象、構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)等相結(jié)合,尤其是在學(xué)好程序后,要運行,有不足之處及時完善。把理論知識與實踐相結(jié)合,才能將所學(xué)知識運用的恰到好處。
參考文獻(xiàn)
[1]吳敏,楊國林. C++面向?qū)ο蟪绦蛟O(shè)計[M].呼和浩特:內(nèi)蒙古大學(xué)出版社.2006.
[2]鄭莉.C++語言程序設(shè)計[M]. 北京:清華大學(xué)出版社.2003.
[3]劉開軍.C++程序設(shè)計[M].北京:清華大學(xué)出版社.2004.
21
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點美食推薦
- XX國有企業(yè)黨委書記個人述責(zé)述廉報告及2025年重點工作計劃
- 世界濕地日濕地的含義及價值
- 20XX年春節(jié)節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點節(jié)后常見的八大危險
- 廈門城市旅游介紹廈門景點介紹廈門美食展示
- 節(jié)后開工第一課復(fù)工復(fù)產(chǎn)十注意節(jié)后復(fù)工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓(xùn)
- 深圳城市旅游介紹景點推薦美食探索
- 節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)勿忘安全本心人人講安全個個會應(yīng)急
- 預(yù)防性維修管理
- 常見閥門類型及特點
- 設(shè)備預(yù)防性維修
- 2.乳化液泵工理論考試試題含答案