c语言程序设计c++

img


#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;
}