有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。
// run
// g++ .\pingweidafen.cpp -o .\test; chcp 65001 ; .\test
#include <iostream>
#include <vector>
#include <deque>
#include <algorithm>
#include <string>
#include <ctime>
using namespace std;
class Person
{
private:
int m_score;
string m_name;
public:
Person(string name, int score)
{
m_name = name;
m_score = score;
}
void showPerson() const
{
cout << "名字:" << m_name << " 分数:" << m_score << endl;
}
void setScore(int score)
{
m_score = score;
}
~Person()
{}
};
void printPerson(const vector<Person>& vec)
{
for (vector<Person>::const_iterator it = vec.begin(); it != vec.end(); it++)
{
it->showPerson();
}
}
void creatPerson(vector<Person>& vec)
{
string player_key = "ABCDE";
for (int i = 0; i < player_key.size(); i++)
{
string str_name = "选手";
str_name += player_key[i];
Person p(str_name, 0);
vec.push_back(p);
}
}
void setPersonScore(vector<Person>& vec)
{
for(vector<Person>::iterator it = vec.begin(); it != vec.end(); it ++)
{
deque<int> deq;
for (int i = 0; i < 10; i++)
{
int set_score = rand() % 41 + 60;
deq.push_back(set_score);
}
sort(deq.begin(), deq.end());
deq.pop_front();
deq.pop_back();
int sum_score = 0;
for (deque<int>::iterator dit = deq.begin(); dit != deq.end(); dit++)
{
sum_score += *dit;
}
sum_score /= 8;
(*it).setScore(sum_score);
}
}
int main()
{
//随机数种子
srand((unsigned int)time(NULL));
vector<Person> vec;
creatPerson(vec);
// printPerson(vec);
setPersonScore(vec);
printPerson(vec);
system("pause");
return 0;
}