不会念梼杌 2019-06-20 21:24 采纳率: 0%
浏览 318

为什么输入的数据无法存在,导致无法排序,查询,写入txt文件里的数据也都是初始化数据,没有改变呢?

#include
#include
#include
#include
using namespace std;
class Player
{
private:
int bianhao;
string name;
double average;
double total;
double score[10];
public:

Player()
{
    bianhao=0;
    name="无";
    average=0;
    total=0;
    for(int r=0;r<10;r++)
    {
        score[r]=0;
    }
}
void Scoreset(double score[])
{
    for(int i=0;i<10;i++)
    {
        this->score[i]=score[i];
    }
}
int Bianhaoget()
{
    return bianhao;
}
void Bianhaoset(int bianhao)
{
    this->bianhao=bianhao;
}
string Nameget()
{
    return name;
}
void Nameset(string name)
{
    this->name=name;
}

double Averageget()
{
    double caverage=0;
    for(int i=0;i<10;i++)
    {
        for(int j=i;j<10;j++)
        {
            if(score[i]>score[j])
            {
                double t=score[i];
                score[i]=score[j];
                score[j]=t;
            }
        }
    }
    for(int a=1;a<9;a++)
    {

        caverage=caverage+score[a];
    }
    average=caverage/8;
    return average;
}
void Averageset(double average)
{
    this->average=average;
}
double Totalget()
{
   for(int s=0;s<10;s++)
     {
        total=total+score[s];
     }
   return total;    
}
void Totalset(double total)
{
    this->total=total;
}

};
int main()
{
for(int k=0;k<10;k++)
{
Player player1[10];
int select;
int upper=2;
cout<<"=========主菜单显示如下:=========\n"<<endl;
cout<<"1.输入选手数据及评委打分"<<endl;
cout<<"2.成绩排序(按平均分)"<<endl;
cout<<"3.数据查询"<<endl;
cout<<"4.追加选手数据"<<endl;
cout<<"5.写入数据文件"<<endl;
cout<<"6.退出系统"<<endl;

cout<<"按序号来选择功能:"<<endl;
cin>>select;

if(select==1)
{
    if(upper<=10)
    {
       cout<<"输入学生编号:";
       int newbianhao;
       for(int i=0;i<2;i++) 
         {
           cin>>newbianhao;
           player1[i].Bianhaoset(newbianhao);
         }
       cout<<"输入学生姓名:";
       string newname;
       for(int j=0;j<2;j++)
         {
           cin>>newname;
           player1[j].Nameset(newname);
         }
       cout<<"输入选手的十个评委成绩:";
       double newscore[10];
       for(int a=0;a<2;a++)
         {
           for(int q=0;q<10;q++)
             {
               cin>>newscore[q];
             }
           player1[a].Scoreset(newscore);
         }

     }
    else
    {
        cout<<"人数已满"<<endl;
    }
}
 else if(select==2)
    {
      cout<<"成绩排序:";
      if(upper!=0)
        {
          double average[10];
          for(int r=0;r<upper;r++)
            {
              average[r]=player1[r].Averageget();
            }
          for(int s=0;s<upper;s++)
            {
                for(int p=s;p<upper;p++)
                  {
                    if(average[s]>average[p])
                       {
                         double t=average[s];
                         average[s]=average[p];
                         average[p]=t;
                       }
                   }
            }
          for(int b=0;b<upper;b++)
            {
               cout<<average[b]<<endl;
             }
         }
      else
         {
           cout<<"无人参赛"<<endl;
         }
          cout<<endl;
      }
 else if(select==3)
   {
     cout<<"数据查询"<<endl;
     if(upper!=0)
       {
         cout<<"请输入选手编号:";
         int bianhao=0;
         cin>>bianhao;
         for(int e=0;e<upper;e++)
           {
             if(bianhao==player1[e].Bianhaoget())
               {    
                 cout<<"该选手的编号:"<<player1[e].Bianhaoget()<<endl;
                 cout<<"该选手的姓名:"<<player1[e].Nameget()<<endl;
                 cout<<"该选手的总成绩:"<<player1[e].Totalget()<<endl;
                 cout<<"该选手的平均成绩:"<<player1[e].Averageget()<<endl;
                 break;
               }
    else
        {
        cout<<"Not find"<<endl;
        }
           }
       }
    else
       {
         cout<<"无人参赛"<<endl;
       }
   }
else if(select==4)
  {
    if(upper<=10)
       {
         int xbianhao;
         string xname;
         double xtotal;
         double xaverage;
         cout<<"追加选手数据"<<endl;
         cout<<"输入新选手编号:";
         cin>>xbianhao;
         player1[upper].Bianhaoset(xbianhao);
         cout<<"输入新选手姓名:";
         cin>>xname;
         player1[upper].Nameset(xname);
         cout<<"输入新选手总成绩:";
         cin>>xtotal;
         player1[upper].Totalset(xtotal);
         cout<<"输入新选手平均成绩:";
         cin>>xaverage;
         player1[upper].Averageset(xaverage);
       }
    else
       {
         cout<<"人数已满"<<endl;
       }
  }

else if(select==5)
  {
    cout<<"写入数据文件:";
    fstream inout;
    inout.open("player.txt",ios::out);
      {
        for(int g=0;g<=upper;g++)
          {
             inout<<"选手编号:"<<player1[g].Bianhaoget()<<" "<<"选手姓名:"<<player1[g].Nameget()
                  <<" "<<"选手总成绩:"<<player1[g].Totalget()<<" "<<"选手平均成绩:"<<player1[g].Averageget()<<endl;
           }
        inout.close();
        cout<<"写入完成"<<endl;
      }
   }
else if(select==6)
  {
    exit(0);
  }
}
return 0;

}
图片说明
图片说明
图片说明

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 python代码,帮调试
    • ¥15 #MATLAB仿真#车辆换道路径规划
    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
    • ¥15 数据可视化Python
    • ¥15 要给毕业设计添加扫码登录的功能!!有偿
    • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条