您好,登錄后才能下訂單哦!
本文實例為大家分享了C++運動會管理系統的實現代碼,供大家參考,具體內容如下
#include<iostream.h> #define MAX 10 #include<iomanip.h> #include "fstream.h" int n,m,w; class gamescore {public: int academynum; //院系編號 int score[MAX][MAX]; //記錄成績的2維數組 int totalscore[MAX]; //院總分存儲數組 int mentotalscore[MAX]; //男團總分存儲數組 int womentotalscore[MAX];//女團總分存儲數組 int projectnum; //項目編號 gamescore() { academynum=0; projectnum=0; } void search(int academynum,int projectnum); void remove(int academynum,int projectnum); void repair(int academynum,int projectnum); void save(); //保存成績 void input(); void sort1(); //按院總分排序 void sort2(); //按男團總分排序 void sort3(); //按女團總分排序 void hold(); //存儲總分數 int academytotalscore(int academynum); //院總分 int academywomentotalscore(int academynum); //院女團總分 int academymentotalscore(int academynum); //院男團總分 void output1(int academy); //輸出院系的成績列表 void output2(int academynum); //輸出院系的團體成績列表 }; void gamescore::input() { int i,j; for(i=0;i<n;i++) { cout<<"輸入編號為"<<i+1<<"院系的成績(若參賽人數超過6人,取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1,否則參賽院系不超過6個,每項目取前三名,分別為5,3,2分,其余記成績為0)"<<endl; for(j=0;j<m+w;j++) { cout<<"輸入編號為"<<i+1<<"院系的的運動項目編號為"<<j+1<<"的成績:"; cin>>score[i][j]; if(score[i][j]!=0&&score[i][j]!=2&&score[i][j]!=5&&score[i][j]!=10) { cout<<"成績輸入錯誤,請檢查后再輸入"<<endl; cin>>score[i][j]; } } } if(i=n-1) cout<<"!!輸入完畢"<<endl; } void gamescore::save() { ofstream ofs("運動會成績.txt"); ofs<<"將最終學院參加的對應項目成績列表列出(行表示學院編號,列表示項目編號)"<<endl; for(int i=0;i<n;i++) { for(int j=0;j<m+w;j++) { ofs<<score[i][j]<<setw(5); } ofs<<endl; } for(i=1;i<=n;i++) { ofs<<"編號為"<<i<<"的學院總分的成績為:"<<academytotalscore(i)<<endl; ofs<<"編號為"<<i<<"的學院男團的成績為:"<<academymentotalscore(i)<<endl; ofs<<"編號為"<<i<<"的學院女團的成績為:"<<academywomentotalscore(i)<<endl; } ofs.close(); } int gamescore::academytotalscore(int academynum)//院總分 { int sum=score[academynum-1][0]; for(int i=1;i<m+w;i++) { sum=sum+score[academynum-1][i]; } return sum; } int gamescore::academywomentotalscore(int academynum)//院女團總分 { int sum=score[academynum-1][m]; for(int i=m+1;i<m+w;i++) { sum=sum+score[academynum-1][i]; } return sum; } int gamescore::academymentotalscore(int academynum)//院男團總分 { int sum=score[academynum-1][0]; for(int i=1;i<m;i++) { sum=sum+score[academynum-1][i]; } return sum; } void gamescore::hold()//存儲總分 { for(int i=1;i<=n;i++) { totalscore[i-1]=academytotalscore(i); mentotalscore[i-1]=academymentotalscore(i); womentotalscore[i-1]=academywomentotalscore(i); } } void gamescore::sort1()//按院系總分排序 { int p,q; int a[MAX]; for(int i=0;i<n;i++) { a[i]=i+1; } for(int j=0;j<n-1;j++) { for(i=0;i<=n-1-j;i++) { if(totalscore[i]<totalscore[i+1]) { p=totalscore[i]; totalscore[i]=totalscore[i+1]; totalscore[i+1]=p; q=a[i]; a[i]=a[i+1]; a[i+1]=q; } } } cout<<"按院系總分從大到小排序,以及對應的院系編號為:"<<endl; for(j=0;j<n;j++) { cout<<a[j]<<setw(5); } cout<<endl; for(j=0;j<n;j++) { cout<<totalscore[j]<<setw(5); } cout<<endl; } void gamescore::sort2()//按男團總分排序 { int p,q; int a[MAX]; for(int i=0;i<n;i++) { a[i]=i+1; } for(int j=0;j<n-1;j++) { for(i=0;i<=n-1-j;i++) { if(mentotalscore[i]<mentotalscore[i+1]) { p=mentotalscore[i]; mentotalscore[i]=mentotalscore[i+1]; mentotalscore[i+1]=p; q=a[i]; a[i]=a[i+1]; a[i+1]=q; } } } cout<<"按男團總分從大到小排序,以及對應的院系編號為:"<<endl; for(j=0;j<n;j++) { cout<<a[j]<<setw(5); } cout<<endl; for(j=0;j<n;j++) { cout<<mentotalscore[j]<<setw(5); } cout<<endl; } void gamescore::sort3()//按女團總分排序 { int p,q; int a[MAX]; for(int i=0;i<n;i++) { a[i]=i+1; } for(int j=0;j<n-1;j++) { for(i=0;i<=n-1-j;i++) { if(womentotalscore[i]<womentotalscore[i+1]) { p=womentotalscore[i]; womentotalscore[i]=womentotalscore[i+1]; womentotalscore[i+1]=p; q=a[i]; a[i]=a[i+1]; a[i+1]=q; } } } cout<<"按女團總分從大到小排序,以及對應的院系編號為:"<<endl; for(j=0;j<n;j++) { cout<<a[j]<<setw(5); } cout<<endl; for(j=0;j<n;j++) { cout<<womentotalscore[j]<<setw(5); } cout<<endl; } void gamescore::search(int academynum,int projectnum) {int j; int k; do { cout<<"1 查詢該院該單項成績的總分, 2 查詢該院總分,,3 查詢該院男團總分,4 查詢該院女團總分,5 按項目編號查詢,0 退出查詢"<<endl; cout<<"請選擇:"; cin>>k; if(k<0||k>5) //判斷輸入的操作編號是否在目錄中,如果超出范圍重新輸入 { cout<<"輸入有誤,請重新輸入要操作的項目編號"; cin>>k; } switch(k) { case 1: cout<<"編號為"<<academynum<<"的學院的第"<<projectnum<<"個項目的成績為:"; cout<<score[academynum-1][projectnum-1]<<endl;break; case 2: cout<<"該院總分為:"<<academytotalscore(academynum)<<endl;break; case 3: cout<<"該院男團總分為:"<<academymentotalscore(academynum)<<endl;break; case 4: cout<<"該院女團總分:"<<academywomentotalscore(academynum)<<endl;break; case 5: cout<<"不同院系對應的第"<<projectnum<<"個項目的成績為:"<<endl; for(j=0;j<n;j++) { cout<<1+j<<setw(5); } cout<<endl; for(j=0;j<n;j++) { cout<<score[j][projectnum-1]<<setw(5); } cout<<endl; break; default: return; } }while(1); } void gamescore::repair(int academynum,int projectnum) { cout<<"請重新輸入該項成績:"; cin>>score[academynum-1][projectnum-1]; cout<<"修改成功"<<endl; } void gamescore::remove(int academynum,int projectnum) { score[academynum-1][projectnum-1]=0; cout<<"!!刪除成功"<<endl; } void gamescore::output1(int academynum) { //cout<<"該學院運動項目編號及對應的成績如下:"<<endl; for(int i=0;i<m+w;i++) { cout<<1+i<<setw(5); } cout<<endl; for(i=0;i<m+w;i++) { cout<<score[academynum-1][i]<<setw(5); } } void gamescore::output2(int academynum) { cout<<"該院男團成績為"<<academymentotalscore(academynum)<<endl; cout<<"該院女團成績為"<<academywomentotalscore(academynum)<<endl; } ///////////////////////////////////////////////////// void main() { int projectnum; int academynum; gamescore a; int num; ////////////////////////////////////////////菜單 cout<<" ****廣東海洋大學運動會成績管理系統****"<<endl; cout<<endl; cout<<" **********************************************"<<endl; cout<<" ** 1 輸入院系及其參加項目的成績 **"<<endl; cout<<" ** 2 查詢某個院系參加某個項目的成績 **"<<endl; cout<<" ** 3 修改一個項目的成績 **"<<endl; cout<<" ** 4 刪除錯誤成績的記錄 **"<<endl; cout<<" ** 5 輸出某個院系的得分表 **"<<endl; cout<<" ** 6 輸出院系的團體得分表 **"<<endl; cout<<" ** 7 對成績按院系進行排序 **"<<endl; cout<<" ** 8 對成績按男團進行排序 **"<<endl; cout<<" ** 9 對成績按女團進行排序 **"<<endl; cout<<" ** 10 保存成績信息 **"<<endl; cout<<" ** 0 退出該程序 **"<<endl; cout<<" **********************************************"<<endl<<endl; cout<<" 輸入參加院系數 n="; cin>>n; cout<<" 輸入男子項目數 m="; cin>>m; cout<<" 輸入女子項目數 w="; cin>>w; do{ cout<<"請選擇要操作的菜單標號:"; cin>>num; if(num>10||num<0) { cout<<"輸入有誤,請重新輸入要操作的項目編號:"; cin>>num; } switch(num) { case 1: a.input(); break; case 2: cout<<"輸入要查找的院系:"; cin>>academynum; cout<<"輸入要查詢的運動項目編號:"; cin>>projectnum; a.search(academynum,projectnum); break; case 3: cout<<"輸入要修改的院系編號"; cin>>academynum; cout<<"輸入要修改的運動項目的編號:"; cin>>projectnum; a.repair(academynum,projectnum); break; case 4: cout<<"輸入要刪除成績所在的院系的編號:"; cin>>academynum; cout<<"輸入要刪除運動項目編號:"; cin>>projectnum; a.remove(academynum,projectnum); break; case 5: cout<<"輸入要查詢成績的院系編號:"; cin>>academynum; a.output1(academynum); break; case 6: cout<<"輸入要查詢團體成績的院系的編號:"; cin>>academynum; a.output2(academynum); break; case 7: cout<<"該學院運動項目編號及對應學院總分的成績如下:"; a.hold(); a.sort1();break; case 8: cout<<"該學院運動項目編號及對應男團的成績如下:"; a.hold(); a.sort2();break; case 9: cout<<"該學院運動項目編號及對應女團的成績如下:"; a.hold(); a.sort3();break; case 10: a.save(); cout<<"!!保存成功"<<endl;break; default: return; } }while(1); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。