0.前言
1.系统自动生成的评委评分代码:
#include <iostream>
using namespace std;
#include <deque>
#include <vector>
#include <algorithm>
#include <string>
class Player
{
public:
Player(string name, float score)
{
m_Name = name;
m_Score = score;
}
string m_Name;
float m_Score;
};
void createPlayer(vector<Player>& player)
{
string Sname = "ABCDE";
for (int i = 0; i < 5; i++)
{
string name = "选手";
name += Sname[i];
float score = 0;
Player p(name, score);
player.push_back(p);
}
}
void setScore(vector<Player>& player)
{
srand((unsigned int)time(NULL));
for (vector<Player>::iterator it = player.begin(); it != player.end(); it++)
{
deque<int>d;
for (int i = 0; i < 10; i++)
{
float score = rand() % 41 + 60;
d.push_back(score);
}
sort(d.begin(), d.end());
d.pop_back();
d.pop_front();
float sum = 0;
for (deque<int>::iterator dit = d.begin(); dit != d.end(); dit++)
{
sum += *dit;
}
float avg = sum / d.size();
it->m_Score = avg;
}
}
void showScore(vector<Player>& player)
{
for (vector<Player>::iterator it = player.begin(); it != player.end(); it++)
{
cout << it->m_Name << "\t\t" << "平均分为:" << it->m_Score << endl;
}
cout << "选手评分结束!" << endl;
}
int main()
{
vector<Player>player;
createPlayer(player);
setScore(player);
showScore(player);
system("pause");
return 0;
}
2.用户手动输入评委评分代码:
#include <iostream>
using namespace std;
#include <deque>
#include <vector>
#include <algorithm>
#include <string>
class Player
{
public:
Player(string name, float score)
{
m_Name = name;
m_Score = score;
}
string m_Name;
float m_Score;
};
void createPlayer(vector<Player>& player)
{
string Sname = "ABCDE";
for (int i = 0; i < 5; i++)
{
string name = "选手";
name += Sname[i];
float score = 0;
Player p(name, score);
player.push_back(p);
}
}
void setScore(vector<Player>& player)
{
cout << "请在场的十位评委们给选手们打分:" << endl;
for (vector<Player>::iterator it = player.begin(); it != player.end(); it++)
{
cout << it->m_Name << " 的十个分数分别为:" << endl;
deque<int>d;
for (int i = 0; i < 10; i++)
{
float score;
cin >> score;
d.push_back(score);
}
sort(d.begin(), d.end());
d.pop_back();
d.pop_front();
float sum = 0;
for (deque<int>::iterator dit = d.begin(); dit != d.end(); dit++)
{
sum += *dit;
}
float avg = sum / d.size();
it->m_Score = avg;
}
}
void showScore(vector<Player>& player)
{
cout << "各选手的得分情况如下:" << endl;
for (vector<Player>::iterator it = player.begin(); it != player.end(); it++)
{
cout << it->m_Name << "\t\t" << "平均分为:" << it->m_Score << endl;
}
cout << "选手评分结束!" << endl;
}
int main()
{
vector<Player>player;
createPlayer(player);
setScore(player);
showScore(player);
system("pause");
return 0;
}