/************************************************************************/
/* 案例 评委打分
/* 有5名选手ABCDE,10名评委对每位选手打分,去掉最高分最低分取平均值
/* 1. 创建5名选手,放到vector容器
/* 2. 遍历vector容器,取出每个选手进行打分,将10个评分放到deque容器
/* 3. sort算法对deque进行分数排序,去除最高分最低分
/* 4. deque容器遍历,取平均值
/************************************************************************/
#include <iostream>
#include <string>
#include <deque>
#include <cstdlib>
#include <vector>
#include <algorithm>
using namespace std;
class Person
{
public:
Person(string name, int score)
{
this->m_Name = name;
this->m_Score = score;
}
string m_Name;
int m_Score;
};
void CreatePerson(vector<Person>& player)
{
string nameSeed = "ABCDE";
for (int i = 0; i < 5; i++)
{
string name = "选手_";
name += nameSeed[i];
int score = 0;
Person p(name, score);
player.push_back(p);
}
}
void PrintPlayer(const vector<Person>& p)
{
for (vector<Person>::const_iterator it = p.begin(); it != p.end(); it++)
{
cout << (*it).m_Name << " ";
cout << (*it).m_Score << endl;
}
}
void setScore(vector<Person>& p)
{
for (vector<Person>::iterator it = p.begin(); it != p.end(); it++)
{
deque<int> score;
for (int i = 0; i < 10; i++)
{
int sc = rand() % 41 + 60;
score.push_back(sc);
}
sort(score.begin(), score.end());
score.pop_back();
score.pop_front();
int sum = 0;
for (deque<int>::iterator dt = score.begin(); dt != score.end(); dt++)
{
sum += (*dt);
}
(*it).m_Score = sum / score.size();
}
}
int main()
{
//1. 创建5名选手
vector<Person> player;
CreatePerson(player);
//2. 评分
setScore(player);
PrintPlayer(player);
system("pause");
return 0;
}
网友评论