C++编程案例讲解-评委打分案例

news2024/9/23 7:31:00

评委打分案例

  • 案例说明

案例说明

有5名选手,10个评委分别对每一名选手打分,去除最高分,去除最低分,取平均分
要求以下步骤:

  1. 创建5名选手,放到vector中
  2. 遍历vector容器,取出来每一位选手,指定for循环,可以把10个评委打分存到deque中
  3. sort算法对deque容器中分数排序,去除最高分和最低分
  4. deque容器中遍历一遍,累加总分
  5. 获取平均分
#include <iostream>
#include <deque>
#include <vector>
#include <ctime>
#include <algorithm>
using namespace std;

class Player
{
private:
    string name;
    float score;
public:
    Player(string name)
    {
        this->name = name;
        this->score = 0;
    }
    void printf()
    {
        std::cout << "姓名:" << this->name << "\t最终得分: " << this->score << std::endl;
    }
    void setScore(float score)
    {
        this->score = score;
    }
    string getName()
    {
        return this->name;
    }
};

void simulated_scoring(Player& player)
{
    deque<float> score;
    for (int i = 0; i < 10; i++)
    {
        float so = rand() % 60 + 40;
        std::cout << "第" << i << "位评委给 " << player.getName() << " 打出的分数为:" << so << "分" << std::endl;
        score.push_back(so);
    }
    //排序
    sort(score.begin(), score.end());
    //去掉一个最高分
    score.pop_back();
    //去掉一个最低分
    score.pop_front();

    float sum = 0;
    //求和取平均
    for (deque<float>::iterator it = score.begin(); it != score.end(); it++)
    {
        sum += *it;
    }
    player.setScore(sum / score.size());
}

int main()
{
    srand((unsigned int)time(NULL));
    string name[] = { "张三","李四","王五","赵二","武义" };
    vector<Player> player;
    //初始化5位运动员
    for (int i = 0; i < sizeof(name) / sizeof(name[0]); i++)
    {
        Player pl(name[i]);
        player.push_back(pl);
    }
    
    for (vector<Player>::iterator it = player.begin(); it != player.end(); it++)
    {
        simulated_scoring(*it);
    }
    
    for (vector<Player>::iterator it = player.begin(); it != player.end(); it++)
    {
        (*it).printf();
    }
}

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1202067.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬取天气数据及可视化分析!

天气预报我们每天都会关注&#xff0c;我们可以根据未来的天气增减衣物、安排出行&#xff0c;每天的气温、风速风向、相对湿度、空气质量等成为关注的焦点。 本次使用python中requests和BeautifulSoup库对中国天气网当天和未来14天的数据进行爬取&#xff0c;保存为csv文件&a…

你知道调试一个 Web 的 Android 应用有多麻烦吗

你知道调试一个 Web 的 Android 应用有多麻烦吗 我用的 uniapp 写的页面&#xff0c;全是坑&#xff0c;各种坑&#xff0c;生命周期不触发等。但由于已经做完大部分内容了&#xff0c;也不好换了。 我用的是 capacitor h5 > Android 的方式 我的调试过程是这样的&#…

【Proteus仿真】【51单片机】停车场车位管理系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用按键、LED、蜂鸣器、LCD1602、红外传感器、74HC595模块等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示进入、驶出、剩余车位数&am…

如何提取信号的包络

包络提取 如何提取信号的包络。 创建双边带振幅调制信号。载波频率为 1 kHz。调制频率为 50 Hz。调制深度为 100%。采样率为 10 kHz。 t 0:1e-4:0.1; x (1cos(2*pi*50*t)).*cos(2*pi*1000*t);plot(t,x) xlim([0 0.04]) 使用 hilbert 函数提取包络。包络是由 hilbert 计算的…

c语言:解决数组元素右旋问题,时间复杂度O(N)

题目&#xff1a; 给一个数组&#xff0c;如【1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&#xff0c;7】,k3。 要求得到新数组【5&#xff0c;6&#xff0c;7&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4】。 方法一&#xff0c;思路和…

CPS:实现销售和广告的完美结合

随着互联网的快速发展&#xff0c;电商行业呈现出爆炸性的增长。在这个充满竞争的市场中&#xff0c;如何有效地吸引和引导消费者购买产品&#xff0c;成为电商企业成功的关键。而CPS&#xff08;Cost Per Sales&#xff09;作为一种创新的广告模式&#xff0c;正逐渐成为电商行…

cadence virtuoso layout 创建保护环 GuardRing

本文使用的是smic130nm工艺库 参考文章&#xff1a;基于IC617创建保护环GuardRing&#xff08;一&#xff09;_版图保护环的意义-CSDN博客 SP GuardRing 按O&#xff0c;M1_SUB columns5 画出版图 量出各图层之间的间距&#xff0c;比如&#xff1a; CT-CT 0.18 CT-AA 0.0…

