C++課程設計報告 運動會分數(shù)統(tǒng)計系統(tǒng)_第1頁
C++課程設計報告 運動會分數(shù)統(tǒng)計系統(tǒng)_第2頁
C++課程設計報告 運動會分數(shù)統(tǒng)計系統(tǒng)_第3頁
C++課程設計報告 運動會分數(shù)統(tǒng)計系統(tǒng)_第4頁
C++課程設計報告 運動會分數(shù)統(tǒng)計系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C+課程設計報告運動會分數(shù)統(tǒng)計系統(tǒng)運動會分數(shù)統(tǒng)計系統(tǒng)學校:太原科技大學班級:計算機07XXXX班姓名:XXX學號:20072001XXXX需求分析1問題描述運動會分數(shù)統(tǒng)計系統(tǒng)參加運動會有n個系,系編號為1n。比賽分成m個男子項目,和w個女子項目。項目編號為男子1m,女子m+1m+w。不同的項目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學生自己設定。(mv=20,nv=20)基本要求:.可以輸入各個項目的前三名或前五名的成績;.能統(tǒng)計各系總分,.可以按系編號、系總分、男女團體總分排序輸出;.可以按系編號查詢系某個項目的情

2、況;可以按項目編號查詢取得前三或前五名的系。測試數(shù)據(jù)1輸入:1進入添加系的界面,根據(jù)提示,再輸入:汽車系。再輸入:8,成功添加了一個系。再輸入:2進入運動項目添加界面,根據(jù)提示,再輸入:跳咼;1;0;1;2;3。之后輸入0。再次進入系統(tǒng)界面。2輸入:3查看輸出結果。3:輸入:4查看輸出結果。4:輸入:5查看輸出結果。5:輸入:6查看輸出結果。6:輸入:7根據(jù)提示輸入項目編號:2。查看輸出結果。7:輸入:8根據(jù)提示輸入系編號:3。查看輸出結果。二、概要設計數(shù)據(jù)結構系:名稱,編號,男子團體總分,女子固體總分。運動項目:項目編號,名稱,男子項目,女子項目,前三名,前五名,第一名系的編號,第二名系的編

3、號,第三名系的編號,第四名系的編號,第五名系的編號。2程序模塊及之間的調用關系流程圖流程圖流程圖流程圖系的結構系的結構系的名稱系的編號男子團體總分女子團體總分Department;運動項目結構運動項目名稱0為女項目,1為男項目0為取前五名,1為取前五名項目編號第一名系的編號第二名系的編號第三名系的編號第四名系的編號三、詳細設計1、數(shù)據(jù)類型定義系的定義:typedefstructDepartmentcharname20;intnumber;intboy;intgirl;Department*next;運動項目定義:typedefstructSportcharname20;intisboy;int

4、is3;intnumber;intfirst;intsecond;intthird;intfourth;intfifth;第五名系的編號Sport*next;Sport;、2、函數(shù)之間的調用關系(1)系調用圖DepartmentDepartmentSport3、算法設計sport_isexistsport_addsport_getlongsport_writesport_readsport_outputsport_search主要算法的設計思想:本程序主要是使用鏈表來實現(xiàn)操作。一個運動會包括運動項目和參加運動會的成員。因此構造兩個鏈表Department,Sport。為了操作的方便,并且能夠保

5、存輸入數(shù)據(jù),所以通過文件操作來實現(xiàn)數(shù)據(jù)的寫和讀。每次添加新的數(shù)據(jù)后都要輸入0退出,數(shù)據(jù)才能保存。對于總分的排序使用了冒泡排序。為了使整個程序看起來更加友好,又添加了程序啟動畫面。四、調試分析本程序相對來說比較容易看明白,其中涉及到的一些函數(shù)相對來說比較容易。通過調試,運行,基本上達到了要求,但還存在一些缺點。如:不夠人性化等。五、測試結果多組數(shù)據(jù)輸入與輸出:程序設計員:05計本4班李濤沈曉霖陳秀華SportDataReadSuccess?DepartmentDataReadSuccess!.oO歡迎使用運動會分數(shù)統(tǒng)計系統(tǒng)0。.HMK1輸入系別;2.輸入運動項目M3-按系別編號輸岀總分;4-按總

