赞
踩
案例描述:
有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分
实现步骤
1. 创建五名选手,放到vector中
2. 遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中
3. sort算法对deque容器中分数排序,去除最高和最低分
4. deque容器遍历一遍,累加总分
5. 获取平均分
- #include <iostream>
- #include<vector>
- #include<algorithm>//算法 头文件
- #include<string>
- #include<deque>
- #include<ctime>
- using namespace std;
- //案例描述:
- //有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分
- // 实现步骤
- //1. 创建五名选手,放到vector中
- //2. 遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中
- //3. sort算法对deque容器中分数排序,去除最高和最低分
- //4. deque容器遍历一遍,累加总分
- //5. 获取平均分
-
- //选手类
- 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>&v){
- string nameSeed="ABCDE";
- for(int i=0;i<5;i++){
- string name="选手";
- name+=nameSeed [i];//小技巧
-
- int score=0;
- Person p(name,score);//在这不处理分数的原因是想在deque容器中处理
-
- //将创建的person对象 放入到容器中
- v.push_back(p);
- }
- }
- //打分
- void setScore(vector<Person>&v){
- for(vector<Person>::iterator it=v.begin();it!=v.end();it++){
- //将评委的分数放入到deque容器中
- deque<int>d;
- for(int i=0;i<10;i++){
- int score=rand()%41+60;
- d.push_back(score);
- }
-
- //测试代码
- cout<<"选手:"<<it->m_Name<<"打分"<<endl;
- for(deque<int>::iterator dit=d.begin();dit!=d.end();dit++){
- cout<<*dit<<" ";//10列
- }
- cout<<endl;
-
- //排序
- sort(d.begin(),d.end());
-
- //去除最高和最低分
- d.pop_back();
- d.pop_front();
-
- //取平均分
- int sum=0;
- for(deque<int>::iterator dit=d.begin();dit!=d.end();dit++){
- sum+=*dit;//累加每个评委分数
- }
-
- int avg=sum/d.size();
-
- //将平均分 赋值给选手身上
- it->m_Score=avg;
- }
- }
-
- void showScore(vector<Person>&v){
- for(vector<Person>::iterator it=v.begin();it!=v.end();it++){
- cout<<"姓名"<<it->m_Name<<"平均分:"<<it->m_Score<<endl;
- }
- }
- void test01(){
- //1.创建五名选手
- vector<Person>v;
- createPerson(v);
- //测试
- // for(vector<Person>::iterator it=v.begin();it!=v.end();it++){
- // cout<<"姓名"<<(*it).m_Name<<"分数"<<(*it).m_Score<<endl;
- // }
- //2.给五名选手打分
- setScore(v);
- // 3.显示最后得分
- showScore(v);
-
-
-
-
- }
- int main()
- {
- //随机种子
- srand((unsigned int)time(NULL));
- test01();
- system("pause");
- }
注意看注释
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。