1 #include<iostream>
2 #include<string>
3 #include<deque>
4 #include<vector>
5 #include<algorithm>
6
7 using namespace std;
8
9 //选手类
10 class Person
11 {
12 public:
13 Person(string name, int score)
14 {
15 this->m_Name = name;
16 this->m_Score = score;
17 }
18
19
20 string m_Name; //姓名
21 int m_Score; //分数
22 };
23
24 //赋值 5名
25 void createPerson(vector<Person>& v)
26 {
27 string nameSeed = "ABCDE";
28 for (int i = 0; i < 5; i++)
29 {
30 string name = "选手";
31 name += nameSeed[i]; //选手赋值操作
32
33
34 int score = 0;
35 Person p(name, score);
36
37 //将创建的Person的对象 放入容器中
38 v.push_back(p);
39 }
40 }
41
42 //打分
43 void steScore(vector<Person>& v)
44 {
45 for (vector<Person>::iterator it = v.begin(); it != v.end(); it++)
46 {
47 //将评委的分数放入到deque容器中
48 deque<int>d;
49 for (int i = 0; i < 10; i++)
50 {
51 int score = rand() % 40 + 60; //60-100
52 d.push_back(score);
53 }
54 cout << "选手: " << it->m_Name << "\t打分:" << endl;
55
56 for (deque<int>::iterator dit = d.begin(); dit != d.end(); dit++)
57 {
58 cout << *dit << " ";
59 }
60 cout << endl;
61
62
63
64
65 //paixu排序
66 sort(d.begin(), d.end());
67
68 //去除最高分和最低分
69 d.pop_back();
70 d.pop_front();
71
72 //取平均分
73 int sum = 0;
74 for (deque<int>::iterator dit = d.begin(); dit != d.end(); dit++)
75 {
76 sum += *dit; //累加每个评委的分数
77 }
78 int avg = sum / d.size();
79
80 //将平均分赋值给选手上
81 it->m_Score = avg;
82
83 }
84 }
85 void showScore(vector<Person>& v)
86 {
87 for (vector<Person>::iterator it = v.begin(); it != v.end(); it++)
88 {
89 cout << "姓名:" << it->m_Name << "\t平均分:" << it->m_Score << endl;
90 }
91 }
92
93 int main()
94 {
95 //随机数种子
96 srand((unsigned int)time(NULL));
97 //1.创建5名选手
98 vector<Person>v; //存放选手的容器
99 createPerson(v);
100
101 //测试
102
103 //for (vector<Person>::iterator it = v.begin(); it != v.end(); it++)
104 //{
105 // cout << "姓名:" << (*it).m_Name << "\t分数:" << (*it).m_Score << endl;
106
107 //}
108 //2.给5名选手打分
109 steScore(v);
110
111
112 //3.显示最后的得分
113 showScore(v);
114
115
116 system("pause");
117 return 0;
118 }

