C語(yǔ)言課程設(shè)計(jì)報(bào)告 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)
《C語(yǔ)言課程設(shè)計(jì)報(bào)告 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言課程設(shè)計(jì)報(bào)告 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)(24頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 學(xué)校:東北大學(xué)秦皇島分校 班級(jí):50809班 姓名:石行 學(xué)號(hào):5080906 C語(yǔ)言課程設(shè)計(jì)報(bào)告 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) 一.需求分析 1問(wèn)題描述 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) 參加運(yùn)動(dòng)會(huì)有n個(gè)系,系編號(hào)為1……n。比賽分成m個(gè)男子項(xiàng)目,和w個(gè)女子項(xiàng)目。項(xiàng)目編號(hào)為男子1……m,女子m+1……m+w。不同的項(xiàng)目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學(xué)生自己設(shè)定。(m<=20,n<=20) 2.基本要求: (1). 運(yùn)動(dòng)員檢錄; (2).運(yùn)動(dòng)員檢錄, (3).運(yùn)動(dòng)員成績(jī)排序; (4). 運(yùn)動(dòng)員評(píng)獎(jiǎng)
2、 3.測(cè)試數(shù)據(jù) 《1》輸入:1進(jìn)入添加系的界面,根據(jù)提示,再輸入:汽車系。再輸入:8,成功添加了一個(gè)系。再輸入:2進(jìn)入運(yùn)動(dòng)項(xiàng)目添加界面,根據(jù)提示,再輸入:跳高;1;0;1;2;3。之后輸入0。再次進(jìn)入系統(tǒng)界面。 《2》輸入:3查看輸出結(jié)果。 《3》:輸入:4查看輸出結(jié)果。 《4》:輸入:5查看輸出結(jié)果。 《5》:輸入:6查看輸出結(jié)果。 《6》:輸入:7根據(jù)提示輸入項(xiàng)目編號(hào):2。查看輸出結(jié)果。 《7》:輸入:8根據(jù)提示輸入系編號(hào):3。查看輸出結(jié)果。 二、概要設(shè)計(jì) 1.數(shù)據(jù)結(jié)構(gòu) <1>系:名稱,編號(hào),男子團(tuán)體總分,女子固體總分。 <2>運(yùn)動(dòng)項(xiàng)目: 項(xiàng)目編號(hào),名稱,男子項(xiàng)目,
3、女子項(xiàng)目,前三名,前五名,第一名系的編號(hào),第二名系的編號(hào),第三名系的編號(hào),第四名系的編號(hào),第五名系的編號(hào)。 2.程序模塊及之間的調(diào)用關(guān)系 三、詳細(xì)設(shè)計(jì) 1、數(shù)據(jù)類型定義 (1)系的定義: typedef struct Department //系的結(jié)構(gòu) { char name[20]; //系的名稱 int number; //系的編號(hào) int boy; //男子團(tuán)體總分 int girl;
4、 //女子團(tuán)體總分 Department *next; }Department; (2)運(yùn)動(dòng)項(xiàng)目定義: typedef struct Sport //運(yùn)動(dòng)項(xiàng)目結(jié)構(gòu) { char name[20]; //運(yùn)動(dòng)項(xiàng)目名稱 int isboy; //0為女項(xiàng)目,1為男項(xiàng)目 int is3; //0為取前五名,1為取前五名 int number; //項(xiàng)目編號(hào)
5、 int first; //第一名系的編號(hào) int second; //第二名系的編號(hào) int third; //第三名系的編號(hào) int fourth; //第四名系的編號(hào) int fifth; //第五名系的編號(hào) Sport *next; }Sport;、 2、函數(shù)之間的調(diào)用關(guān)系 (1) 系調(diào)用圖
6、 department_add department_Order <1>Department department_search department_addmark department_show department_isexist department_output department_read
7、 department_write department_getlong sport_isexist sport_add sport_getlong sport_write <2>Sport sport_read sport_output sport_search 3、算法設(shè)計(jì)
8、 主要算法的設(shè)計(jì)思想: 本程序主要是使用鏈表來(lái)實(shí)現(xiàn)操作。一個(gè)運(yùn)動(dòng)會(huì)包括運(yùn)動(dòng)項(xiàng)目和參加運(yùn)動(dòng)會(huì)的成員。因此構(gòu)造兩個(gè)鏈表Department,Sport。為了操作的方便,并且能夠保存輸入數(shù)據(jù),所以通過(guò)文件操作來(lái)實(shí)現(xiàn)數(shù)據(jù)的寫和讀。每次添加新的數(shù)據(jù)后都要輸入0退出,數(shù)據(jù)才能保存。對(duì)于總分的排序使用了冒泡排序。為了使整個(gè)程序看起來(lái)更加友好,又添加了程序啟動(dòng)畫面。 四、 調(diào)試分析 本程序相對(duì)來(lái)說(shuō)比較容易看明白,其中涉及到的一些函數(shù)相對(duì)來(lái)說(shuō)比較容易。通過(guò)調(diào)試,運(yùn)行,基本上達(dá)到了要求,但還存在一些缺點(diǎn)。如:不夠人性化等。 五、 測(cè)試結(jié)果 <1>多組數(shù)據(jù)
9、輸入與輸出: (1)輸入:3 輸出:系名 編號(hào) 男團(tuán)總分 女團(tuán)總分 總分 法律系 6 0 0 0 電子系 5 3 2 5 數(shù)學(xué)系 4 6 0 6 歷史系 3 9 7 16 中文系 2 15 11 26
10、 計(jì)算機(jī)系 1 21 11 32 旅游系 7 0 7 7 (2)輸入:4 輸出: 系名 編號(hào) 男團(tuán)總分 女團(tuán)總分 總分 法律系 6 0 0 0 電子系 5 3 2 5 數(shù)學(xué)系 4 6 0 6 旅游系 7 0
11、 7 7 歷史系 3 9 7 16 中文系 2 15 11 26 計(jì)算機(jī)系 1 21 11 32 (3)輸入:5 輸出:法律系 6 0 0 0 電子系 5 3 2 5 數(shù)學(xué)系 4 6 0
12、 6 旅游系 7 0 7 7 歷史系 3 9 7 16 中文系 2 15 11 26 計(jì)算機(jī)系 1 21 11 32 (4)輸入:6 輸出:法律系 6 0 0 0 電子系 5 3 2
13、 5 數(shù)學(xué)系 4 6 0 6 旅游系 7 0 7 7 歷史系 3 9 7 16 中文系 2 15 11 26 計(jì)算機(jī)系 1 21 11 32 (5)輸入:7 輸出:請(qǐng)輸入項(xiàng)目編號(hào): 輸入:1回車
14、 輸出: 項(xiàng)目名:100m 項(xiàng)目類型:女子項(xiàng)目 第一名:計(jì)算機(jī)系 第二名:中文系 第三名:法律系 第四名:無(wú) 第五名:無(wú) (6)輸入:8 輸出:請(qǐng)輸入系的編號(hào): 再輸入2 則輸出: 系名:中文系 男子團(tuán)體總分:3 女子團(tuán)體部分:10 總分:13
15、 (7)輸入:0 退出 六、 用戶手冊(cè) 1、運(yùn)行環(huán)境 Windows,VC++6.0 2、用戶界面 4、操作過(guò)程 (1)用戶進(jìn)入程序啟動(dòng)界面,等load完成后進(jìn)入主菜單.主菜單有以下9個(gè)選項(xiàng) 1.輸入系別 2.輸入運(yùn)動(dòng)項(xiàng)目 3.按系別編號(hào)輸出總分 4.按總分排序 5.按男團(tuán)體總分排序 6.按女團(tuán)體總分排序 7.按項(xiàng)目編號(hào)查詢 8.按系別編號(hào)查詢 0.退出 (2)輸入0~8中的一個(gè)數(shù) (3)
16、輸入1,進(jìn)行添加系操作,分別輸入系的名稱和編號(hào) (4)輸入2,進(jìn)行添加運(yùn)動(dòng)項(xiàng)目操作,分別輸入項(xiàng)目名稱,編號(hào),項(xiàng)目類型,名次選 取,排名情況 (5)輸入0,則退出系統(tǒng),并且保存輸入的信息.每次添加完都要輸入0退出系統(tǒng) 才有效 (6)輸入3,輸出按系編號(hào)總分排名. (7)輸入4,輸出按總分排名 (8)輸入5,輸出按男團(tuán)體總分排序 (9)輸入6,輸出按女團(tuán)體總分排序 (10)輸入7,進(jìn)入按項(xiàng)目編號(hào)查詢界面.輸入要查詢的項(xiàng)目編號(hào) (11)輸入8,進(jìn)入按系別編號(hào)查詢界面,輸入要查詢的系的編號(hào) 七、
17、 參考文獻(xiàn)
【1】《C++程序設(shè)計(jì)》作者:鄭莉,董淵,張瑞豐 出版社:清華大學(xué)出版社 時(shí)間:2003/12
【2】《數(shù)據(jù)結(jié)構(gòu)》作者:嚴(yán)蔚敏,吳偉民 出版社:清華大學(xué)出版社 時(shí)間:2006/10
【3】《數(shù)據(jù)結(jié)構(gòu)教程上機(jī)實(shí)驗(yàn)指導(dǎo)》作者:嚴(yán)蔚敏,吳偉民,米寧 出版社:清華大學(xué)出版
社 時(shí)間:2006/5
【4】 網(wǎng)址:
八、 附錄
1、源程序
#include
18、nclude
19、項(xiàng)目結(jié)構(gòu) { char name[20]; //運(yùn)動(dòng)項(xiàng)目名稱 int isboy; //0為女項(xiàng)目,1為男項(xiàng)目 int is3; //0為取前五名,1為取前五名 int number; //項(xiàng)目編號(hào) int first; //第一名系的編號(hào) int second; //第二名系的編號(hào) int third; //第三名系的編號(hào) int fourth;
20、 //第四名系的編號(hào) int fifth; //第五名系的編號(hào) Sport *next; }Sport; int getint(int a) //字符轉(zhuǎn)換成數(shù)字 { return (int)(a-'0'); } Department * head1; //-------啟動(dòng)畫面函數(shù)---------- void Cover() { system("color 1b"); char line[]={"程序讀取中 請(qǐng)耐心等待..."}; char bar[]={"...."}; int i,
21、j,k=0,x=0,y=0;
for(i=0;i<=strlen(line)/2;)
{
system("cls");
for(j=0;j<9;j++) //改變行坐標(biāo)
cout<
22、ut<<"○";
if(k==4)
i++;
cout< 23、t< 24、 k=0;
}
}
void department_add() //添加系
{
Department * p;
int mark=0;
p=new Department;
cout<<"請(qǐng)輸入系的名稱:";
cin>>p->name;
char c;
while (mark!=1)
{
cout<<"請(qǐng)輸入系的編號(hào):";
cin>>c;
if (!isdigit(c))//是否為數(shù)字
{
25、 cout<<"數(shù)據(jù)非法"< 26、;
while (first->next!=NULL)
{
i++;
first=first->next;
}
return i;
}
void department_write()//將系數(shù)據(jù)寫入文本
{
Department * p;
p=head1;
p=p->next;
ofstream outfile("Department.txt",ios::out);
outfile< 27、 (p!=NULL)
{
outfile< 28、hile(i>0)
{
Department * p;
p=new Department;
infile>>p->name>>p->number>>p->boy>>p->girl;
p->next=head1->next;
head1->next=p;
i--;
}
cout<<"Department Data Read Success!"< 29、 cout<<" 系名 編號(hào) 男團(tuán)總分 女團(tuán)總分 總分\t\n";
while(p)
{
cout< 30、p=p->next;
while(p)
{
if(p->number==a)
{
return 1;
}
p=p->next;
}
return 0;
}
void department_show(int a)//輸出所有系
{
Department *p;
p=head1;
p=p->next;
while(p)
{
if(p->number==a)
{
31、 cout< 32、"男子團(tuán)體總分:"< 33、 {
if(p->number==b)
{
if(c=='1')
{
p->boy=p->boy+a;
}
else
{
p->girl=p->girl+a;
}
}
p=p->next;
}
}
void department_order(Department *temp,int ty 34、pe) //type=0按總分,type=1按男總分,type=2按女總分,
{
Department *p,*q,*small,*temp1;
temp1=new Department;
temp1->next=NULL;
p=temp;
while(p)
{
small=p;
q=p->next;
while(q)
{
switch(type)
{
case 0:
35、 if((q->boy+q->girl)<(small->girl+small->boy))
{
small=q;
}
break;
case 1:
if(q->boy 36、eak;
case 2:
if(q->girl 37、p1->boy=p->boy;
p->boy=small->boy;
small->boy=temp1->boy;
temp1->girl=p->girl;
p->girl=small->girl;
small->girl=temp1->girl;
strcpy(temp1->name,p->name);
strcpy(p->name,small->n 38、ame);
strcpy(small->name,temp1->name);
temp1->number=p->number;
p->number=small->number;
small->number=temp1->number; //將系的名字互換
}
q=q->next;
}
p=p->next;
}
}
Sport * head2;
i 39、nt sport_isexist(int a) //檢查運(yùn)動(dòng)項(xiàng)目(編號(hào))是否已經(jīng)存在
{
int b=0;
Sport *p;
p=head2;
p=p->next;
while(p)
{
if(p->number==a)
{
return 1;
}
p=p->next;
}
return 0;
}
void sport_add() //添加項(xiàng)目
{
Sport * p;
40、 int mark=0;
p=new Sport;
cout<<"請(qǐng)輸入項(xiàng)目名稱:";
cin>>p->name;
char c;
while (mark!=1)
{
cout<<"請(qǐng)輸入項(xiàng)目編號(hào):";
cin>>c;
if (!isdigit(c))
{
cout<<"數(shù)據(jù)非法"< 41、 {
cout<<"該編號(hào)已存在"< 42、>isboy=(int)(c-'0');//字符轉(zhuǎn)換成數(shù)字
if (!isdigit(c))
{
cout<<"數(shù)據(jù)非法"< 43、 mark=0;
while (mark!=1)
{
cout<<"請(qǐng)輸入項(xiàng)目名次情況(0為取前3名,1為取前5名):";
cin>>c;
p->is3=(int)(c-'0');
if (!isdigit(c))
{
cout<<"數(shù)據(jù)非法"< 44、
else
{
mark=1;
p->is3=c;
}
}
mark=0;
while (mark!=1)
{
cout<<"請(qǐng)輸入第一名的系的編號(hào):";
cin>>c;
if (!isdigit(c))
{
cout<<"數(shù)據(jù)非法"< 45、!department_isexist(c))
{
cout<<"該系不存在,請(qǐng)先添加";
}
else
{
mark=1;
p->first=c;
if(p->is3=='0')
department_addmark(5,c,p->isboy);
else
46、 department_addmark(7,c,p->isboy);
}
}
}
mark=0;
while (mark!=1)
{
cout<<"請(qǐng)輸入第二名的系的編號(hào):";
cin>>c;
if (!isdigit(c))
{
cout<<"數(shù)據(jù)非法"< 47、ent_isexist(c))
{
cout<<"該系不存在,請(qǐng)先添加";
}
else
{
mark=1;
p->second=c;
if(p->is3=='0')
department_addmark(3,c,p->isboy);
else
48、 department_addmark(5,c,p->isboy);
}
}
}
mark=0;
while (mark!=1)
{
cout<<"請(qǐng)輸入第三名的系的編號(hào):";
cin>>c;
if (!isdigit(c))
{
cout<<"數(shù)據(jù)非法"< 49、(c))
{
cout<<"該系不存在,請(qǐng)先添加";
}
else
{
mark=1;
p->third=c;
if(p->is3=='0')
department_addmark(2,c,p->isboy);
else
department 50、_addmark(3,c,p->isboy);
}
}
}
mark=0;
if(p->is3=='1')
{
while (mark!=1)
{
cout<<"請(qǐng)輸入第四名的系的編號(hào):";
cin>>c;
if (!isdigit(c))
{
cout<<"數(shù)據(jù)非法"< 51、 if(!department_isexist(c))
{
cout<<"該系不存在,請(qǐng)先添加";
}
else
{
mark=1;
p->fourth=c;
department_addmark(2,c,p->isboy);
}
}
}
mark=0;
wh 52、ile (mark!=1)
{
cout<<"請(qǐng)輸入第五名的系的編號(hào):";
cin>>c;
if (!isdigit(c))
{
cout<<"數(shù)據(jù)非法"< 53、 else
{
mark=1;
p->fifth=c;
department_addmark(1,c,p->isboy);
}
}
}
}
else
{
p->fourth='0';
p->fifth='0';
}
p->next=head2->next;
head2->next=p;
cou 54、t<<"成功添加了一個(gè)運(yùn)動(dòng)項(xiàng)目"< 55、;
p=p->next;
ofstream outfile("Sport.txt",ios::out);
outfile< 56、xt;
}
outfile.close();
cout<<"Write Success!"< 57、mber>>p->isboy>>p->is3>>p->first>>p->second>>p->third>>p->fourth>>p->fifth;
p->next=head2->next;
head2->next=p;
i--;
}
cout<<"Sport Data Read Success!"< 58、 "<<"B/G"<<" "<<" 3/5"<<" "<<" first"<<" "<<"second"<<" "<<"third"<<" "<<"fourth"<<" "<<"fifth"<<" "< 59、ent_show(p->first);
department_show(p->second);
department_show(p->third);
department_show(p->fourth);
department_show(p->fifth);
//printf("\n");
p=p->next;
cout<<"\n";
}
cout< 60、搜索項(xiàng)目
{
Sport *p;
p=head2;
p=p->next;
while(p)
{
if(p->number==a)
{
cout<<"項(xiàng)目名:"< 61、 cout<<"女子項(xiàng)目";
}
cout< 62、artment_show(p->fourth);
cout< 63、artment;
head1->next=NULL;
head2=new Sport;
head2->next=NULL;
//school_add();
sport_read();
department_read();
//sport_add();
Department * p1;
Sport * p2;
p1=head1;
p1=p1->next;
p2=head2;
p2=p2->next;
char choose;
char temp;
64、
//string ch=" ";
int a=1;
while(a!=0)
{
cout< 65、 *"< 66、 * *"<
- 溫馨提示:
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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Storytime (2)
- 【四清導(dǎo)航】秋八年級(jí)數(shù)學(xué)上冊(cè) 3.3 一元一次不等式(第3課時(shí))課件 (新版)浙教版
- 海淀區(qū)域P4P實(shí)操診斷課件
- 三年級(jí)記事作文指導(dǎo)
- 醫(yī)院內(nèi)感染的預(yù)防和控制
- 機(jī)械設(shè)計(jì)第十章習(xí)題
- 華泰汽車“全心服務(wù)_貼心關(guān)懷”管理知識(shí)分析方案
- Unit 11 Lesson 2 What's the matter 課件 1
- 創(chuàng)業(yè)大賽設(shè)計(jì)中財(cái)務(wù)分析方法與技巧
- 從現(xiàn)在開(kāi)始課件 (4)(精品)
- 蛋白質(zhì)促降解與氨基酸代謝
- (精品)電視原理第1章1
- 術(shù)中病情觀察小講課
- 日系汽車研發(fā)質(zhì)量管控
- 6Sigma的管理理論(ppt 30頁(yè))