利用简单STL编写打分并计算平均分的小案例
#include<iostream>
#include<vector>
#include<deque>
#include<algorithm>
#include<string>
**//#include<ctime>//通过系统时间算随机数**
using namespace std;
class Person
{
public:
Person(string n)
{
name = n;
}
deque<float> score;
float sum=0;
float ave;
string name;
};
void Create(vector<Person>& v)
{
string s = "ABCDE";
for (int i = 0; i < 5; ++i)
{
string sname ("选手");
sname += s[i];
Person p(sname);
v.push_back(p);
}
}
int main()
{
vector<Person> v;
Create(v);
char x = 'A';
for (int i = 0; i < v.size(); ++i)
{
cout << "请为选手"<<x<<"打分:";
//可用随机数生成
**//srand((unsigned int)time(NULL));//随机数种子**
for (int j = 0; j < 10; ++j)
{
float s;
**//s = rand() % 41 + 60;//即随机数在60~100**
cin >> s;
v[i].sum += s;
v[i].score.push_back(s);
}
sort(v[i].score.begin(), v[i].score.end());//排序
v[i].sum -= v[i].score[0];
v[i].sum -= v[i].score[9];
v[i].score.pop_back();//去除高分和低分
v[i].score.pop_front();
++x;
v[i].ave = v[i].sum / v[i].score.size();//计算平均分
}
for (int i = 0; i < v.size(); ++i)//输出
cout << v[i].name << "的平均分:" << v[i].ave << endl;
}