C++ //案列-评委打分 //(容器添加 删除 算法排序 随机数 字符串追加)描述:5名选手 ABCDE,10个评委分别对每一位选手打分,去除最高分,去除评委中的 //的最低分,取平均分的更多相关文章

  1. C语言链表操作模板(添加,删除,遍历,排序)

    C语言链表操作模板,摘自郝斌的C语言视频教程,简单的修改成了纯C格式.当年照着视频学习的时候记录下来的,在使用的时候直接拿来修改修改修改能节约不少时间的. /********************* ...

  2. 第29天:js-数组添加删除、数组和字符串相互转换

    一.添加数组var arr=[1,3,5];arr.push(7,9);//添加7和9到数组arr后面,得到[1,3,5,7,9]1.push();可向数组末尾添加一个或多个元素,并返回新的长度.2. ...

  3. C++结构体之统计最高最低分

    [Submit][Status][Web Board] Description 输入学生的姓名和成绩,统计出最高分的学生和最低分的学生. Input 输入5个学生的姓名和分数,用结构体完成 Outpu ...

  4. java基础:数组详解以及应用,评委打分案例实现,数组和随机数综合,附练习案列

    1.数组 1.1 数组介绍 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致. 1.2 数组的定义格式 1.2.1 第一种格式 数据类型[] 数组名 示例: int[] arr;     ...

  5. 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类。Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分;School 中计算平均分的方法是所有科目的分数之和除以总科目数。 要求:定义ComputerAv

    题目: 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数. 定义 Gymnastics 类和 School 类,它们都是 ComputerAverag ...

  6. WPF下的Richtextbox中实现表格合并,添加删除行列等功能

    .Net中已有现在的方法实现这些功能,不过可能是由于未完善,未把方法公开出来.只能用反射的方法去调用它. 详细信息可以查看.Net Framework 的源代码 http://referencesou ...

  7. windows 2003添加删除windows组件中无iis应用程序服务器项的解决方法

    解决方法如下: 1.开始 -- 运行,输入 c:\Windows\inf\sysoc.inf,会打开这个文件;在sysoc.inf中找到"[Components]"这一段,并继续找 ...

  8. 将 Callout 容器添加到移动设备应用程序中

    在移动设备应用程序中,callout 是在应用程序顶部弹出的容器.该容器可以容纳一个或多个组件,并且支持不同类型的布局. callout 容器可以是模态或非模态容器.模态容器在其关闭之前接受所有的键盘 ...

  9. dir(dict)|字典的创建-添加-删除-修改-判断存在-取值等相关操作

    dir(dict) ####字典操作:创建-添加-删除-修改-判断存在-取值 #(一)创建字典: {} .等号. zip(). [(),()] #1.创建空字典 dict0 = {} #2.等号创建 ...

  10. C语言:统计整型变量m中各数字出现的次数,-去掉一个最高分和一个最低分,然后求平均值,(注意最低分和最高分可能有多个数并列)

    //统计整型变量m中各数字出现的次数,并存放在数组a中,其中,a[0]存放0出现的次数,a[1]存放1出现的次数. #include <stdio.h> ]) { int i; ; i&l ...

随机推荐

  1. 去除elementUI中tab组件中的下划线

    <div class="right-tabbox-newnotice"> <el-tabs v-model="activeName" @tab ...

  2. vue脚手架创建与环境安装

    1.安装 Node.jsDownload | Node.js 在这里下载的是最新版,如果要安装以前的版本,页面往下拉找到 Previous Releases-Donloads-下载msi文件. ​​ ...

  3. 因为命名被diss无数次。简单聊聊编程最头疼的事情之一:命名

    本文已经收录进我的 80K+ Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指南」一份涵盖 ...

  4. logstash 与ElasticSearch:从CSV文件到搜索宝库的导入指南

    logstash 与ElasticSearch:从CSV文件到搜索宝库的导入指南 使用 logstash 导入数据到 ES 时,由三个步骤组成:input.filter.output.整个导入过程可视 ...

  5. 多路io复用epoll [补档-2023-07-20]

    多路io- epoll 4-1简介 ​ 它是linux中内核实现io多路/转接复用的一个实现.(epoll不可跨平台,只能用于Linux)io多路转接是指在同一个操作里,同时监听多个输入输出源,在其中 ...

  6. P9816 少项式复合幂 题解

    题目链接:少项式复合幂 注意到题目的模并不是很大,我们考虑两个核心的性质. \(f(f(x)) \bmod p=f(f(x) \bmod p) \bmod p\),证明直接代入 \(f(x)\) 进去 ...

  7. Hello,World! 6.28

    代码 public class Hello{ public static void main(String[] args){ System.out.print("Hello,World!&q ...

  8. ElasticSearch7.3学习(三十四)----生产环境集群部署总结

    1.集群部署 2.结点的三个角色 主结点:master节点主要用于集群的管理及索引 比如新增结点.分片分配.索引的新增和删除等. 数据结点:data 节点上保存了数据分片,它负责索引和搜索操作. 客户 ...

  9. Excel快速调整单元格行高和列宽

    之前使用的是鼠标双击的方法,但是只适用于少量调整时. 今天给同事编辑公众号文章,有一大篇表格在word中,直接从word中复制到公众号的话,格式会有一定程度的错位. 于是先粘贴到excel中处理,但到 ...

  10. TStringList的IndexOfName

    IndexOfName这个方法用着很好,记录下,以后留意下 上个例子: procedure TForm1.Button1Click(Sender: TObject); var MyList: TStr ...