




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄一課程設(shè)計(jì)目標(biāo).....................................1二課程設(shè)計(jì)任務(wù)和內(nèi)容..............................1三系統(tǒng)設(shè)計(jì)方案....................................23.1系統(tǒng)具體描述..................................23.1.1系統(tǒng)設(shè)計(jì)背景.............................23.1.2系統(tǒng)設(shè)計(jì)具體信息.........................23.2功效模塊劃分..................................23.2.1功效模塊描述.............................23.2.2輸入項(xiàng)...................................43.2.3輸出項(xiàng)...................................4四系統(tǒng)實(shí)現(xiàn)和測(cè)試...................................44.1主菜單實(shí)現(xiàn)....................................54.1.1步驟圖...................................54.1.2代碼.....................................64.1.3主菜單測(cè)試...............................74.2查詢模塊實(shí)現(xiàn)..................................74.2.1步驟圖...................................74.2.2代碼.....................................84.2.3模塊測(cè)試.................................114.3顯示數(shù)據(jù)模塊實(shí)現(xiàn)..............................124.3.1步驟圖...................................124.3.2代碼.....................................134.3.3模塊測(cè)試.................................154.4文件輸出模塊..................................164.4.1代碼.....................................164.4.2模塊測(cè)試.................................174.5顯示排名模塊..................................174.5.1步驟圖...................................174.5.2代碼.....................................184.5.3模塊測(cè)試.................................19五程序調(diào)試及錯(cuò)誤....................................19六參考文件..........................................20七附錄..............................................20
一、課程設(shè)計(jì)目標(biāo)學(xué)習(xí)綜合利用C高級(jí)語(yǔ)言課程和其它先修課程知識(shí),提升分析和處理實(shí)際問(wèn)題能力,深入鞏固、加深和拓寬所學(xué)知識(shí);深入加強(qiáng)結(jié)構(gòu)化程序設(shè)計(jì)思想,加深對(duì)高級(jí)語(yǔ)言基礎(chǔ)語(yǔ)言要素和控制結(jié)構(gòu)了解。全方面系統(tǒng)學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)概念、基礎(chǔ)語(yǔ)法和編程方法;獨(dú)立完成有一定工作量程序設(shè)計(jì)任務(wù),同時(shí)強(qiáng)調(diào)好程序設(shè)計(jì)風(fēng)格。掌握程序設(shè)計(jì)中常見(jiàn)算法和C語(yǔ)言編程技巧和上機(jī)調(diào)試程序方法。在參與一系列子項(xiàng)目標(biāo)實(shí)踐過(guò)程中,提升怎樣綜合利用所學(xué)知識(shí)處理實(shí)際問(wèn)題能力,和取得相關(guān)項(xiàng)目管理和團(tuán)體合作等眾多方面具體經(jīng)驗(yàn)。二、課程設(shè)計(jì)任務(wù)和內(nèi)容根據(jù)以下要求,利用C++語(yǔ)言,編寫一套可用較為完善校際運(yùn)動(dòng)會(huì)管理系統(tǒng)軟件(兩人分模塊合作)要求:初始化輸入:學(xué)??倲?shù)及名字,運(yùn)動(dòng)員總數(shù)及運(yùn)動(dòng)員基礎(chǔ)信息,運(yùn)動(dòng)會(huì)項(xiàng)目(為方便測(cè)試暫定為男女分別為4項(xiàng),以項(xiàng)目一,項(xiàng)目二,項(xiàng)目三,項(xiàng)目四代表)各項(xiàng)目名次取法有以下多個(gè):取前五名:第一名7分,第二名5分,第三名3分,第四名2分,第五名1分;取前三名:第一名5分,第二名3分,第三名2分;用戶自定義。功效要求:(1)由程序提醒用戶填寫比賽接結(jié)果,輸入各項(xiàng)目參賽運(yùn)動(dòng)員運(yùn)動(dòng)員信息;(2)信息錄入完成后由系統(tǒng)為運(yùn)動(dòng)員、各個(gè)學(xué)校進(jìn)行排名;(3)全部信息統(tǒng)計(jì)完成后,用戶能夠查詢各個(gè)學(xué)校比賽成成績(jī)和排名,運(yùn)動(dòng)員比賽成績(jī)和排名;(4)最終還能對(duì)比賽信息輸出。注:我和網(wǎng)絡(luò)工程10班黃科榮同學(xué)合作,共同完成此次有相關(guān)校際運(yùn)動(dòng)會(huì)管理系統(tǒng)程序設(shè)計(jì)。我負(fù)責(zé)完成查詢模塊、數(shù)據(jù)顯示模塊、文件輸出模塊實(shí)現(xiàn)和顯示排名模塊。系統(tǒng)設(shè)計(jì)方案3.1系統(tǒng)具體描述3.1.1系統(tǒng)設(shè)計(jì)背景伴隨中國(guó)教育改革不停深入和大學(xué)生普及,大學(xué)里每十二個(gè)月全部會(huì)舉行運(yùn)動(dòng)會(huì),首先是為了激勵(lì)大學(xué)生主動(dòng)參與體育運(yùn)動(dòng),其次也是培養(yǎng)國(guó)家體育人才。在各個(gè)學(xué)校之間比賽時(shí),需要對(duì)運(yùn)動(dòng)會(huì)信息進(jìn)行整理,它包含到數(shù)據(jù)量之大,用單純手寫統(tǒng)計(jì)已經(jīng)不能滿足用戶需求,利用運(yùn)動(dòng)會(huì)管理系統(tǒng)立即了解各個(gè)步驟中信息變更,有利于提升管理效率。本項(xiàng)目作為《c++課程設(shè)計(jì)》課程訓(xùn)練項(xiàng)目提出,目標(biāo)是為了提升同學(xué)們系統(tǒng)開(kāi)發(fā),則提升大家實(shí)踐能力。所以開(kāi)發(fā)一個(gè)符合本身運(yùn)動(dòng)會(huì)實(shí)際情況工作平臺(tái)是十分必需。3.1.2系統(tǒng)設(shè)計(jì)具體信息系統(tǒng)使用對(duì)象定為由太原科技大學(xué),太原理工大學(xué),山西大學(xué),中北大學(xué)聯(lián)合舉行校際運(yùn)動(dòng)會(huì)。系統(tǒng)需要建立兩個(gè)結(jié)構(gòu)體學(xué)校和運(yùn)動(dòng)員。學(xué)校應(yīng)該包含學(xué)校名,學(xué)校代碼,學(xué)??偡趾蛯W(xué)校排名等信息;運(yùn)動(dòng)員則要包含姓名,性別,學(xué)校,比賽成績(jī),比賽名次和比賽成績(jī)等信息。系統(tǒng)就是要實(shí)現(xiàn)學(xué)校和運(yùn)動(dòng)員基礎(chǔ)信息輸入和輸出,還有查詢,最終再生成報(bào)表。3.2功效模塊劃分3.2.1功效模塊描述依據(jù)題目標(biāo)要求及系統(tǒng)功效能夠?qū)⑾到y(tǒng)分為學(xué)校信息錄入,學(xué)生信息錄入,成績(jī)錄入,查詢,顯示數(shù)據(jù),輸出文件,顯示排名七個(gè)模塊。各個(gè)模塊基礎(chǔ)介紹以下:學(xué)校信息錄入模塊:輸入學(xué)??倲?shù),對(duì)學(xué)校名字,代碼,成績(jī),排名等信息進(jìn)行初始化。學(xué)生信息錄入模塊:輸入學(xué)生總數(shù),對(duì)運(yùn)動(dòng)員姓名,性別,學(xué)校,成績(jī),排名,得分等信息進(jìn)行計(jì)算。成績(jī)錄入模塊:錄入運(yùn)動(dòng)員比賽成績(jī)由系統(tǒng)對(duì)運(yùn)動(dòng)員進(jìn)行排名和積分。查詢模塊:用戶能夠選擇運(yùn)動(dòng)員,學(xué)校,項(xiàng)目三種查詢方法。顯示數(shù)據(jù)模塊:顯示學(xué)校信息,運(yùn)動(dòng)員信息和得分規(guī)則。輸出文件模塊:將文件存放。顯示排名模塊:顯示學(xué)校排名和運(yùn)動(dòng)員排名。注:我關(guān)鍵負(fù)責(zé)查詢,顯示數(shù)據(jù),輸出文件,顯示排名四個(gè)模塊相關(guān)內(nèi)容,黃科榮同學(xué)負(fù)責(zé)編寫學(xué)校信息錄入,學(xué)生信息錄入,成績(jī)錄入三個(gè)模塊相關(guān)內(nèi)容,最終整體代碼由兩個(gè)人組合完成。校際運(yùn)動(dòng)會(huì)管理系統(tǒng)輸出文件顯示數(shù)據(jù)信息查詢輸出文件顯示數(shù)據(jù)信息查詢顯示排名運(yùn)動(dòng)員成績(jī)錄入學(xué)生信息錄入學(xué)校信息錄入運(yùn)動(dòng)員排名運(yùn)動(dòng)員排名學(xué)校信息運(yùn)動(dòng)員信息得分規(guī)則學(xué)校排名學(xué)校查詢項(xiàng)目查詢學(xué)生查詢學(xué)校信息運(yùn)動(dòng)員信息得分規(guī)則學(xué)校排名學(xué)校查詢項(xiàng)目查詢學(xué)生查詢圖3.1校際運(yùn)動(dòng)會(huì)管理系統(tǒng)功效模塊圖3.2.2輸入輸以下輸入項(xiàng)均為鍵盤輸入:得分規(guī)則選擇inta(1、2、3)選擇主菜單選項(xiàng)intn(1、2、3、4、5、6、7、8)學(xué)校個(gè)數(shù)intXN學(xué)校校名stringmingzi學(xué)校代號(hào)stringdaihao學(xué)生數(shù)量intSN學(xué)生姓名stringxingming學(xué)生性別boolxingbie參賽項(xiàng)目boolxiangmu[4]成績(jī)floatchengji選擇查詢方法inta(1、2、3、4)選擇顯示信息intl(1、2、3、4)選擇現(xiàn)實(shí)排名inta(1、2、3)3.2.3輸出項(xiàng)學(xué)校名次intmingci[4];學(xué)校校名stringmingzi學(xué)生姓名stringxingming學(xué)生性別boolxingbie參賽項(xiàng)目boolxiangmu[4]成績(jī)floatchengji單項(xiàng)得分intdefen[4]總分intzongfen四、系統(tǒng)實(shí)現(xiàn)和測(cè)試4.1主菜單模塊實(shí)現(xiàn)4.1.1主菜單步驟開(kāi)開(kāi)始顯示主菜單輸入選擇是否合理 提醒錯(cuò)誤信息提醒錯(cuò)誤信息Y Y N 是否為"1"是否為"1"是否為"3" N N N是否為"3"是否為"2" 是否為"2"是否為"4" Y 是否為"4" Y YY N調(diào)用輸入函數(shù)調(diào)用顯示函數(shù)調(diào)用查找函數(shù)調(diào)用排序函數(shù) 調(diào)用輸入函數(shù)調(diào)用顯示函數(shù)調(diào)用查找函數(shù)調(diào)用排序函數(shù)是否為"5"是否為"5"是否為"7"是否為"6" N是否為"7"是否為"6" N Y調(diào)用顯示函數(shù)YY調(diào)用顯示函數(shù)調(diào)用顯示函數(shù)調(diào)用顯示函數(shù)N調(diào)用顯示函數(shù)調(diào)用顯示函數(shù)結(jié)束 結(jié)束4.1主菜單步驟圖4.1.2主菜單代碼voidmenu() //菜單{ intw1,n; system("cls"); cout<<"\t\t--------------------------------------------"<<endl <<"\t\t*************welcometoload****************"<<endl <<"\t\t--------------------------------------------"<<endl <<"\t\t※※※※※※※※※※※※※※※※※※※※※※"<<endl <<"\t\t※歡迎使用校運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)※"<<endl <<"\t\t※※"<<endl <<"\t\t※※"<<endl <<"\t\t※※"<<endl <<"\t\t※1.學(xué)校信息錄入※"<<endl <<"\t\t※2.學(xué)生信息錄入※"<<endl <<"\t\t※3.成績(jī)錄入※"<<endl <<"\t\t※4.查詢※"<<endl <<"\t\t※5.顯示數(shù)據(jù)※"<<endl <<"\t\t※6.輸出文件※"<<endl <<"\t\t※7.顯示排名※"<<endl <<"\t\t※8.退出※"<<endl <<"\t\t※※"<<endl <<"\t\t※※"<<endl <<"\t\t※※"<<endl <<"\t\t※制作人※"<<endl <<"\t\t※※"<<endl <<"\t\t※※"<<endl <<"\t\t※※※※※※※※※※※※※※※※※※※※※※"<<endl; do { cout<<"請(qǐng)輸入你想操作代號(hào)(1-8):"<<endl; cin>>n; if(n<1||n>8) { w1=1; cout<<"您輸入有誤,請(qǐng)重新輸入!"<<endl; } elsew1=0; }while(w1==1); switch(n) { case1:xuexiaoluru(); case2:xueshengluru(); case3:chengjiluru(); case4:chaxun();case5:xianshi();case6:wenjian();case7:paimingxianshi(); }}4.1.3主菜單測(cè)試主菜單運(yùn)行結(jié)果圖4.2圖4.2主菜單界面4.2查詢模塊實(shí)現(xiàn)4.2.1查詢步驟圖開(kāi)始開(kāi)始輸出提醒信息輸出提醒信息N是否為4Y是否為4輸入數(shù)字a輸入數(shù)字a是否為"2"是否為是否為"2"是否為"3"NN是否為"1"NNN是否為"1"YYYYY調(diào)用學(xué)校查詢函數(shù)調(diào)用項(xiàng)目查詢函數(shù)調(diào)用學(xué)生查詢函數(shù)調(diào)用學(xué)校查詢函數(shù)調(diào)用項(xiàng)目查詢函數(shù)調(diào)用學(xué)生查詢函數(shù) 結(jié)束結(jié)束圖4.3查詢模塊步驟圖4.2.2查詢模塊代碼voidchaxun()//查詢{voidxscx();voidxmcx();voidxxcx();inta;do{cout<<"選擇查詢方法:"<<endl<<"1按姓名查詢:"<<endl<<"2按項(xiàng)目查詢:"<<endl<<"3按學(xué)校查詢:"<<endl<<"4退出"<<endl<<"請(qǐng)選擇:";cin>>a;switch(a){case1:xscx();break;case2:xmcx();break;case3:xxcx();break;case4:break;}}while(a<1&&a>4);system("pause");menu();}voidxscx(){inti,sb=0;stringx;cout<<"請(qǐng)輸入要查詢名字:";cin>>x;for(i=0;i<SN;i++){ if(xs[i].xingming==x) { sb++; cout<<"姓名"<<xs[i].xingming<<"學(xué)校"; for(intk=0;;k++) if(xs[i].xue==xx[k].daihao) { cout<<setw(15)<<xx[k].mingzi; break; } cout<<"性別"; if(xs[i].xingbie) cout<<setw(4)<<"男"; else cout<<setw(4)<<"女"; cout<<"號(hào)碼"<<xs[i].haoma<<endl; }}if(sb==0){ cout<<"沒(méi)找到該名字學(xué)生"<<endl;}}voidxmcx(){inti,sb=0;intj;cout<<"請(qǐng)輸入要查詢項(xiàng)目名:";cin>>j;for(i=0;i<SN;i++){ if(xs[i].xiangmu[j-1]) { sb++; cout<<"姓名"<<xs[i].xingming<<"學(xué)校"; for(intk=0;;k++) if(xs[i].xue==xx[k].daihao) { cout<<setw(15)<<xx[k].mingzi; break; } cout<<"性別"; if(xs[i].xingbie) cout<<setw(4)<<"男"; else cout<<setw(4)<<"女"; cout<<"號(hào)碼"<<xs[i].haoma<<endl; }}if(sb==0){ cout<<"未找該項(xiàng)目標(biāo)學(xué)生"<<endl;}}voidxxcx(){inti,sb=0;cout<<"學(xué)校信息為:"<<endl<<setw(15)<<"學(xué)校名稱"<<"學(xué)校代號(hào)"<<endl;for(i=0;i<XN;i++)cout<<setw(15)<<xx[i].mingzi<<""<<xx[i].daihao<<endl;stringl;cout<<"請(qǐng)輸入要查詢學(xué)校代號(hào):";cin>>l;for(i=0;i<SN;i++){ if(xs[i].xue==l) { sb++; cout<<"姓名"<<xs[i].xingming<<"學(xué)校"<<l<<"性別"; if(xs[i].xingbie) cout<<setw(6)<<"男"; else cout<<setw(6)<<"女"; cout<<"號(hào)碼"<<xs[i].haoma; } }if(sb==0){ cout<<"沒(méi)找到該學(xué)校學(xué)生"<<endl;}}4.2.3查詢模塊測(cè)試查詢模塊測(cè)試分為姓名查詢圖4.4,項(xiàng)目查詢圖4.5,學(xué)校查詢圖4.6:圖4.4姓名查詢界面當(dāng)選擇數(shù)字1時(shí)界面圖4.4,輸出學(xué)生姓名,學(xué)校,性別,號(hào)碼.圖4.5項(xiàng)目查詢 界面當(dāng)選擇數(shù)字2時(shí)界面圖4.5,輸出參與要查詢項(xiàng)目標(biāo)運(yùn)動(dòng)員姓名,學(xué)校,性別,號(hào)碼.圖4.6學(xué)校查詢界面當(dāng)選擇數(shù)字3時(shí)界面圖4.6,輸出代表要查詢學(xué)校參賽運(yùn)動(dòng)員姓名,學(xué)校,性別,號(hào)碼.4.3顯示模塊查詢開(kāi)始4.3.1顯示模塊步驟圖 開(kāi)始N是否為"4"輸出提醒信息N是否為"4"輸出提醒信息YY輸入l輸入lN是否為"3"是否為"2" N是否為"3"是否為"2"NN是否為"1"NN是否為"1"YY YY調(diào)用顯示得分規(guī)則函數(shù)調(diào)用顯示運(yùn)動(dòng)員信息函數(shù)Y調(diào)用顯示得分規(guī)則函數(shù)調(diào)用顯示運(yùn)動(dòng)員信息函數(shù)調(diào)用顯示學(xué)校信息函數(shù) 調(diào)用顯示學(xué)校信息函數(shù)結(jié)束結(jié)束圖4.7顯示模塊步驟圖4.3.2顯示模塊代碼voidxianshi() //顯示全部信息{voidxsxxxx();voidxsxsxx();voidxsdfgz();intl;do{ cout<<" 顯示全部學(xué)校信息 輸入1"<<endl <<" 顯示全部學(xué)生信息 輸入2"<<endl <<" 顯示得分規(guī)則 輸入3"<<endl <<" 退出 輸入4"<<endl <<"請(qǐng)選擇:"; cin>>l; switch(l){ case1:xsxxxx();break; case2:xsxsxx();break; case3:xsdfgz();break; }}while(l>4&&l<1);system("pause");menu();}voidxsxxxx(){ cout<<"學(xué)校信息為:"<<endl<<setw(15)<<"學(xué)校名稱"<<"學(xué)校代號(hào)"<<setw(8)<<"學(xué)校得分"<<setw(8)<<"學(xué)校排名"<<endl; for(inti=0;i<XN;i++) cout<<setw(15)<<xx[i].mingzi<<""<<xx[i].daihao<<setw(8)<<xx[i].chengji<<setw(8)<<xx[i].mingci<<endl;}voidxsxsxx(){ cout<<setw(6)<<"姓名"<<setw(15)<<"學(xué)校"<<setw(6)<<"性別" <<setw(12)<<"項(xiàng)目1成績(jī)"<<setw(12)<<"項(xiàng)目2成績(jī)" <<setw(12)<<"項(xiàng)目3成績(jī)"<<setw(12)<<"項(xiàng)目4成績(jī)"<<endl; for(intj=0;j<SN;j++) { cout<<setw(6)<<xs[j].xingming; for(intk=0;;k++) if(xs[j].xue==xx[k].daihao) { cout<<setw(15)<<xx[k].mingzi; break; } if(xs[j].xingbie) cout<<setw(6)<<"男"; else cout<<setw(6)<<"女"; for(intx=0;x<4;x++) cout<<setw(6)<<xs[j].xiangmu[x]<<setw(6)<<xs[j].chengji[x]; cout<<endl; } cout<<setw(18)<<"項(xiàng)目1得分排名"<<setw(18)<<"項(xiàng)目2得分排名" <<setw(18)<<"項(xiàng)目3得分排名"<<setw(18)<<"項(xiàng)目4得分排名"<<setw(7)<<"總分"<<endl; for(j=0;j<SN;j++) { for(intx=0;x<4;x++) cout<<setw(9)<<xs[j].defen[x]<<setw(9)<<xs[j].mingci[x]<<setw(7); cout<<xs[j].zongfen<<endl; }}voidxsdfgz(){ for(intz=0;;z++) { if(df[z]!=0) { cout<<"第"<<z+1<<"名得"<<df[z]<<"分"<<endl; continue; } else { cout<<"其后全部些人得分為0"<<endl; break; } }}4.3.3顯示模塊測(cè)試顯示模塊測(cè)試分為學(xué)校顯示圖4.8,全部學(xué)生顯示圖4.9和得分顯示圖4.10圖4.8學(xué)校信息顯示界面圖4.8選擇1時(shí)參賽學(xué)校名稱,代號(hào),得分和排名顯示.圖4.9學(xué)生信息顯示界面圖4.9為選擇2時(shí)全部參賽學(xué)生學(xué)校,性別,參賽項(xiàng)目,成績(jī),得分和排名信息顯示.圖4.10得分規(guī)則顯示界面圖4.10為選擇號(hào)碼3時(shí)比賽采取積分規(guī)則顯示.4.4輸出文件模塊4.4.1輸出模塊代碼voidwenjian()//輸出到文件{ fstreams1("輸出文件.txt",ios::out); if(!s1) cout<<"打開(kāi)失敗!"; s1<<"學(xué)校名字學(xué)校代碼學(xué)校名次學(xué)??偡?<<'\n'; for(inti=0;i<XN;i++) { s1<<xx[i].mingzi<<""<<xx[i].daihao<<""<<xx[i].mingci<<""<<int(xx[i].chengji)<<'\n'; } s1<<'\n'<<'\n'<<"姓名學(xué)校代碼性別號(hào)碼項(xiàng)目1成績(jī)名次項(xiàng)目2成績(jī)名次項(xiàng)目3成績(jī)名次項(xiàng)目4成績(jī)名次總分"<<'\n'; for(i=0;i<SN;i++) { s1<<xs[i].xingming<<""<<xs[i].xue<<""<<xs[i].xingbie<<""<<xs[i].haoma<<"" <<xs[i].xiangmu[0]<<""<<xs[i].chengji[0]<<""<<xs[i].mingci[0]<<"" <<xs[i].xiangmu[1]<<""<<xs[i].chengji[1]<<""<<xs[i].mingci[1]<<"" <<xs[i].xiangmu[2]<<""<<xs[i].chengji[2]<<""<<xs[i].mingci[2]<<"" <<xs[i].xiangmu[3]<<""<<xs[i].chengji[3]<<""<<xs[i].mingci[3]<<"" <<xs[i].zongfen<<'\n'; } s1.close(); cout<<"輸出成功!"<<endl; system("pause");menu();}4.4.2輸出模塊測(cè)試圖4.11輸出文件4.5顯示排名開(kāi)始4.5.1排名模塊步驟圖開(kāi)始輸出提醒信息輸出提醒信息NN輸入a輸入aNN是否為"3"是否為"2"是否為"1"N是否為"3"是否為"2"是否為"1"NYYYYYY調(diào)用運(yùn)動(dòng)員排名函數(shù)調(diào)用學(xué)校排名函數(shù)調(diào)用運(yùn)動(dòng)員排名函數(shù)調(diào)用學(xué)校排名函數(shù)結(jié)束結(jié)束圖4.12排名模塊步驟圖4.5.2顯示排名模塊代碼voidpaimingxianshi()//顯示排名{voidxxpm();voidydypm();cout<<"請(qǐng)選擇:"<<endl<<"1學(xué)校排名"<<endl<<"2運(yùn)動(dòng)員總分排名"<<endl<<"3退出"<<endl<<"請(qǐng)選擇:";inta;cin>>a;switch(a){case1:xxpm();break;case2:ydypm();break;case3:break;}system("pause");menu();}voidxxpm(){ stringdd[50]; for(inti=0;i<XN;i++) dd[xx[i].mingci-1]=xx[i].mingzi; for(i=0;i<XN;i++) cout<<"第"<<i+1<<"名為 "<<setw(6)<<dd[i]<<endl;}voidydypm(){ stringdd[200],te; intss[200],mp,p,q; for(inti=0;i<SN;i++) { dd[i]=xs[i].xingming; ss[i]=xs[i].zongfen; } for(p=0;p<SN;p++) { for(q=p+1;q<SN-1;q++) { if(ss[p]<ss[q]) { te=dd[q]; dd[q]=dd[p]; dd[p]=te; mp=ss[q]; ss[q]=ss[p]; ss[p]=mp; } } } for(i=0;i<SN;i++) cout<<"第"<<i+1<<"名為 "<<setw(6)<<dd[i]<<endl; }4.5.3顯示排名模塊測(cè)試顯示排名測(cè)試分為學(xué)校排名圖4.13,運(yùn)動(dòng)員排名圖4.13圖4.13學(xué)校排名界面圖4.14運(yùn)動(dòng)員排名界面五、調(diào)試錯(cuò)誤及處理方法在調(diào)試過(guò)程中碰到了多種多樣錯(cuò)誤,但總結(jié)起來(lái)也就是馬虎造成,現(xiàn)列舉一二。如在調(diào)用函數(shù)時(shí)出現(xiàn)函數(shù)未申明錯(cuò)誤,只要在函數(shù)開(kāi)頭進(jìn)行申明就行了;還有如“D:\測(cè)試.cpp(579):errorC:unknowncharacter'0xa3'”,這類型錯(cuò)誤關(guān)鍵是在輸入字符時(shí)使用是漢字輸入,只要改成英文輸入就行了;注意“{}”使用要完整等等。不過(guò)在我編寫程序時(shí)碰到最大困難還是在輸入文件模塊,因?yàn)閷?duì)這個(gè)知識(shí)點(diǎn)掌握不好,以后經(jīng)過(guò)查閱資料最終搞清楚了。六、參考文件[1]譚浩強(qiáng).C++程序設(shè)計(jì).清華大學(xué)出版社.[2]鄭莉.C++程序設(shè)計(jì)(第三版).清華大學(xué)出版社.[3]錢能.C++程序設(shè)計(jì)教程.清華大學(xué)出版社.[4]武俊亮.visualc++課程設(shè)計(jì)和系統(tǒng)開(kāi)發(fā)案例.清華出版社[5]黃維通.VisualC++程序設(shè)計(jì)教程.清華大學(xué)出版社.七、附錄源代碼#include<iostream>#include<fstream>#include<iomanip>#include<string>usingnamespacestd;intdf[100]={0};structxuexiao{ stringmingzi; //學(xué)校名字 stringdaihao; //學(xué)校代號(hào) intmingci; //學(xué)校名次 floatchengji; //學(xué)校成績(jī)}xx[20];structxuesheng{ stringxue; //學(xué)校 stringxingming; //姓名 inthaoma; //運(yùn)動(dòng)員號(hào)碼 boolxiangmu[4]; //項(xiàng)目 boolxingbie; //性別 floatchengji[4]; //成績(jī) intmingci[4]; //名次 intdefen[4]; //單項(xiàng)得分 intzongfen; //總分}xs[100];intXN; //學(xué)校個(gè)數(shù)intSN; //學(xué)生總數(shù)voidxuexiaoluru();voidxueshengluru();voidchengjiluru();voidchaxun();voidxianshi();voidwenjian();voidpaimingxianshi();voidpaiming(inta,boolb);voidmenu() //菜單{ intw1,n; system("cls"); cout<<"\t\t--------------------------------------------"<<endl <<"\t\t*************welcometoload****************"<<endl <<"\t\t--------------------------------------------"<<endl <<"\t\t※※※※※※※※※※※※※※※※※※※※※※"<<endl <<"\t\t※歡迎使用校運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)※"<<endl <<"\t\t※※"<<endl <<"\t\t※※"<<endl <<"\t\t※※"<<endl <<"\t\t※1.學(xué)校信息錄入※"<<endl <<"\t\t※2.學(xué)生信息錄入※"<<endl <<"\t\t※3.成績(jī)錄入※"<<endl <<"\t\t※4.查詢※"<<endl <<"\t\t※5.顯示數(shù)據(jù)※"<<endl <<"\t\t※6.輸出文件※"<<endl <<"\t\t※7.顯示排名※"<<endl <<"\t\t※8.退出※"<<endl <<"\t\t※※"<<endl <<"\t\t※※"<<endl <<"\t\t※※"<<endl <<"\t\t※制作人※"<<endl <<"\t\t※※"<<endl <<"\t\t※※"<<endl <<"\t\t※※※※※※※※※※※※※※※※※※※※※※"<<endl; do { cout<<"請(qǐng)輸入你想操作代號(hào)(1-8):"<<endl; cin>>n; if(n<1||n>8) { w1=1; cout<<"您輸入有誤,請(qǐng)重新輸入!"<<endl; } elsew1=0; }while(w1==1); switch(n) { case1:xuexiaoluru(); case2:xueshengluru(); case3:chengjiluru(); case4:chaxun(); case5:xianshi(); case6:wenjian(); case7:paimingxianshi(); }}voidxuexiaoluru() //學(xué)校信息錄入{ cout<<"請(qǐng)輸入學(xué)校個(gè)數(shù):"; cin>>XN; for(inti=0;i<XN;i++) { cout<<"請(qǐng)輸入第"<<i+1<<"個(gè)學(xué)校名字:"; cin>>xx[i].mingzi; cout<<"請(qǐng)輸入第"<<i+1<<"個(gè)學(xué)校代碼:"; cin>>xx[i].daihao; xx[i].chengji=xx[i].mingci=0; } cout<<"學(xué)校信息為:"<<endl<<setw(15)<<"學(xué)校名稱"<<"學(xué)校代號(hào)"<<endl; for(i=0;i<XN;i++) cout<<setw(15)<<xx[i].mingzi<<""<<xx[i].daihao<<endl; system("pause"); menu();}voidxueshengluru() //學(xué)生信息錄入{ cout<<"請(qǐng)輸入學(xué)生數(shù)量:"; cin>>SN; intk; for(inti=0;i<SN;i++) { cout<<"請(qǐng)輸入第"<<i+1<<"個(gè)學(xué)生信息:"<<endl<<setw(15)<<"學(xué)校名稱"<<"學(xué)校代號(hào)"<<endl; for(intj=0;j<XN;j++) cout<<setw(15)<<xx[j].mingzi<<""<<xx[j].daihao<<endl; cout<<"請(qǐng)輸入學(xué)生所在學(xué)校代碼:"; cin>>xs[i].xue; cout<<"請(qǐng)輸入學(xué)生姓名:"; cin>>xs[i].xingming; cout<<"請(qǐng)輸入學(xué)生性別(男輸入1/女輸入0):"; cin>>xs[i].xingbie; for(k=0;k<4;k++) { xs[i].chengji[k]=xs[i].defen[k]=xs[i].mingci[k]=0; xs[i].xiangmu[k]=0; } xs[i].haoma=i+1; } menu();}voidxianshi() //顯示全部信息{voidxsxxxx();voidxsxsxx();voidxsdfgz();intl;do{ cout<<" 顯示全部學(xué)校信息 輸入1"<<endl <<" 顯示全部學(xué)生信息 輸入2"<<endl <<" 顯示得分規(guī)則 輸入3"<<endl <<" 退出 輸入4"<<endl <<"請(qǐng)選擇:"; cin>>l; switch(l) { case1:xsxxxx();break; case2:xsxsxx();break; case3:xsdfgz();break; }}while(l>4&&l<1);system("pause");menu();}voidxsxxxx(){ cout<<"學(xué)校信息為:"<<endl<<setw(15)<<"學(xué)校名稱"<<"學(xué)校代號(hào)"<<setw(8)<<"學(xué)校得分"<<setw(8)<<"學(xué)校排名"<<endl; for(inti=0;i<XN;i++) cout<<setw(15)<<xx[i].mingzi<<""<<xx[i].daihao<<setw(8)<<xx[i].chengji<<setw(8)<<xx[i].mingci<<endl;}voidxsxsxx(){ cout<<setw(6)<<"姓名"<<setw(15)<<"學(xué)校"<<setw(6)<<"性別" <<setw(12)<<"項(xiàng)目1成績(jī)"<<setw(12)<<"項(xiàng)目2成績(jī)" <<setw(12)<<"項(xiàng)目3成績(jī)"<<setw(12)<<"項(xiàng)目4成績(jī)"<<endl; for(intj=0;j<SN;j++) { cout<<setw(6)<<xs[j].xingming; for(intk=0;;k++) if(xs[j].xue==xx[k].daihao) { cout<<setw(15)<<xx[k].mingzi; break; } if(xs[j].xingbie) cout<<setw(6)<<"男"; else cout<<setw(6)<<"女"; for(intx=0;x<4;x++) cout<<setw(6)<<xs[j].xiangmu[x]<<setw(6)<<xs[j].chengji[x]; cout<<endl; } cout<<setw(18)<<"項(xiàng)目1得分排名"<<setw(18)<<"項(xiàng)目2得分排名" <<setw(18)<<"項(xiàng)目3得分排名"<<setw(18)<<"項(xiàng)目4得分排名"<<setw(7)<<"總分"<<endl; for(j=0;j<SN;j++) { for(intx=0;x<4;x++) cout<<setw(9)<<xs[j].defen[x]<<setw(9)<<xs[j].mingci[x]<<setw(7); cout<<xs[j].zongfen<<endl; }}voidxsdfgz(){ for(intz=0;;z++) { if(df[z]!=0) { cout<<"第"<<z+1<<"名得"<<df[z]<<"分"<<endl; continue; } else { cout<<"其后全部些人得分為0"<<endl; break; } }}voidjisuangeren()//計(jì)算個(gè)人總分{ for(inti=0;i<SN;i++) xs[i].zongfen=xs[i].defen[0]+xs[i].defen[1]+xs[i].defen[2]+xs[i].defen[3];}voidjisuanxuexiao()//計(jì)算學(xué)校總分并排名{ for(inti=0;i<SN;i++) { for(intk=0;;k++) if(xs[i].xue==xx[k].daihao) { xx[k].chengji+=xs[i].zongfen; break; } } xuexiao*dd[50],*temp; intk=0,p,q; for(i=0;i<XN;i++) dd[k++]=&xx[i]; for(p=0;p<k;p++) { for(q=p+1;q<k-1;q++) { if(dd[p]->chengji<dd[q]->chengji) { temp=dd[p]; dd[p]=dd[q]; dd[q]=temp; } } } for(i=0;i<k;i++) { dd[i]->mingci=i+1; }}voidchengjiluru() //成績(jī)錄入{ boola; intb,i,k[100],t=0,s=0; cout<<"男女各有四個(gè)項(xiàng)目:"<<endl <<"男子項(xiàng)目1項(xiàng)目2項(xiàng)目3項(xiàng)目4"<<endl <<"女子項(xiàng)目1項(xiàng)目2項(xiàng)目3項(xiàng)目4"<<endl; cout<<"請(qǐng)選擇性別(男輸入1/女輸入0):"; cin>>a; if(a) { cout<<"輸入錄入成績(jī)項(xiàng)目"; cin>>b; cout<<"該項(xiàng)目未錄入有:"; for(i=0;i<SN;i++) if(xs[i].xingbie) if(xs[i].xiangmu[b-1]) ; else cout<<xs[i].haoma<<"號(hào)"; cout<<endl<<"請(qǐng)輸入要錄入號(hào)碼:"<<"格式23330最終一個(gè)以0結(jié)束"<<endl; t=0; do { cin>>k[t]; t++; }while(k[t-1]!=0); for(s=0;s<t-1;s++) { xs[k[s]-1].xiangmu[b-1]=1; cout<<"請(qǐng)輸入"<<k[s]<<"號(hào)成績(jī):"; cin>>xs[k[s]-1].chengji[b-1]; } } else { cout<<"輸入錄入成績(jī)項(xiàng)目"; cin>>b; cout<<"該項(xiàng)目未錄入有:"; for(i=0;i<SN;i++) if(!xs[i].xingbie) if(xs[i].xiangmu[b-1]) ; else cout<<xs[i].haoma<<"號(hào)"; cout<<endl<<"請(qǐng)輸入要錄入號(hào)碼:"<<"格式23330最終一個(gè)以0結(jié)束"<<endl; t=0; do { cin>>k[t]; t++; }while(k[t-1]!=0); for(s=0;s<t-1;s++) { xs[k[s]-1].xiangmu[b-1]=1; cout<<"請(qǐng)輸入"<<k[s]<<"號(hào)成績(jī):"; cin>>xs[k[s]-1].chengji[b-1]; } } paiming(b,a); jisuangeren(); jisuanxuexiao(); menu();}voiddefenguize()//得分規(guī)則{ cout<<"請(qǐng)輸入前十名得分規(guī)則"<<endl; for(inti=0;i<10;i++) { cout<<"請(qǐng)輸入第"<<i+1<<"得分:"; cin>>df[i]; } cout<<"建立得分規(guī)則為"<<endl; for(i=0;i<10;i++) cout<<"第"<<i+1<<"名得"<<df[i]<<"分"<<endl;}voidxuexiaopaiming(){ intk[30],s=0,x[30],p,q,t; for(inti=0;i<XN;i++) { x[s]=i; k[s++]=xx[i].chengji; } for(p=0;p<s-1;p++) for(q=p+1;q<s-2;q++) { if(k[p]<k[q]) { t=k[q]; k[q]=k[p]; k[p]=t; t=x[q]; x[q]=x[p]; x[p]=t; } } for(i=0;i<s-1;i++) { xx[x[i]].mingci=i; }}voidpaiming(inta,boolb)//排名后算分{ xuesheng*dd[50],*temp; intk=0; ints; for(inti=0;i<SN;i++) { if(xs[i].xingbie==b) { if(xs[i].xiangmu[a-1]) { dd[k++]=&xs[i]; } } } intp,q; for(p=0;p<k;p++) { for(q=p+1;q<k-1;q++) { if(dd[p]->chengji[a-1]<dd[q]->chengji[a-1]) { temp=dd[p]; dd[p]=dd[q]; dd[q]=temp; } } } for(i=0;i<k;i++) { dd[i]->mingci[a-1]=i+1; dd[i]->defen[a-1]=df[i]; }}voidchaxun()//查詢{voidxscx();voidxmcx();voidxxcx();inta;do{cout<<"選擇查詢方法:"<<endl<<"1按姓名查詢:"<<endl<<"2按項(xiàng)目查詢:"<<endl<<"3按學(xué)校查詢:"<<endl<<"4退出"<<endl<<"請(qǐng)選擇:";cin>>a;switch(a){case1:xscx();break;case2:xmcx();break;case3:xxcx();break;case4:break;}}while(a<1&&a>4);cout<<endl;system("pause");menu();}voidxscx(){inti,sb=0;stringx;cout<<"請(qǐng)輸入要查詢名字:";cin>>x;for(i=0;i<SN;i++){ if(xs[i].xingming==x) { sb++; cout<<"姓名"<<xs[i].xingming<<"學(xué)校"; for(intk=0;;k++) if(xs[i].xue==xx[k].daihao) { cout<<setw(15)<<xx[k].mingzi; break; } cout<<"性別"; if(xs[i].xingbie) cout<<setw(4)<<"男"; else cout<<setw(4)<<"女"; cout<<"號(hào)碼"<<xs[i].haoma; }}if(sb==0){ cout<<"沒(méi)找到該名字學(xué)生"<<endl;}}voidxmcx(){inti,sb=0;intj;cout<<"請(qǐng)輸入要查詢項(xiàng)目名:";cin>>j;for(i=0;i<SN;i++){ if(xs[i].xiangmu[j-1]) { sb++; cout<<"姓名"<<xs[i].xingming<<"學(xué)校"; for(intk=0;;k++) if(xs[i].xue==xx[k].daihao) { cout<<setw(15)<<xx[k].mingzi; break; } cout<<"性別"; if(xs[i].xingbie) cout<<setw(4)<<"男"; else cout<<setw(4)<<"女"; cout<<"號(hào)碼"<<xs[i].haoma<<endl; }}if(sb==0){ cout<<"未找該項(xiàng)目標(biāo)學(xué)生"<<endl;}}voidxxcx(){inti,sb=0;cout<<"學(xué)校信息為:"<<endl<<setw(15)<<"學(xué)校名稱"<<"學(xué)校代號(hào)"<<endl;for(i=0;i<XN;i++)c
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年綏化市慶安縣急需緊缺教師校園招聘36人模擬試卷附答案詳解(完整版)
- 2025人民醫(yī)院快速檢測(cè)技能考核
- 2025大慶油田有限責(zé)任公司春季高校畢業(yè)生招聘50人考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(各地真題)
- 2025廣東醫(yī)科大學(xué)附屬醫(yī)院第二批住院醫(yī)師規(guī)范化培訓(xùn)學(xué)員招生19人模擬試卷及答案詳解(名師系列)
- 2025廣東廣州市橫瀝人力資源管理服務(wù)有限公司招聘服務(wù)外包人員1人考前自測(cè)高頻考點(diǎn)模擬試題及完整答案詳解1套
- 張家口市中醫(yī)院巨大甲狀腺腫手術(shù)關(guān)鍵技術(shù)考核
- 秦皇島市人民醫(yī)院護(hù)理教學(xué)方法運(yùn)用考核
- 上海市人民醫(yī)院放射治療緊急情況應(yīng)急預(yù)案筆試試題
- 滄州市中醫(yī)院血管外科主治醫(yī)師晉升考核
- 張家口市中醫(yī)院護(hù)理管理質(zhì)量管理考核
- 污泥池清理管理制度
- 秩序員休假管理制度
- 保護(hù)環(huán)境的課件
- 2025年中國(guó)張?jiān).a(chǎn)區(qū)葡萄酒特色與品牌國(guó)際化發(fā)展報(bào)告
- 圖深度強(qiáng)化學(xué)習(xí)在配電網(wǎng)故障恢復(fù)中的應(yīng)用研究
- (2017)海南省房屋建筑與裝飾裝修工程綜合定額交底資料
- 2024-2025學(xué)年下學(xué)期高一英語(yǔ)人教版同步經(jīng)典題精練之語(yǔ)法填空
- 《社會(huì)科學(xué)研究方法》課件
- 提高市政雨水管道接口施工一次驗(yàn)收合格率
- 基坑安全事故及防范措施
評(píng)論
0/150
提交評(píng)論