




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C++課程設計報告運動會分數(shù)統(tǒng)計系統(tǒng)學校:太原科技大學班級:計算機07XXXX班姓名:XXX學號:20072001XXXX運動會分數(shù)統(tǒng)計系統(tǒng)需求分析1問題描述運動會分數(shù)統(tǒng)計系統(tǒng)參加運動會有n個系,系編號為1……n。比賽分成m個男子項目,和w個女子項目。項目編號為男子1……m,女子m+1……m+w。不同的項目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學生自己設定。(m<=20,n<=20)基本要求:.可以輸入各個項目的前三名或前五名的成績;.能統(tǒng)計各系總分,.可以按系編號、系總分、男女團體總分排序輸出;.可以按系編號查詢系某個項目的情況;可以按項目編號查詢?nèi)〉们叭蚯拔迕南?。測試數(shù)據(jù)《1》輸入:1進入添加系的界面,根據(jù)提示,再輸入:汽車系。再輸入:8,成功添加了一個系。再輸入:2進入運動項目添加界面,根據(jù)提示,再輸入:跳高;1;0;1;2;3。之后輸入0。再次進入系統(tǒng)界面?!?》輸入:3查看輸出結果?!?》:輸入:4查看輸出結果?!?》:輸入:5查看輸出結果?!?》:輸入:6查看輸出結果。《6》:輸入:7根據(jù)提示輸入項目編號:2。查看輸出結果。《7》:輸入:8根據(jù)提示輸入系編號:3。查看輸出結果。二、概要設計數(shù)據(jù)結構<1>系:名稱,編號,男子團體總分,女子固體總分。<2>運動項目:項目編號,名稱,男子項目,女子項目,前三名,前五名,第一名系的編號,第二名系的編號,第三名系的編號,第四名系的編號,第五名系的編號。程序模塊及之間的調(diào)用關系流程圖工按系別標號查詢退出〃系的結構〃系的名稱〃系的編號〃男子團體總分//女子團體總分}Department;〃運動項目結構〃運動項目名稱//0為女項目,1為男項目〃系的結構〃系的名稱〃系的編號〃男子團體總分//女子團體總分}Department;〃運動項目結構〃運動項目名稱//0為女項目,1為男項目//0為取前五名,1為取前五名〃項目編號〃第一名系的編號〃第二名系的編號〃第三名系的編號〃第四名系的編號typedefstructDepartment{charname[20];intnumber;intboy;intgirl;Department*next;運動項目定義:typedefstructSport{charname[20];intisboy;intis3;intnumber;intfirst;intsecond;intthird;intfourth;intfifth;〃第五名系的編號Sport*next;}Sport;、2、函數(shù)之間的調(diào)用關系(1)系調(diào)用圖<1>Departmentdepartment_adddepartment_Orderdepartment_searchdepartment_addmarkdepartment_showdepartment_isexistdepartment_outputdepartment_readdepartment_writedepartment_getlong<1>Department<2>Sport—3、算法設計
sport_isexistsport_addsport_getlongsport_writesport_readsport_outputsport_search主要算法的設計思想:本程序主要是使用鏈表來實現(xiàn)操作。一個運動會包括運動項目和參加運動會的成員。因此構造兩個鏈表Department,Sport。為了操作的方便,并且能夠保存輸入數(shù)據(jù),所以通過文件操作來實現(xiàn)數(shù)據(jù)的寫和讀。每次添加新的數(shù)據(jù)后都要輸入0退出,數(shù)據(jù)才能保存。對于總分的排序使用了冒泡排序。為了使整個程序看起來更加友好,又添加了程序啟動畫面。四、調(diào)試分析本程序相對來說比較容易看明白,其中涉及到的一些函數(shù)相對來說比較容易。通過調(diào)試,運行,基本上達到了要求,但還存在一些缺點。如:不夠人性化等。五、測試結果<1>多組數(shù)據(jù)輸入與輸出:
SportDataReadSuccess?DepartmentDataReadSuccess?.oO歡迎使用運動會分數(shù)統(tǒng)計系統(tǒng)Oo,■K*-,.輸入系別;2.輸入運動項目-:3.按系別編號輸出總分;4.按總分排序;:■M*-5.按男團體總分排序;6.按女團體總分排序;**7?按項目編號查詢;8?按系別編號查詢;*■KM?。.退.出*■M*-提示:需先輸入系別后才能輸入運動項目-■M*…?…寫言丁概品不至羋:(1)輸入:3輸出:系名編號男團總分女團總分總分法律系6000電子系5325醇系4606歷史系39716中文系2151126計算機系1211132旅游系7077(2)輸入:4輸出:系名編號男團總分女團總分總分法律系6000電子系5325數(shù)學系4606旅游系7077歷史系39716中文系2151126計算機系1211132(3)輸入:5輸出:法律系6000電子系5325數(shù)學系4606旅游系7077歷史系39716中文系2151126計算機系1211132(4)輸入:6輸出:法律系6000電子系5325數(shù)學系4606旅游系7077歷史系39716中文系2151126計算機系1211132(5)輸入:7輸出:請輸入項目編號:輸入:1回車輸出:項目名:100m項目類型:女子項目第一名:計算機系第二名:中文系第三名:法律系第四名:無第五名:無(6)輸入:8輸出:請輸入系的編號:再輸入2則輸出:系名:中文系男子團體總分:3女子團體部分:10總分:13(7)輸入:0退出六、用戶手冊1、運行環(huán)境Windows,VC++6.02、用戶界面????????OOOO程序讀取中請耐心等待75XLoading程序設計員泅s計本4班李濤沈曉森陳秀華4、操作過程用戶進入程序啟動界面,等load完成后進入主菜單.主菜單有以下9個選項輸入系別輸入運動項目按系別編號輸出總分按總分排序按男團體總分排序按女團體總分排序按項目編號查詢按系別編號查詢0.退出輸入0?8中的一個數(shù)輸入1,進行添加系操作,分別輸入系的名稱和編號輸入2,進行添加運動項目操作,分別輸入項目名稱,編號,項目類型,名次選取,排名情況輸入0,則退出系統(tǒng),并且保存輸入的信息.每次添加完都要輸入0退出系統(tǒng)才有效輸入3,輸出按系編號總分排名.輸入4,輸出按總分排名輸入5,輸出按男團體總分排序輸入6,輸出按女團體總分排序輸入7,進入按項目編號查詢界面.輸入要查詢的項目編號輸入8,進入按系別編號查詢界面,輸入要查詢的系的編號七、參考文獻【1】《C++程序設計》作者:鄭莉,董淵,張瑞豐出版社:清華大學出版社時間:2003/12【2】《數(shù)據(jù)結構》作者:嚴蔚敏,吳偉民出版社:清華大學出版社時間:2006/10【3】《數(shù)據(jù)結構教程上機實驗指導》作者:嚴蔚敏吳偉民,米寧出版社:清華大學出版社時間:2006/5【4】網(wǎng)址:八、附錄1、源程序#include<iostream.h>#include<iomanip.h>#include<string.h>#include<fstream.h>#include<stdlib.h>#include<ctype.h>#include<stdio.h>#include<conio.h>typedefstructDepartment{charname[20];intnumber;intboy;intgirl;Department*next;typedefstructSport{charname[20];intisboy;intis3;intnumber;intfirst;intsecond;intthird;intfourth;intfifth;Sport*next;}Sport;intgetint(inta){return(int)(a-'0');}Department*head1;//啟動畫面函數(shù)voidCover()〃系的結構〃系的名稱〃系的編號//男子團體總分〃女子團體總分}Department;〃運動項目結構〃運動項目名稱//0為女項目,1為男項目//0為取前五名,1為取前五名〃項目編號〃第一名系的編號〃第二名系的編號〃第三名系的編號〃第四名系的編號〃第五名系的編號〃字符轉換成數(shù)字{system("color1b");charline[]={"程序讀取中charbar[]={"...."};請耐心等待..."};inti,j,k=0,x=0,y=0;for(i=0;i<=strlen(line)/2;){system("cls");for(j=0;j<9;j++)〃改變行坐標cout<<endl;for(j=0;j<(75-strlen(line))/2;j++)//改變列坐標cout<<"";for(j=1;j<=i;j++)〃進度顯示器cout<<"?";for(x=strlen(line)/2;x>i;x--)cout<<"O";if(k==4)i++;cout<<endl;for(j=0;j<(75-strlen(line))/2;j++)〃行坐標定位cout<<"";cout<<line;〃輸出線條cout<<endl;for(j=0;j<(65-strlen(bar))/2;j++)cout<<"";cout<<(i+7)*5<<"%Loading";cout.write(bar,k);cout<<endl;for(j=0;j<10;j++)cout<<endl;for(j=0;j<24;j++)cout<<"";cout<<"程序設計員:05計本4班李濤沈曉霖陳秀華"<<endl;for(j=0;j<24;j++)cout<<"";for(j=0;j<=18;j++)cout<<"—";cout<<endl;for(j=0;j<10000000;j++);//延時效果k++;if(k>4)k=0;}}voiddepartment_add()〃添加系{Department*p;intmark=0;p=newDepartment;cout<<"請輸入系的名稱:";cin>>p->name;charc;while(mark!=1){cout<<"請輸入系的編號:";cin>>c;if(!isdigit(c))//是否為數(shù)字{cout<<"數(shù)據(jù)非法"<<endl;}else{mark=1;p->number=c;}}p->boy=0;p->girl=0;p->next=head1->next;head1->next=p;cout<<"成功添加了一個系"<<endl;}intdepartment_getlong(Department*first)〃得到鏈表長度{inti=0;while(first->next!=NULL){i++;first=first->next;}returni;}voiddepartment_write()//將系數(shù)據(jù)寫入文本{Department*p;p=head1;p=p->next;ofstreamoutfile("Department.txt”,ios::out);outfile<<department_getlong(p)+1<<"";while(p!=NULL){outfile<<p->name<<""<<p->number<<""<<p->boy<<""<<p->girl<<"";p=p->next;}outfile.close();cout<<"WriteSuccess!"<<endl;}voiddepartment_read()//從文本讀入系數(shù)據(jù){inti;ifstreaminfile("Department.txt”,ios::in);infile>>i;while(i>0){Department*p;p=newDepartment;infile>>p->name>>p->number>>p->boy>>p->girl;p->next=head1->next;head1->next=p;i--;}cout<<"DepartmentDataReadSuccess!"<<endl;}voiddepartment_output(Department*p)//輸出系{cout<<"系名編號男團總分女團總分總分\t\n";while(p){cout<<p->name<<"\t"<<getint(p->number)<<"\t"<<p->boy<<"\t"<<p->girl<<"\t"<<(p->girl+p->boy)<<endl;p=p->next;}}intdepartment_isexist(inta)//檢驗系是否存在{intb=0;Department*p;p=head1;p=p->next;while(p){if(p->number==a){return1;}p=p->next;}return0;}voiddepartment_show(inta)//輸出所有系{Department*p;p=head1;p=p->next;while(p){if(p->number==a){cout<<p->name<<"";return;}p=p->next;}cout<<"無";}voiddepartment_search(inta)//按編號搜索系{Department*p;p=head1;p=p->next;while(p){if(p->number==a){cout<<"系名:"<<p->name<<""<<"男子團體總分:"<<p->boy<<""<<"女子團體總分:"<<p->girl<<""<<"總分:"<<(p->boy+p->girl)<<"";return;}p=p->next;}cout<<"無此編號";}^、口_voiddepartment_addmark(inta,intb,intc)//a為分數(shù),b為系編號,c=1表示男,c=0表示女{Department*p;p=head1;p=p->next;while(p){if(p->number==b){if(c=='1'){p->boy=p->boy+a;}else{p->girl=p->girl+a;}}p=p->next;}}voiddepartment_order(Department*temp,inttype)//type=0按總分,type=1按男總分,type=2按女總分,{Department*p,*q,*small,*temp1;temp1=newDepartment;temp1->next=NULL;p=temp;while(p){small=p;q=p->next;while(q){switch(type){case0:if((q->boy+q->girl)<(small->girl+small->boy)){small=q;}break;case1:if(q->boy<small->boy){small=q;}break;case2:if(q->girl<small->girl){small=q;}break;default:cout<<"error"<<endl;}if(small!=p){temp1->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->name);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;intsport_isexist(inta)〃檢查運動項目(編號)是否已經(jīng)存在{intb=0;Sport*p;p=head2;p=p->next;while(p){if(p->number==a){return1;}p=p->next;return0;}voidsport_add()〃添加項目{Sport*p;intmark=0;p=newSport;cout<<"請輸入項目名稱:";cin>>p->name;charc;while(mark!=1){cout<<"請輸入項目編號:";cin>>c;if(!isdigit(c)){cout<<"數(shù)據(jù)非法"<<endl;}else{if(sport_isexist(c)){cout<<"該編號已存在"<<endl;}else{mark=1;p->number=c;}}}mark=0;while(mark!=1){cout<<"請輸入項目類型(0為女子項目,1為男子項目):";cin>>c;p->isboy=(int)(c-'0');//字符轉換成數(shù)字if(!isdigit(c)){cout<<"數(shù)據(jù)非法"<<endl;}elseif(p->isboy<0||p->isboy>1){cout<<"數(shù)據(jù)非法"<<endl;}else{mark=1;p->isboy=c;}}mark=0;while(mark!=1){cout<<"請輸入項目名次情況(0為取前3名,1為取前5名):";cin>>c;p->is3=(int)(c-'0');if(!isdigit(c)){cout<<"數(shù)據(jù)非法"<<endl;}elseif(p->is3<0||p->is3>1){cout<<"數(shù)據(jù)非法"<<endl;}else{mark=1;p->is3=c;}}mark=0;while(mark!=1){cout<<"請輸入第一名的系的編號:";cin>>c;if(!isdigit(c)){cout<<"數(shù)據(jù)非法"<<endl;}else{if(!department_isexist(c)){cout<<"該系不存在,請先添加";}else{mark=1;p->first=c;if(p->is3=='0')department_addmark(5,c,p->isboy);elsedepartment_addmark(7,c,p->isboy);}}}mark=0;while(mark!=1){cout<<"請輸入第二名的系的編號:";cin>>c;if(!isdigit(c)){cout<<"數(shù)據(jù)非法"<<endl;}else{if(!department_isexist(c)){cout<<"該系不存在,請先添加";}else{mark=1;p->second=c;if(p->is3=='0')department_addmark(3,c,p->isboy);elsedepartment_addmark(5,c,p->isboy);}}}mark=0;while(mark!=1){cout<<"請輸入第三名的系的編號:";cin>>c;if(!isdigit(c)){cout<<"數(shù)據(jù)非法"<<endl;else{if(!department_isexist(c)){cout<<"該系不存在,請先添加";}else{mark=1;p->third=c;if(p->is3=='0')department_addmark(2,c,p->isboy);elsedepartment_addmark(3,c,p->isboy);}}}mark=0;if(p->is3=T){while(mark!=1){cout<<"請輸入第四名的系的編號:";cin>>c;if(!isdigit(c)){cout<<"數(shù)據(jù)非法"<<endl;}else{if(!department_isexist(c)){cout<<"該系不存在,請先添加";}else{mark=1;p->fourth=c;department_addmark(2,c,p->isboy);}}}mark=0;while(mark!=1){cout<<"請輸入第五名的系的編號:";cin>>c;if(!isdigit(c)){cout<<"數(shù)據(jù)非法"<<endl;}else{if(!department_isexist(c)){cout<<"該系不存在,請先添加"<<endl;}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;cout<<"成功添加了一個運動項目"<<endl;}intsport_getlong(Sport*first)〃得到項目鏈表長度{inti=0;while(first->next!=NULL){i++;first=first->next;}returni;}voidsport_write()//將項目數(shù)據(jù)寫入文本文檔{Sport*p;
p=head2;p=p->next;ofstreamoutfile("Sport.txt”,ios::out);outfile<<sport_getlong(p)+1<<"”;while(p!=NULL){outfile<<p->name<<""<<p->number<<""<<p->isboy<<""<<p->is3<<""<<p->first<<""<<p->second<<""<<p->third<<""<<p->fourth<<""<<p->fifth<<""-;p=p->next;}outfile.close();cout<<"WriteSuccess!"<<endl;}voidsport_read()//從文本讀取項目數(shù)據(jù){inti;ifstreaminfile("Sport.txt”,ios::in);infile>>i;while(i>0){Sport*p;p=newSport;infile>>p->name>>p->number>>p->isboy>>p->is3>>p->first>>p->second>>p->third>>p->fourth>>p->fifth;p->next=head2->next;head2->next=p;i--;cout<<"SportDataReadSuccess!"<<endl;//輸出項目的情況"<<"B/G"<<""<<"3/5"<<""<<"third"<<"http://輸出項目的情況"<<"B/G"<<""<<"3/5"<<""<<"third"<<""<<"fourth"<<"cout<<"name"<<"\t"<<"Num"<<""<<"first"<<""<<"second"<<""<<"fifth"<<""<<endl;while(p){cout<<p->name<<"\t"<<""<<getint(p->number)<<<<getint(p->isboy)<<"<<getint(p->is3)<<"<<"";department_show(p->first);department_show(p->second);department_show(p->third);
department_show(p->fourth);department_show(p->fifth);//printf("\n");p=p->next;<<getint(p->isboy)<<"<<getint(p->is3)<<"<<"";}cout<<endl;}voidsport_search(inta)〃搜索項目{Sport*p;p=head2;p=p->next;while(p){if(p->number==a){cout<<"項目名:"<<p->name<<endl<<"項目類型:";if(p->isboy==1){cout<<"男子項目";}else{cout<<"女子項目";}cout<<endl<<"第一名:";department_show(p->first);cout<<endl<<"第二名:";department_show(p->second);cout<<endl<<"第三名:";department_show(p->third);cout<<endl<<"第四名:";department_show(p->fourth);cout<<endl<<"第五名:";department_show(p->fifth);return;}p=p->next;}cout<<"無此編號";//運動會程序主函數(shù)}voidmain(){//運動會程序主函數(shù)system("color2b");〃改變背景,前景色head1=newDepartment;head1->next=NULL;head2=newSport;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;charchoose;chartemp;//stringch="";inta=1;while(a!=0){cout<<endl;cout<<".oO歡迎使用運動會分數(shù)統(tǒng)計系統(tǒng)Oo."<<endl;cout<<"cout<<"**"<<endl;cout<<"*1.輸入系別;2.輸入運動項目*"<<endl;cout<<"*"<<endl;cout<<"*3.按系別編號輸出總分;*4.按總分排序;*"<<endl;cout<<"*"<<endl;cout<<"*5.按男團體總分排序;*6.按女團體總分排序;*"<<endl;cout<<"*"<<endl;cout<<"*7.按項目編號查詢;*8.按系別
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ic芯片購銷合同范本
- 制動氣室市場分析及競爭策略分析報告
- 石油醚乙二醇乙醚市場分析及競爭策略分析報告
- 血液凈化耗材產(chǎn)業(yè)分析報告
- 住宅贈送露臺合同范本
- 中國的傳統(tǒng)節(jié)日教學反思
- 高壓電工作業(yè)考試模擬題及答案
- 去里合同范例
- 公司授權簽約合同范本
- 危運勞務合同范本
- 一年級美術課后輔導方案-1
- 新法律援助基礎知識講座
- 《鍛造安全生產(chǎn)》課件
- 小學數(shù)學1-6年級(含奧數(shù))找規(guī)律專項及練習題附詳細答案
- 《同濟大學簡介》課件
- 《建筑攝影5構》課件
- 機電安裝工程質(zhì)量控制
- 愛自己是終身浪漫的開始 心理課件
- 新房房屋買賣合同
- 地鐵出入口雨棚施工工藝
- 人工智能引論智慧樹知到課后章節(jié)答案2023年下浙江大學
評論
0/150
提交評論