C++課程設(shè)計(jì)之運(yùn)動會管理系統(tǒng)
本文實(shí)例為大家分享了C++運(yùn)動會管理系統(tǒng)的實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下
#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維數(shù)組
int totalscore[MAX]; //院總分存儲數(shù)組
int mentotalscore[MAX]; //男團(tuán)總分存儲數(shù)組
int womentotalscore[MAX];//女團(tuán)總分存儲數(shù)組
int projectnum; //項(xiàng)目編號
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(); //按男團(tuán)總分排序
void sort3(); //按女團(tuán)總分排序
void hold(); //存儲總分?jǐn)?shù)
int academytotalscore(int academynum); //院總分
int academywomentotalscore(int academynum); //院女團(tuán)總分
int academymentotalscore(int academynum); //院男團(tuán)總分
void output1(int academy); //輸出院系的成績列表
void output2(int academynum); //輸出院系的團(tuán)體成績列表
};
void gamescore::input()
{ int i,j;
for(i=0;i<n;i++)
{ cout<<"輸入編號為"<<i+1<<"院系的成績(若參賽人數(shù)超過6人,取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1,否則參賽院系不超過6個,每項(xiàng)目取前三名,分別為5,3,2分,其余記成績?yōu)?)"<<endl;
for(j=0;j<m+w;j++)
{
cout<<"輸入編號為"<<i+1<<"院系的的運(yùn)動項(xiàng)目編號為"<<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("運(yùn)動會成績.txt");
ofs<<"將最終學(xué)院參加的對應(yīng)項(xiàng)目成績列表列出(行表示學(xué)院編號,列表示項(xiàng)目編號)"<<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<<"的學(xué)院總分的成績?yōu)?"<<academytotalscore(i)<<endl;
ofs<<"編號為"<<i<<"的學(xué)院男團(tuán)的成績?yōu)?"<<academymentotalscore(i)<<endl;
ofs<<"編號為"<<i<<"的學(xué)院女團(tuán)的成績?yōu)?"<<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)//院女團(tuán)總分
{
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)//院男團(tuán)總分
{
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<<"按院系總分從大到小排序,以及對應(yīng)的院系編號為:"<<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()//按男團(tuán)總分排序
{
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<<"按男團(tuán)總分從大到小排序,以及對應(yīng)的院系編號為:"<<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()//按女團(tuán)總分排序
{
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<<"按女團(tuán)總分從大到小排序,以及對應(yīng)的院系編號為:"<<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 查詢該院該單項(xiàng)成績的總分, 2 查詢該院總分,,3 查詢該院男團(tuán)總分,4 查詢該院女團(tuán)總分,5 按項(xiàng)目編號查詢,0 退出查詢"<<endl;
cout<<"請選擇:";
cin>>k;
if(k<0||k>5) //判斷輸入的操作編號是否在目錄中,如果超出范圍重新輸入
{
cout<<"輸入有誤,請重新輸入要操作的項(xiàng)目編號";
cin>>k;
}
switch(k)
{
case 1:
cout<<"編號為"<<academynum<<"的學(xué)院的第"<<projectnum<<"個項(xiàng)目的成績?yōu)?";
cout<<score[academynum-1][projectnum-1]<<endl;break;
case 2:
cout<<"該院總分為:"<<academytotalscore(academynum)<<endl;break;
case 3:
cout<<"該院男團(tuán)總分為:"<<academymentotalscore(academynum)<<endl;break;
case 4:
cout<<"該院女團(tuán)總分:"<<academywomentotalscore(academynum)<<endl;break;
case 5:
cout<<"不同院系對應(yīng)的第"<<projectnum<<"個項(xiàng)目的成績?yōu)?"<<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<<"請重新輸入該項(xiàng)成績:";
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<<"該學(xué)院運(yùn)動項(xiàng)目編號及對應(yīng)的成績?nèi)缦拢?<<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<<"該院男團(tuán)成績?yōu)?<<academymentotalscore(academynum)<<endl;
cout<<"該院女團(tuán)成績?yōu)?<<academywomentotalscore(academynum)<<endl;
}
/////////////////////////////////////////////////////
void main()
{
int projectnum;
int academynum;
gamescore a;
int num;
////////////////////////////////////////////菜單
cout<<" ****廣東海洋大學(xué)運(yùn)動會成績管理系統(tǒng)****"<<endl;
cout<<endl;
cout<<" **********************************************"<<endl;
cout<<" ** 1 輸入院系及其參加項(xiàng)目的成績 **"<<endl;
cout<<" ** 2 查詢某個院系參加某個項(xiàng)目的成績 **"<<endl;
cout<<" ** 3 修改一個項(xiàng)目的成績 **"<<endl;
cout<<" ** 4 刪除錯誤成績的記錄 **"<<endl;
cout<<" ** 5 輸出某個院系的得分表 **"<<endl;
cout<<" ** 6 輸出院系的團(tuán)體得分表 **"<<endl;
cout<<" ** 7 對成績按院系進(jìn)行排序 **"<<endl;
cout<<" ** 8 對成績按男團(tuán)進(jìn)行排序 **"<<endl;
cout<<" ** 9 對成績按女團(tuán)進(jìn)行排序 **"<<endl;
cout<<" ** 10 保存成績信息 **"<<endl;
cout<<" ** 0 退出該程序 **"<<endl;
cout<<" **********************************************"<<endl<<endl;
cout<<" 輸入?yún)⒓釉合禂?shù) n=";
cin>>n;
cout<<" 輸入男子項(xiàng)目數(shù) m=";
cin>>m;
cout<<" 輸入女子項(xiàng)目數(shù) w=";
cin>>w;
do{
cout<<"請選擇要操作的菜單標(biāo)號:";
cin>>num;
if(num>10||num<0)
{
cout<<"輸入有誤,請重新輸入要操作的項(xiàng)目編號:";
cin>>num;
}
switch(num)
{
case 1:
a.input();
break;
case 2:
cout<<"輸入要查找的院系:";
cin>>academynum;
cout<<"輸入要查詢的運(yùn)動項(xiàng)目編號:";
cin>>projectnum;
a.search(academynum,projectnum);
break;
case 3:
cout<<"輸入要修改的院系編號";
cin>>academynum;
cout<<"輸入要修改的運(yùn)動項(xiàng)目的編號:";
cin>>projectnum;
a.repair(academynum,projectnum);
break;
case 4:
cout<<"輸入要刪除成績所在的院系的編號:";
cin>>academynum;
cout<<"輸入要刪除運(yùn)動項(xiàng)目編號:";
cin>>projectnum;
a.remove(academynum,projectnum);
break;
case 5:
cout<<"輸入要查詢成績的院系編號:";
cin>>academynum;
a.output1(academynum);
break;
case 6:
cout<<"輸入要查詢團(tuán)體成績的院系的編號:";
cin>>academynum;
a.output2(academynum);
break;
case 7:
cout<<"該學(xué)院運(yùn)動項(xiàng)目編號及對應(yīng)學(xué)院總分的成績?nèi)缦?";
a.hold();
a.sort1();break;
case 8:
cout<<"該學(xué)院運(yùn)動項(xiàng)目編號及對應(yīng)男團(tuán)的成績?nèi)缦?";
a.hold();
a.sort2();break;
case 9:
cout<<"該學(xué)院運(yùn)動項(xiàng)目編號及對應(yīng)女團(tuán)的成績?nèi)缦?";
a.hold();
a.sort3();break;
case 10:
a.save();
cout<<"!!保存成功"<<endl;break;
default: return;
}
}while(1);
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
欄 目:C語言
本文標(biāo)題:C++課程設(shè)計(jì)之運(yùn)動會管理系統(tǒng)
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/673.html
您可能感興趣的文章
- 04-02c語言沒有round函數(shù) round c語言
- 01-10數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)- 解析最少換車次數(shù)的問題詳解
- 01-10數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-用棧實(shí)現(xiàn)表達(dá)式求值的方法詳解
- 01-10深入理解C++中常見的關(guān)鍵字含義
- 01-10使用C++實(shí)現(xiàn)全排列算法的方法詳解
- 01-10c++中inline的用法分析
- 01-10用C++實(shí)現(xiàn)DBSCAN聚類算法
- 01-10全排列算法的非遞歸實(shí)現(xiàn)與遞歸實(shí)現(xiàn)的方法(C++)
- 01-10C++大數(shù)模板(推薦)
- 01-10淺談C/C++中的static與extern關(guān)鍵字的使用詳解


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10C#中split用法實(shí)例總結(jié)
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10delphi制作wav文件的方法
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改


