zoukankan      html  css  js  c++  java
  • [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;
    }

    运行结果:

  • 相关阅读:
    Python import模块
    Python 内置函数
    Python Pickle序列化
    android xml布局文件属性说明
    android 中动画
    Android样式——Styles
    代码家
    Android UI目录
    Android 基本控件
    android and webview 网页应用
  • 原文地址:https://www.cnblogs.com/lixuejian/p/10759424.html
Copyright © 2011-2022 走看看