6、分排序;K*5按男團體總分搟序;6.按女團體總分排序;K?-按項目編號查詢;8-按系別編號查詢;M0-退出M-MK提示:需先輸入系別后才能輸入運動項目MM*請選擇:梆鬲五笙半:(1)輸入:3輸出:系名編號男團總分女團總分總分法律系6000電子系5325數(shù)學系4606歷史系39716中文系2151126計算機系1211132旅游系7077(2)輸入:4輸出:系名編號男團總分女團總分總分法律系6000電子系5325數(shù)學系4606旅游系7077歷史系39716中文系2151126計算機系1211132(3)輸入:5輸出:法律系6000電子系5325數(shù)學系4606旅游系7077歷史系39716中文系2

7、151126計算機系1211132(4)輸入:6輸出:法律系6000電子系5325數(shù)學系4606旅游系7077歷史系39716程序設計員程序設計員:計本4班李濤沈曉霖陳秀華程序設計員程序設計員:計本4班李濤沈曉霖陳秀華中文系2151126計算機系1211132(5)輸入:7輸出:請輸入項目編號:輸入:1回車輸出:項目名:100m項目類型:女子項目第一名:計算機系第二名:中文系第三名:法律系第四名:無第五名:無(6)輸入:8輸出:請輸入系的編號:再輸入2則輸出:系名:中文系男子團體總分:3女子團體部分:10總分:13(7)輸入:0退出六、用戶手冊1、運行環(huán)境Windows,VC+6.02、用戶界

8、面OOOO程序讀取中請耐心等特75XLoading程序設計員:跖計本程序設計員:跖計本4班李濤沈曉霖陳秀華程序設計員:跖計本程序設計員:跖計本4班李濤沈曉霖陳秀華SportDataReadSuccess?Depai*tnwntDataReadSuccess?oO歡迎使用運動會分數(shù)統(tǒng)計系統(tǒng)0。.1-輸入系別;2-輸入運動項目:3.按系別編號輸岀總分;4.按總分排序;5.按男團體總分排序;6.按女團體總分排序;?-按項目編號查詢;8-按系別編號查詢;0.退岀提示:需先輸入系別后才能輸入運動項目請選擇:4、操作過程用戶進入程序啟動界面,等load完成后進入主菜單主菜單有以下9個選項1.輸入系別2輸入

9、運動項目按系別編號輸出總分4按總分排序5按男團體總分排序6按女團體總分排序按項目編號查詢按系別編號查詢0.退出輸入08中的一個數(shù)輸入1,進行添加系操作,分別輸入系的名稱和編號輸入2,進行添加運動項目操作,分別輸入項目名稱,編號,項目類型,名次選取,排名情況輸入0,則退出系統(tǒng),并且保存輸入的信息.每次添加完都要輸入0退出系統(tǒng)才有效輸入3,輸出按系編號總分排名.輸入4,輸出按總分排名輸入5,輸出按男團體總分排序輸入6,輸出按女團體總分排序輸入7,進入按項目編號查詢界面輸入要查詢的項目編號輸入8,進入按系別編號查詢界面,輸入要查詢的系的編號七、參考文獻【1】C+程序設計作者:鄭莉,董淵,張瑞豐出版社

10、:清華大學出版社時間:2003/12【2】數(shù)據(jù)結構作者:嚴蔚敏,吳偉民出版社:清華大學出版社時間:2006/10【3】數(shù)據(jù)結構教程上機實驗指導作者:嚴蔚敏吳偉民,米寧出版社:清華大學出版系的結構系的名稱系的結構系的名稱系的編號男子團體總分女子團體總分Department;運動項目結構運動項目名稱0為女項目,1為男項目0為取前五名,1為取前五名項目編號第一名系的編號第二名系的編號第三名系的編號第四名系的編號第五名系的編號字符轉換成數(shù)字社時間:2006/5【4】網(wǎng)址:八、附錄1、源程序#includeviostream.h#includeviomanip.h#includevstring.h#in

11、cludevfstream.h#includevstdlib.h#includevctype.h#includevstdio.h#includevconio.htypedefstructDepartmentcharname20;intnumber;intboy;intgirl;Department*next;typedefstructSportcharname20;intisboy;intis3;intnumber;intfirst;intsecond;intthird;intfourth;intfifth;Sport*next;Sport;intgetint(inta)return(int)

