
#include<iostream.h>
#include"string.h"
using namespace std;
class Singer{
public:
string name;
string idNum;
int score[10];
int average;
Singer(){};
Singer(string singerName,string singerId){
name=singerName;
idNum=singerId;
}
int GetAverage(){ //得到平均分
int temp=0;
int max=score[0],min=score[0];
int maxPos=0,minPos=0;
for(int i=0;i<10;i++){
if(max<score[i]){
max=score[i];
maxPos=i;
}
if(min>score[i]){
min=score[i];
minPos=i;
}
}
for(int i=0;i<10;i++){
if(i==maxPos || i==minPos){
continue;
}
temp+=score[i];
}
average=temp/8;
return average;
}
void InputInformation(string singerName,string singerId,int *singerScore){ //提供一个接口函数,一次性录入所有信息
name=singerName;
idNum=singerId;
for(int i=0;i<10;i++){
score[i]=singerScore[i];
}
GetAverage(); //更新平均分
}
void InputScore(){ //输入成绩
for(int i=0;i<10;i++){
cout<<"请输入第"<<i+1<<"位评委的评分"<<endl;
cin>>score[i];
}
GetAverage(); //更新平均分
}
};
class Manager{
public:
Singer singer[10]; //歌手的数量
int singerSize;
Manager(){
singerSize=0;
}
bool JoinSinger(Singer s){
if(singerSize<10){
singer[singerSize]=s;
singerSize++;
return true;
}
return false;
}
void SingerSort(){
int temp=singer[0].average;
Singer singerTemp;
for(int i=0;i<singerSize;i++){
for(int j=0;j<singerSize;j++){
if(singer[j].average<singer[j+1].average){
singerTemp=singer[j];
singer[j]=singer[j+1];
singer[j+1]=singerTemp;
}
}
}
}
void printAllSinger(){
for(int i=0;i<singerSize;i++){
cout<<"歌手名字:"<<singer[i].name<<" 歌手ID:"<<singer[i].idNum<<" 歌手平均分:"<<singer[i].average<<endl;
}
}
};
int printMenu(){
int mode;
cout<<"菜单:"<<endl;
cout<<"1.输入选手数据"<<endl;
cout<<"2.评委打分"<<endl;
cout<<"3.成绩排序"<<endl;
cout<<"4.数据查询"<<endl;
cout<<"5.追加选手数据"<<endl;
cout<<"6.写入数据文件"<<endl;
cout<<"7.退出系统"<<endl;
cin>>mode;
return mode;
}
int main(){
Manager manage;
Singer singerTest;
int scoreTest[10]={100,95,95,78,68,98,99,45,100,87};
string nameTest="I m Test",idTest="20211107";
singerTest.InputInformation(nameTest,idTest,scoreTest);
manage.JoinSinger(singerTest);
int mode;
string name,idn;
int score[10];
while(mode!=7){
string idTemp;
Singer sTemp;
mode=printMenu();
switch(mode){
case 1:
cout<<"输入歌手姓名:";
cin>>name;
cout<<"输入歌手ID:";
cin>>idn;
cout<<"已完成"<<endl;
sTemp=Singer(name,idn);
manage.JoinSinger(sTemp);
break;
case 2:
cout<<"输入歌手ID号";
cin>>idTemp;
for(int i=0;i<manage.singerSize;i++){
if(manage.singer[i].idNum==idTemp){
manage.singer[i].InputScore();
cout<<"已完成"<<endl;
break;
}
}
break;
case 3:
manage.SingerSort();
manage.printAllSinger();
cout<<"已完成"<<endl;
break;
//剩下的自己按照需求完成即可
}
}
return 0;
}