录入5个评委的成绩c语言,求C语言 歌手成绩管理系统代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

我这里有之前有用c++写过 所以~~~

c语言过些时候在给出咯~~

#include 

using namespace std;

const int nPWS =30; //评委数

const int nSingers =20; //参赛选手数

typedef struct _TSinger

{

char szName[20]; //20

double nScore[nPWS]; //12

double nLScore;

}TSinger;

//

class Application

{

private:

TSinger Singers[20];

TSinger *pSin[20];

int nChoice; //用户选项

void dispMenu1()

{

cout<

cout<

cout<

}

void dispMenu()

{

cout<

cout<

cout<

cout<

cout<

cout<

}

void getChoice()

{

cout<

cin>>nChoice;

}

void SortSingersByLSCore()

{

int i,j;

int index;

TSinger *pTemp; //临时记录LScore最大的歌手

double nMaxScore;

for(i=0; i

{

nMaxScore = pSin[i]->nLScore;

index = i;

for(j=i+1; j

{

if(nMaxScore nLScore)

{

nMaxScore = pSin[j]->nLScore;

index = j;

}

}

if(i!=index)

{

pTemp = pSin[index];

pSin[index] = pSin[i];

pSin[i] = pTemp;

}

}

}

public:

//

//初始化歌手结构体指针

void InitSingerPtr()

{

int i;

for (i=0;i<20;i++)

{

pSin[i]=&(Singers[i]);

memset(pSin[i],0,sizeof(TSinger));

}

}

void InputScores4AllSingers()

{

int i,j;

double nMin, nMax, nSum;

for(i=0;i

{

//录入选手的姓名

cin.ignore();

cout<

cout<

cin.getline(pSin[i]->szName,19);

//录入12名评委的打分----暂时按照nPWS评委测试

cout<

for(j = 0; j

{

cout<

cin>>pSin[i]->nScore[j];

}

//去除最值

nMin = pSin[i]->nScore[0];

nSum = nMin;

nMax = nMin;

for(j=1;j

{

nSum += pSin[i]->nScore[j];

//如果当前分数小于nMin

if( pSin[i]->nScore[j] nScore[j]

nMin = pSin[i]->nScore[j];

else

if( pSin[i]->nScore[j] > nMax ) //pSin[i]->nScore[i]

nMax = pSin[i]->nScore[j];

}

//计算平均

pSin[i]->nLScore = (nSum- nMax - nMin)/(nPWS-2);

cout<

cout<nLScore<

}

}

void Run()

{

do

{

dispMenu();

getChoice();

switch (nChoice)

{

case 1:

cout<

InitSingerPtr();

InputScores4AllSingers();

SortSingersByLSCore();

break;

case 2:

int i,j;

//SortSingersByLSCore();

for(i=0;i

{

cout<szName;

cout<

for(j=0; j

{

cout<nScore[j]<

}

cout<

cout<nLScore<

}

break;

case 3:

break;

case 4:

break;

case 5:

break;

default:

cout<

}

}while(nChoice!=5);

}

};

int main(int argc, char* argv[])

{

Application App;

App.Run();

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值