12、(a-O);Department*head1;/啟動畫面函數(shù)voidCover()system(color1b);charline=程序讀取中charbar=.;inti,j,k=O,x=O,y=O;for(i=0;iv=strlen(line)/2;)system(cls);for(j=0;jv9;j+)改變行坐標coutvvendl;for(j=0;jv(75-strlen(line)/2;j+)/改變列坐標coutvv;for(j=1;ji;x-)coutvvO;if(k=4)i+;coutvvendl;for(j=0;jv(75-strlen(line)/2;j+)行坐標定位coutv

13、v;coutvvline;輸出線條coutvvendl;for(j=0;jv(65-strlen(bar)/2;j+)coutvv;coutvv(i+7)*5vv%Loading;cout.write(bar,k);coutvvendl;for(j=0;jv10;j+)coutvvendl;for(j=0;jv24;j+)coutvv;coutvv程序設計員:05計本4班李濤沈曉霖陳秀華vvendl;for(j=0;jv24;j+)coutvv;for(j=0;jv=18;j+)coutvv;coutvvendl;for(j=0;jv10000000;j+);/延時效果k+;if(k4)k=0

14、;voiddepartment_add()添加系Department*p;intmark=O;p=newDepartment;coutvv請輸入系的名稱:;cinp-name;charc;while(mark!=l)coutvv請輸入系的編號:;cinc;f(!isdigit(c)是否為數(shù)字coutvv數(shù)據(jù)非法vvendl;elsemark=1;p-number=c;p_boy=0;p-girl=0;p-next=head1-next;head1-next=p;coutvv成功添加了一個系vvendl;intdepartment_getlong(Department*first)得到鏈表長度i

15、nti=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);outfilevvdepartment_getlong(p)+1vv;while(p!=NULL)outfilevvp-namevvvvp-numbervvvvp-boyvvvvp-girlvv;p=p_next;outfile.close();coutvvWriteSuccess!

16、vvendl;+_voiddepartment_read()從文本讀入系數(shù)據(jù)inti;ifstreaminfile(Department.txt,ios:in);infilei;while(i0)Department*p;p=newDepartment;infilep-namep-numberp-boyp-girl;p-next=headl-next;headl-next=p;i-;coutvvDepartmentDataReadSuccess!vvendl;voiddepartment_output(Department*p)輸出系總分tn;總分tn;coutvv系名編號男團總分女團總分wh

17、ile(p)coutvvp-namevvtvvgetint(p-number)vvtvvp-boyvvtvvp-girlvvtvv(p-girl+p-boy)vvendl;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

18、vvp-namevv;return;p=p-next;coutvv無;voiddepartment_search(inta)/按編號搜索系Department*p;p=head1;p=p-next;while(p)if(p-number=a)coutvv系名:vvp-namevvboyvvgirlvvvv總分:vv(p-boy+p-girl)vv;return;p=p-next;coutvv無此編號;、口_voiddepartment_addmark(inta,intb,intc)/a為分數(shù),b為系編號,c=l表示男,c=0表示女Department*p;p=head1;p=p-next;wh

19、ile(p)if(p-number=b)if(c=T)p-boy=p-boy+a;elsep-girl=p-girl+a;p=p-next;voiddepartment_order(Department*temp,inttype)type=0按總分,type=1按男總分,type=2按女總分,Department*p,*q,*small,*templ;templ=newDepartment;temp1-next=NULL;p=temp;while(p)small=p;q=p-next;while(q)switch(type)case0:if(q-boy+q-girl)v(small-girl+

20、small-boy)small=q;break;case1:if(q-boyvsmall-boy)small=q;break;case2:if(q-girlvsmall-girl)small=q;break;default:coutvverrorvvendl;if(small!=p)templ-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-na

21、me);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=new

22、Sport;coutvv請輸入項目名稱:;cinp-name;charc;while(mark!=1)coutvv請輸入項目編號:;cinc;f(!isdigit(c)coutvv數(shù)據(jù)非法vvendl;elseif(sport_isexist(c)coutvv該編號已存在vvendl;elsemark=1;p-number=c;mark=0;while(mark!=1)coutvv請輸入項目類型(0為女子項目,1為男子項目):;cinc;p-isboy=(int)(c-0);字符轉換成數(shù)字f(!isdigit(c)coutvv數(shù)據(jù)非法vvendl;elseif(p-isboyv0llp-isb

23、oy1)coutvv數(shù)據(jù)非法vvendl;elsemark=l;p-isboy=c;mark=0;while(mark!=1)coutvv請輸入項目名次情況(0為取前3名,1為取前5名):;cinc;p-is3=(int)(c-0);f(!isdigit(c)coutvv數(shù)據(jù)非法vvendl;elseif(p-is3v0llp-is31)coutvv數(shù)據(jù)非法vvendl;elsemark=1;p-is3=c;mark=0;while(mark!=1)coutvv請輸入第一名的系的編號:;cinc;f(!isdigit(c)coutvv數(shù)據(jù)非法vvendl;elseif(!department_

24、isexist(c)coutvv該系不存在,請先添加;elsemark=l;p-first=c;if(p-is3=O)department_addmark(5,c,p-isboy);elsedepartment_addmark(7,c,p-isboy);mark=0;while(mark!=1)coutvv請輸入第二名的系的編號:;cinc;訐(!isdigit(c)coutvv數(shù)據(jù)非法vvendl;elseif(!department_isexist(c)coutvv該系不存在,請先添加;elsemark=1;p-second=c;if(p-is3=0)department_addmark(

25、3,c,p-isboy);elsedepartment_addmark(5,c,p-isboy);mark=0;while(mark!=1)coutvv請輸入第三名的系的編號:;cinc;訐(!isdigit(c)coutvv數(shù)據(jù)非法vvendl;elseif(!department_isexist(c)coutvv該系不存在,請先添加;elsemark=1;p-third=c;if(p-is3=O)department_addmark(2,c,p-isboy);elsedepartment_addmark(3,c,p-isboy);mark=0;if(p-is3=T)while(mark!=

26、1)coutvv請輸入第四名的系的編號:;cinc;訐(!isdigit(c)coutvv數(shù)據(jù)非法vvendl;elseif(!department_isexist(c)coutvv該系不存在,請先添加;elsemark=1;p-fourth=c;department_addmark(2,c,p-isboy);mark=0;while(mark!=1)coutvv請輸入第五名的系的編號:;cinc;f(!isdigit(c)coutvv數(shù)據(jù)非法vvendl;elseif(!department_isexist(c)coutvv該系不存在,請先添加vvendl;elsemark=1;p_fift

27、h=c;department_addmark(l,c,p-isboy);elsep-fourth=0;p-fifth=0;p-next=head2-next;head2-next=p;coutvv成功添加了一個運動項目vvendl;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);

28、outfilevvsport_getlong(p)+lvv;while(p!=NULL)outfilevvp-namevvnumberisboyvvvvp-is3vvvvp-firstvvvvp-secondvvvvp-thirdvvvvp-fourthvvvvp-fifthvv3p=p-next;outfile.close();coutvvWriteSuccess!vvendl;/從文本讀取項目數(shù)據(jù)/從文本讀取項目數(shù)據(jù)voidsport_read()inti;ifstreaminfile(Sport.txt,ios:in);infilei;while(i0)Sport*p;p=newSpor

29、t;infilep-namep-numberp-isboyp-is3p-firstp-secondp-thirdp-fourthp-fifth;p-next=head2-next;head2-next=p;i-;coutvvSportDataReadSuccess!vvendl;voidsport_output(Sport*p)coutvvnamevvtvvNumvvp-namep-numberp-isboyp-is3p-firstp-secondp-thirdp-fourthp-fifth;p-next=head2-next;head2-next=p;i-;coutvvSportDataRe

30、adSuccess!vvendl;voidsport_output(Sport*p)coutvvnamevvtvvNumvvvvsecondvvvvendl;/輸出項目的情況vvB/Gvvvvthirdvv!firstvvfifthvvwhile(p)coutvvisboy)vvvvgetint(p-is3)vvdepartment_show(p-first);department_show(p-second);department_show(p-third);p-namevvt!number)vvfourth);department_show(p-fifth);printf(n);p=p-n

31、ext;coutvvn;coutvvendl;voidsport_search(inta)搜索項目Sport*p;p=head2;p=p-next;while(p)if(p-number=a)coutvv項目名:vvp-namevvendlvv項目類型:;if(p-isboy=l)coutvv男子項目;elsecoutvv女子項目;coutvvendlvv第一名:;department_show(p-first);coutvvendlvv第二名:;department_show(p-second);coutvvendlvv第三名:;department_show(p-third);coutvv

32、endlvv第四名:;department_show(p-fourth);coutvvendlvv第五名:;department_show(p-fifth);return;p=p-next;coutvv無此編號;_voidmain()/運動會程序主函數(shù)Cover();system(color2b);改變背景,前景色headl=newDepartment;headl-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)coutvvendl;coutvv.oO歡迎使用運動會分數(shù)統(tǒng)計系統(tǒng)Oo.vvendl;coutvvvvendl;coutv

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論