210讲 STL案例1-评委打分
内容纲要

210讲 STL案例1-评委打分

案例描述

有5 名选手:ABCDE ,10个评委分别对每一名选手打分,去掉一个最高分,去掉评委中最低分,取平均分。

实现步骤

  1. 创建5 名选手,放到vector 中

  2. 遍历vector 容器,取出每一个选手,执行for 循环,可以把10个评分打分到deque 容器中

  3. sort 算法对 deque容器中分数排序,去掉最高分和最低分

  4. deque容器遍历一遍,累加总分。

  5. 获取平均分

#include<iostream>
#include"string"
#include<vector>
#include<ctime>   
#include<deque>
#include<algorithm>
using namespace std;
class Sector {
public:
    Sector(string name,deque<int> score)
    {
        this->name = name;
        this->score = score;
    }
    string name;
    deque<int> score;
    //平均分
    double averageSCORE;

};

/*
1. 创建5 名选手,放到vector 中
2. 遍历vector 容器,取出每一个选手,执行for 循环,可以把10个评分打分到deque 容器中

3. sort 算法对 deque容器中分数排序,去掉最高分和最低分
4. deque容器遍历一遍,累加总分。
5. 获取平均分

*/

void printSector(const vector<Sector> vSector)
{
    //1.先打印输出姓名;
    for (vector<Sector>::const_iterator it = vSector.begin(); it!=vSector.end(); it++)
    {
        cout << (*it).name << "\t";
        cout << "分数为:";
        for (deque<int>::const_iterator dit = (*it).score.begin();dit != (*it).score.end();dit++)
        {
            cout << *dit << "   ";
        }
        cout << "average = " << it->averageSCORE;
        cout << endl;
    }

}

//初始化sector  //也就是为成员添加分数
void initSector(vector<Sector> &sector) 
{
    for (int i = 0;i < 5;i++)
    {
        //初始化分数
        deque<int> scoreAdd;
        for (int j = 0;j < 10; j++)
        {
            int score = rand() % 41 + 60;
            scoreAdd.push_back(score);
        }

        //分数排序
        deque<int>::iterator start = scoreAdd.begin();
        deque<int>::iterator end = scoreAdd.end();
        sort(start, end);

        //初始化选手姓名
        string nameDefine = "选手";
        string nameSeed = "ABCDE";
        string name = nameDefine + nameSeed[i];

        //创建Sector对象
        Sector sectorAdd(name, scoreAdd);

        sector.push_back(sectorAdd);
    }
}

void judge(vector<Sector> &sector)
{

    for (vector<Sector>::iterator vit = sector.begin();vit != sector.end();vit++)
    {

        //去掉最高分和最低分
        (*vit).score.pop_back();
        (*vit).score.pop_front();

        double totalSCORE = 0;
        //通过迭代器算出成员的总分
        for (deque<int>::iterator dit = vit->score.begin();dit != vit->score.end();dit++)
        {
            totalSCORE += (*dit);
            cout << "总分为:" << totalSCORE << endl;

        }
        //将平均分放入到对象中
        vit->averageSCORE = (totalSCORE / 8);

    }
}

void main() {
    vector<Sector> sector;
    //初始化sector
    initSector(sector);

    //平均
    judge(sector);

    //打印sector
    printSector(sector);
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