C++課程設(shè)計(jì)之運(yùn)動會管理系統(tǒng)
更新時(shí)間:2018年10月18日 09:49:30 作者:自動化1123班潘國成
這篇文章主要為大家詳細(xì)介紹了C++課程設(shè)計(jì)之運(yùn)動會管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(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個(gè),每項(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<<"成績輸入錯(cuò)誤,請檢查后再輸入"<<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<<"個(gè)項(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<<"個(gè)項(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 查詢某個(gè)院系參加某個(gè)項(xiàng)目的成績 **"<<endl;
cout<<" ** 3 修改一個(gè)項(xiàng)目的成績 **"<<endl;
cout<<" ** 4 刪除錯(cuò)誤成績的記錄 **"<<endl;
cout<<" ** 5 輸出某個(gè)院系的得分表 **"<<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<<"輸入要?jiǎng)h除成績所在的院系的編號:";
cin>>academynum;
cout<<"輸入要?jiǎng)h除運(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++學(xué)校運(yùn)動會管理系統(tǒng)的實(shí)現(xiàn)
- C++實(shí)現(xiàn)學(xué)校運(yùn)動會管理系統(tǒng)
- linux下C/C++學(xué)生信息管理系統(tǒng)
- C++實(shí)現(xiàn)企業(yè)職工工資管理系統(tǒng)
- C++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng)
- C++實(shí)現(xiàn)停車場管理系統(tǒng)
- 基于C++語言實(shí)現(xiàn)機(jī)動車違章處罰管理系統(tǒng)
- C++學(xué)生信息管理系統(tǒng)
- C++實(shí)現(xiàn)簡單的信息管理系統(tǒng)
- C++實(shí)現(xiàn)簡單職工管理系統(tǒng)
- C++基礎(chǔ)學(xué)生管理系統(tǒng)
- C++實(shí)現(xiàn)簡單的圖書管理系統(tǒng)
- C++實(shí)現(xiàn)簡單職工信息管理系統(tǒng)
- C++實(shí)現(xiàn)簡單的學(xué)生管理系統(tǒng)
- C++實(shí)現(xiàn)病人就醫(yī)管理系統(tǒng)
相關(guān)文章
floyd算法實(shí)現(xiàn)思路及實(shí)例代碼
這篇文章主要介紹了floyd算法實(shí)現(xiàn)思路及實(shí)例代碼,有需要的朋友可以參考一下2014-01-01
Visual Studio 2019 DLL動態(tài)庫連接實(shí)例(圖文教程)
這篇文章主要介紹了Visual Studio 2019 DLL動態(tài)庫連接實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
C語言計(jì)算代碼執(zhí)行所耗CPU時(shí)鐘周期
本文給大家介紹的是使用C語言來計(jì)算代碼執(zhí)行所耗CPU時(shí)鐘周期的代碼,非常的簡單實(shí)用,不過要依托于sync,有需要的小伙伴自己參考下吧。2015-03-03
C++連接mysql數(shù)據(jù)庫并讀取數(shù)據(jù)的具體步驟
在實(shí)際開發(fā)中我們經(jīng)常需要對數(shù)據(jù)庫進(jìn)行訪問,針對不同類型的數(shù)據(jù)庫(如MySQL、sqLite、Access、Excel等),如果采用不同的方法進(jìn)行連接,會把我們搞崩潰,下面這篇文章主要給大家介紹了關(guān)于C++連接mysql數(shù)據(jù)庫并讀取數(shù)據(jù)的具體步驟,需要的朋友可以參考下2023-04-04

