案例:有5名选手:选手ABCDE,10个评委分别对每一名选手打分, 去除最高分,去除评委中最低分,取平均分,最后输出每位选手的分数
设计思路还不成熟,一些小错误经常有
- 类不实例对象直接先调用方法
- 双层for循环的使用
- 随机数种子
- 用%取余限定范围
#include <iostream>
#include<vector>
#include<string>
#include<time.h>
#include<algorithm>
#include<deque>
using namespace std;
class Person
{
public:
Person(string name,int sore) {
this->name=name;
this->sore=sore;
}
public:
string name;
int sore;
};
string nameTMP="ABCDE";
void CreatePerson(vector<Person>&v)
{
for(int i=0;i<5;i++)
{
string name="选手";
name+=nameTMP[i];
v.push_back(Person(name,0)); //选手分数放入容器中
}
}
void PrintPerson(vector<Person>&v)
{
for(vector<Person>::iterator it=v.begin();it!=v.end();it++)
cout<<(*it).name<<" "<<(*it).sore<<endl;
}
void playGame(vector<Person>&v)
{
srand(time(NULL));
for(vector<Person>::iterator it =v.begin();it!=v.end();it++)
{
deque<int>d;
for(int i=0;i<10;i++)//十个评委对每一个选手打分放入deque容器中
{
int sore=rand()%40+60;//60-100
d.push_back(sore);
}
sort(d.begin(),d.end());
d.pop_back();;
d.pop_front();
int sum=accumulate(d.begin(),d.end(),0);
(*it).sore=sum/d.size();
}
}
int main(int argc, char *argv[])
{
vector<Person> v;
CreatePerson(v);
playGame(v);
PrintPerson(v);
return 0;
}