十大跑步运动耳机品牌,适合运动时戴的蓝牙耳机有哪些?

​运动耳机不仅具备出色的音质和舒适度&#xff0c;还有着强大的防汗防水功能&#xff0c;可以满足你在运动中的各种需求。无论你是喜欢户外跑步&#xff0c;还是喜欢室内健身&#xff0c;运动耳机都能为你提供优秀的音乐动力&#xff0c;让你更加享受运动的过程。那么怎么去选…

自动生成Form表单提交在苹果浏览器中的注意事项

以下是本人在公司旧系统中看到的该段代码 function Post(URL, PARAMTERS) {//创建form表单var temp_form document.createElement("form");temp_form.action URL;//如需打开新窗口&#xff0c;form的target属性要设置为_blanktemp_form.target "_blank"…

Java: 实现电影信息管理系统 (javaBean)

文章目录 电影信息系统1. 将JavaBean数据类封装好2.业务逻辑类3.测试类&#xff08;main函数类&#xff09; 电影信息系统 需求&#xff1a; 展示系统中的全部电影&#xff08;每部电影展示、名称、平分&#xff09;。允许用户根据电影编号&#xff08;id&#xff09;查询出某…

火山引擎 DataLeap 计算治理自动化解决方案实践和思考

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 【导读】本文旨在探讨火山引擎 DataLeap 在处理计算治理过程中所面临的问题及其解决方案&#xff0c;并展示这些解决方案带来的实际收益。主要内容包括&#xff1a;…

使用 Electron 来替代本地调试线上代理的场景

Cookie Samesite 问题 https://developers.google.com/search/blog/2020/01/get-ready-for-new-samesitenone-secure?hlzh-cnhttps://www.chromium.org/updates/same-site/https://github.com/GoogleChromeLabs/samesite-exampleshttps://releases.electronjs.org/releases/s…

Labview实现wav音乐播放

准备音频文件&#xff1a;将要播放的声音文件准备好&#xff0c;是.wav格式。 图形化如下&#xff1a; 内部逻辑如下&#xff1a;

名师助阵龙讯旷腾PWmat+半导体缺陷培训暨半导体缺陷计算大赛

半导体缺陷计算大赛 选拔赛截止日期&#xff1a;11月23日 参与杭州线下培训直接跳过选拔赛 大赛亮点 线上免费培训、线下限时领取免费名额 线下杭州培训可直通决赛&#xff0c;跳过选拔赛 线上培训有3次机会参与考试进入决赛 已购/未购用户均可参加、无身份限定 使用Mc…

新程出海:TikTok电商带货的6大注意事项

当下&#xff0c;越来越多的商家借助海外抖音TikTok平台实现电商带货。但是&#xff0c;由于海外市场和文化环境的不同&#xff0c;如果没有正确的操作方法和注意事项&#xff0c;会存在诸多问题和挑战。因此&#xff0c;接下来新程出海为您介绍海外抖音TikTok电商带货的注意事…

大数据-之LibrA数据库系统告警处理(ALM-12041 关键文件权限异常)

告警解释 系统每隔一个小时检查一次系统中关键目录或者文件权限、用户、用户组是否正常&#xff0c;如果不正常&#xff0c;则上报故障告警。 当检查到权限等均正常&#xff0c;则告警恢复。 告警属性 告警ID 告警级别 可自动清除 12041 严重 是 告警参数 参数名称 …

mysql 中with的用法(1)

mysql 中with的用法 1、案例一&#xff1a; 建表&#xff1a; CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),salary INT );INSERT INTO employees (employee_id, first_name, last_name, salary) VALUES (1, John, Do…

Springboot+vue的人力资源管理系统(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的人力资源管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的企业资产管理系统&#xff0c;采用M&#xff08;model&…

Kotlin Multiplatform稳定版本发布:加速跨平台开发的新里程碑

Kotlin Multiplatform稳定版本发布&#xff1a;加速跨平台开发的新里程碑 引言 在最新的消息中&#xff0c;JetBrains团队宣布Kotlin Multiplatform&#xff08;KMP&#xff09;将于2023年10月稳定发布。这一消息对于广大开发者来说毫无疑问是一个令人振奋的消息。KMP的正式生…

【Java】集合(一)单列集合List

1.集合 可以动态保存任意多个对象&#xff0c;并提供了一系列的操作对象的方法&#xff1a;add、remove、set、get等。 2.集合框架体系 分为两大类&#xff1a; 单列集合和双列集合 3.List接口基本介绍 List接口是Collection接口的子接口 List集合类中元素有序&#xff0…