C++課程設(shè)計(jì)之運(yùn)動(dòng)會(huì)管理系統(tǒng)
本文實(shí)例為大家分享了C++運(yùn)動(dòng)會(huì)管理系統(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; //院系編號(hào)
int score[MAX][MAX]; //記錄成績(jī)的2維數(shù)組
int totalscore[MAX]; //院總分存儲(chǔ)數(shù)組
int mentotalscore[MAX]; //男團(tuán)總分存儲(chǔ)數(shù)組
int womentotalscore[MAX];//女團(tuán)總分存儲(chǔ)數(shù)組
int projectnum; //項(xiàng)目編號(hào)
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(); //保存成績(jī)
void input();
void sort1(); //按院總分排序
void sort2(); //按男團(tuán)總分排序
void sort3(); //按女團(tuán)總分排序
void hold(); //存儲(chǔ)總分?jǐn)?shù)
int academytotalscore(int academynum); //院總分
int academywomentotalscore(int academynum); //院女團(tuán)總分
int academymentotalscore(int academynum); //院男團(tuán)總分
void output1(int academy); //輸出院系的成績(jī)列表
void output2(int academynum); //輸出院系的團(tuán)體成績(jī)列表
};
void gamescore::input()
{ int i,j;
for(i=0;i<n;i++)
{ cout<<"輸入編號(hào)為"<<i+1<<"院系的成績(jī)(若參賽人數(shù)超過(guò)6人,取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1,否則參賽院系不超過(guò)6個(gè),每項(xiàng)目取前三名,分別為5,3,2分,其余記成績(jī)?yōu)?)"<<endl;
for(j=0;j<m+w;j++)
{
cout<<"輸入編號(hào)為"<<i+1<<"院系的的運(yùn)動(dòng)項(xiàng)目編號(hào)為"<<j+1<<"的成績(jī):";
cin>>score[i][j];
if(score[i][j]!=0&&score[i][j]!=2&&score[i][j]!=5&&score[i][j]!=10)
{
cout<<"成績(jī)輸入錯(cuò)誤,請(qǐng)檢查后再輸入"<<endl;
cin>>score[i][j];
}
}
}
if(i=n-1) cout<<"!!輸入完畢"<<endl;
}
void gamescore::save()
{ ofstream ofs("運(yùn)動(dòng)會(huì)成績(jī).txt");
ofs<<"將最終學(xué)院參加的對(duì)應(yīng)項(xiàng)目成績(jī)列表列出(行表示學(xué)院編號(hào),列表示項(xiàng)目編號(hào))"<<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<<"編號(hào)為"<<i<<"的學(xué)院總分的成績(jī)?yōu)?"<<academytotalscore(i)<<endl;
ofs<<"編號(hào)為"<<i<<"的學(xué)院男團(tuán)的成績(jī)?yōu)?"<<academymentotalscore(i)<<endl;
ofs<<"編號(hào)為"<<i<<"的學(xué)院女團(tuán)的成績(jī)?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()//存儲(chǔ)總分
{
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<<"按院系總分從大到小排序,以及對(duì)應(yīng)的院系編號(hào)為:"<<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)總分從大到小排序,以及對(duì)應(yīng)的院系編號(hào)為:"<<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)總分從大到小排序,以及對(duì)應(yīng)的院系編號(hào)為:"<<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 查詢(xún)?cè)撛涸搯雾?xiàng)成績(jī)的總分, 2 查詢(xún)?cè)撛嚎偡?,3 查詢(xún)?cè)撛耗袌F(tuán)總分,4 查詢(xún)?cè)撛号畧F(tuán)總分,5 按項(xiàng)目編號(hào)查詢(xún),0 退出查詢(xún)"<<endl;
cout<<"請(qǐng)選擇:";
cin>>k;
if(k<0||k>5) //判斷輸入的操作編號(hào)是否在目錄中,如果超出范圍重新輸入
{
cout<<"輸入有誤,請(qǐng)重新輸入要操作的項(xiàng)目編號(hào)";
cin>>k;
}
switch(k)
{
case 1:
cout<<"編號(hào)為"<<academynum<<"的學(xué)院的第"<<projectnum<<"個(gè)項(xiàng)目的成績(jī)?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<<"不同院系對(duì)應(yīng)的第"<<projectnum<<"個(gè)項(xiàng)目的成績(jī)?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<<"請(qǐng)重新輸入該項(xiàng)成績(jī):";
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)動(dòng)項(xiàng)目編號(hào)及對(duì)應(yīng)的成績(jī)?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)成績(jī)?yōu)?<<academymentotalscore(academynum)<<endl;
cout<<"該院女團(tuán)成績(jī)?yōu)?<<academywomentotalscore(academynum)<<endl;
}
/////////////////////////////////////////////////////
void main()
{
int projectnum;
int academynum;
gamescore a;
int num;
////////////////////////////////////////////菜單
cout<<" ****廣東海洋大學(xué)運(yùn)動(dòng)會(huì)成績(jī)管理系統(tǒng)****"<<endl;
cout<<endl;
cout<<" **********************************************"<<endl;
cout<<" ** 1 輸入院系及其參加項(xiàng)目的成績(jī) **"<<endl;
cout<<" ** 2 查詢(xún)某個(gè)院系參加某個(gè)項(xiàng)目的成績(jī) **"<<endl;
cout<<" ** 3 修改一個(gè)項(xiàng)目的成績(jī) **"<<endl;
cout<<" ** 4 刪除錯(cuò)誤成績(jī)的記錄 **"<<endl;
cout<<" ** 5 輸出某個(gè)院系的得分表 **"<<endl;
cout<<" ** 6 輸出院系的團(tuán)體得分表 **"<<endl;
cout<<" ** 7 對(duì)成績(jī)按院系進(jìn)行排序 **"<<endl;
cout<<" ** 8 對(duì)成績(jī)按男團(tuán)進(jìn)行排序 **"<<endl;
cout<<" ** 9 對(duì)成績(jī)按女團(tuán)進(jìn)行排序 **"<<endl;
cout<<" ** 10 保存成績(jī)信息 **"<<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<<"請(qǐng)選擇要操作的菜單標(biāo)號(hào):";
cin>>num;
if(num>10||num<0)
{
cout<<"輸入有誤,請(qǐng)重新輸入要操作的項(xiàng)目編號(hào):";
cin>>num;
}
switch(num)
{
case 1:
a.input();
break;
case 2:
cout<<"輸入要查找的院系:";
cin>>academynum;
cout<<"輸入要查詢(xún)的運(yùn)動(dòng)項(xiàng)目編號(hào):";
cin>>projectnum;
a.search(academynum,projectnum);
break;
case 3:
cout<<"輸入要修改的院系編號(hào)";
cin>>academynum;
cout<<"輸入要修改的運(yùn)動(dòng)項(xiàng)目的編號(hào):";
cin>>projectnum;
a.repair(academynum,projectnum);
break;
case 4:
cout<<"輸入要?jiǎng)h除成績(jī)所在的院系的編號(hào):";
cin>>academynum;
cout<<"輸入要?jiǎng)h除運(yùn)動(dòng)項(xiàng)目編號(hào):";
cin>>projectnum;
a.remove(academynum,projectnum);
break;
case 5:
cout<<"輸入要查詢(xún)成績(jī)的院系編號(hào):";
cin>>academynum;
a.output1(academynum);
break;
case 6:
cout<<"輸入要查詢(xún)團(tuán)體成績(jī)的院系的編號(hào):";
cin>>academynum;
a.output2(academynum);
break;
case 7:
cout<<"該學(xué)院運(yùn)動(dòng)項(xiàng)目編號(hào)及對(duì)應(yīng)學(xué)院總分的成績(jī)?nèi)缦?";
a.hold();
a.sort1();break;
case 8:
cout<<"該學(xué)院運(yùn)動(dòng)項(xiàng)目編號(hào)及對(duì)應(yīng)男團(tuán)的成績(jī)?nèi)缦?";
a.hold();
a.sort2();break;
case 9:
cout<<"該學(xué)院運(yùn)動(dòng)項(xiàng)目編號(hào)及對(duì)應(yīng)女團(tuán)的成績(jī)?nèi)缦?";
a.hold();
a.sort3();break;
case 10:
a.save();
cout<<"!!保存成功"<<endl;break;
default: return;
}
}while(1);
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C++學(xué)校運(yùn)動(dòng)會(huì)管理系統(tǒng)的實(shí)現(xiàn)
- C++實(shí)現(xiàn)學(xué)校運(yùn)動(dòng)會(huì)管理系統(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)停車(chē)場(chǎng)管理系統(tǒng)
- 基于C++語(yǔ)言實(shí)現(xiàn)機(jī)動(dòng)車(chē)違章處罰管理系統(tǒng)
- C++學(xué)生信息管理系統(tǒng)
- C++實(shí)現(xiàn)簡(jiǎn)單的信息管理系統(tǒng)
- C++實(shí)現(xiàn)簡(jiǎn)單職工管理系統(tǒng)
- C++基礎(chǔ)學(xué)生管理系統(tǒng)
- C++實(shí)現(xiàn)簡(jiǎn)單的圖書(shū)管理系統(tǒng)
- C++實(shí)現(xiàn)簡(jiǎn)單職工信息管理系統(tǒng)
- C++實(shí)現(xiàn)簡(jiǎ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動(dòng)態(tài)庫(kù)連接實(shí)例(圖文教程)
這篇文章主要介紹了Visual Studio 2019 DLL動(dòng)態(tài)庫(kù)連接實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
C語(yǔ)言計(jì)算代碼執(zhí)行所耗CPU時(shí)鐘周期
本文給大家介紹的是使用C語(yǔ)言來(lái)計(jì)算代碼執(zhí)行所耗CPU時(shí)鐘周期的代碼,非常的簡(jiǎn)單實(shí)用,不過(guò)要依托于sync,有需要的小伙伴自己參考下吧。2015-03-03
C++連接mysql數(shù)據(jù)庫(kù)并讀取數(shù)據(jù)的具體步驟
在實(shí)際開(kāi)發(fā)中我們經(jīng)常需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),針對(duì)不同類(lèi)型的數(shù)據(jù)庫(kù)(如MySQL、sqLite、Access、Excel等),如果采用不同的方法進(jìn)行連接,會(huì)把我們搞崩潰,下面這篇文章主要給大家介紹了關(guān)于C++連接mysql數(shù)據(jù)庫(kù)并讀取數(shù)據(jù)的具體步驟,需要的朋友可以參考下2023-04-04
VScode+ESP32簡(jiǎn)單環(huán)境搭建
本文章向大家介紹ESP32-C3搭建環(huán)境教程,主要包括ESP32-C3搭建環(huán)境教程使用實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
詳解C語(yǔ)言的基本數(shù)據(jù)類(lèi)型
這篇文章主要為大家介紹了C語(yǔ)言的基本數(shù)據(jù)類(lèi)型,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01

