• [deque容器练习]打分案例


    案例要求:

    //打分案例(sort算法排序)
    //创建5个选手(姓名、得分),十个评委对五个选手进行打分
    //得分规则:去除最高分,去除最低分,取出平均分
    //按得分对5个选手进行排名

    源代码:

    //打分案例(sort算法排序)
    //创建5个选手(姓名、得分),十个评委对五个选手进行打分
    //得分规则:去除最高分,去除最低分,取出平均分
    //按得分对5个选手进行排名
    
    #include<iostream>
    #include<vector>
    #include<deque>
    #include<string>
    #include<algorithm>
    using namespace std;
    
    //选手类
    class Player 
    {
    public:
        Player(){}
        Player(string name,int score):mName(name),mScore(score){}
    public:
        string mName;
        int mScore;
    };
    
    //创建选手
    void CreatPlayer(vector<Player>& v) 
    {
        string name = "ABCDE";
        for (int i = 0; i < 5; i++)
        {
            Player p;
            p.mName = "选手";
            p.mName += name[i];
            p.mScore = 0;
            v.push_back(p);
        }
    
    }
    
    //评委打分
    void SetScore(vector<Player>& v)
    {
        for (vector<Player>::iterator it = v.begin(); it != v.end(); it++)
        {
            //对选手进行打分
            deque<int> dScore;
            for (int i = 0; i < 10; i++)
            {
                int score = rand() % 41 + 60;
                dScore.push_back(score);
                //dScore[i] = rand() % 41 + 60;
            }
            //对分数进行排序
            sort(dScore.begin(), dScore.end());
            //去除最高最低分
            dScore.pop_front();
            dScore.pop_back();
            //求平均分
            int total = 0;
            for (deque<int>::iterator dit = dScore.begin(); dit != dScore.end(); dit++)
            {
                total += (*dit);
            }
            int avg = total / dScore.size();
            //保存分数
            (*it).mScore = avg;
        }
    }
    //排序规则(默认从小到大排序)
    bool myCompare(Player& p1, Player& p2)
    {
        return p1.mScore > p2.mScore;
    }
    
    //选手排名
    void PrintRank(vector<Player>& v)
    {
        //排序
        sort(v.begin(), v.end(), myCompare);
        //打印
        for (vector<Player>::iterator it = v.begin(); it != v.end(); it++)
        {
            cout << "姓名:" << (*it).mName << ",  成绩:" << (*it).mScore << endl;
        }
        cout << endl;
    }
    
    int main()
    {
        //定义vector保存选手信息
        vector<Player> vPlist;
        CreatPlayer(vPlist);
        SetScore(vPlist);
        PrintRank(vPlist);
        return 0;
    }

    运行结果:

  • 相关阅读:
    编译并使用Lua语言
    C#中使用DLL文件
    将Unity3D游戏移植到Android平台上
    Unity3D知识点
    清下书柜,工作书,旧书,正版书,个人学习过的书asp,net,delphi,java,flex,actionscript,vb...
    使用ABP打造SAAS系统(2)——前端框架选择
    使用ABP打造SAAS系统(1)——环境准备
    延迟实例单例模式注意点
    jvm指令解释i = i++ + i++ + i++ + ++i;等于多少
    MYSQL增加库表权限
  • 原文地址:https://www.cnblogs.com/lixuejian/p/10759424.html
Copyright © 2020-2023  润新知