为了账号安全,请及时绑定邮箱和手机立即绑定

编程题

设计歌手类
包括编号,姓名,各评委打分等属性
可以打印当前最高分,最低分选手属性
打印已出场人数
可以按照平均分由高到低打印已出场选手属性
写出main函数中模拟n个选手出场的过程
使用静态函数

正在回答

2 回答

0.0

0 回复 有任何疑惑可以回复我~

//慢了楼上一步,呵呵.
//VC编译通过,功能也都实现了.

#include
#include
using namespace std;

#define N 5
class cSinger
{
private:
char sNum[3];
char *sName;//姓名
int sScore[N]; //成绩
double ave; //平均分
static int count; //累加计数器
public:
cSinger(char *sNumber,char *sN)
{
int i;
for(i=0;isNum[i]=sNumber[i];
sName=new char[strlen(sN)+1];
strcpy(sName,sN);
ave=0.0;
for(i=0;isScore[i]=0;
count++;
}
~cSinger(){delete[] sName;}
void sScored();
void sShow();
//float getScore(){return score;}
//float getAve(){return total;}
int getCount(){return count;}
double getAve(){return ave;}
int cmpToSinger(cSinger s2);
};
int cSinger::count=0;
void cSinger::sScored()
{
int i,sum=0;
coutfor(i=0;i{
cin>>sScore[i];
sum+=sScore[i];
}
ave=(double)sum/N;
coutfor(i=0;i coutcoutcoutcin>>sum;
if(sum!=0) sScored();
return;
}
void cSinger::sShow()
{
int i;
coutfor(i=0;i coutcout cout}
int cSinger::cmpToSinger(cSinger s2)
{

if(ave>s2.getAve()) return 1;
else if(ave==s2.getAve()) return 0;
else return -1;

}

void main()
{
int i,j,tem,maxIndex=0,minIndex=0;
int list[5]={0,1,2,3,4};
cSinger sSinger[5]={cSinger("001","nanhua"),cSinger("002","sueli"),cSinger("003","luli"),cSinger("004","wangxi"),cSinger("005","xiadi")};

//输入模块
for(i=0;i sSinger[i].sScored();

//最高最低分:
for(i=1;i{
if(sSinger[maxIndex].cmpToSinger(sSinger[i])if(sSinger[minIndex].cmpToSinger(sSinger[i])>0){minIndex=i;}
}
coutsSinger[maxIndex].sShow();
coutsSinger[minIndex].sShow();

//按平均分输出:
for(i=0;ifor(j=i+1;jif(sSinger[i].cmpToSinger(sSinger[j])coutfor(i=0;isSinger[(list[i])].sShow();

}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之模板篇
  • 参与学习       91156    人
  • 解答问题       318    个

本C++教程力求即学即会,所有知识以实践方式讲解到操作层面

进入课程
意见反馈 帮助中心 APP下载
官方微信