C++ //案列-评委打分 //(容器添加 删除 算法排序 随机数 字符串追加)描述:5名选手 ABCDE,10个评委分别对每一位选手打分,去除最高分,去除评委中的 //的最低分,取平均分
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个评委分别对每一位选手打分,去除最高分,去除评委中的 //的最低分,取平均分的更多相关文章
- C语言链表操作模板(添加,删除,遍历,排序)
C语言链表操作模板,摘自郝斌的C语言视频教程,简单的修改成了纯C格式.当年照着视频学习的时候记录下来的,在使用的时候直接拿来修改修改修改能节约不少时间的. /********************* ...
- 第29天:js-数组添加删除、数组和字符串相互转换
一.添加数组var arr=[1,3,5];arr.push(7,9);//添加7和9到数组arr后面,得到[1,3,5,7,9]1.push();可向数组末尾添加一个或多个元素,并返回新的长度.2. ...
- C++结构体之统计最高最低分
[Submit][Status][Web Board] Description 输入学生的姓名和成绩,统计出最高分的学生和最低分的学生. Input 输入5个学生的姓名和分数,用结构体完成 Outpu ...
- java基础:数组详解以及应用,评委打分案例实现,数组和随机数综合,附练习案列
1.数组 1.1 数组介绍 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致. 1.2 数组的定义格式 1.2.1 第一种格式 数据类型[] 数组名 示例: int[] arr; ...
- 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类。Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分;School 中计算平均分的方法是所有科目的分数之和除以总科目数。 要求:定义ComputerAv
题目: 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数. 定义 Gymnastics 类和 School 类,它们都是 ComputerAverag ...
- WPF下的Richtextbox中实现表格合并,添加删除行列等功能
.Net中已有现在的方法实现这些功能,不过可能是由于未完善,未把方法公开出来.只能用反射的方法去调用它. 详细信息可以查看.Net Framework 的源代码 http://referencesou ...
- windows 2003添加删除windows组件中无iis应用程序服务器项的解决方法
解决方法如下: 1.开始 -- 运行,输入 c:\Windows\inf\sysoc.inf,会打开这个文件;在sysoc.inf中找到"[Components]"这一段,并继续找 ...
- 将 Callout 容器添加到移动设备应用程序中
在移动设备应用程序中,callout 是在应用程序顶部弹出的容器.该容器可以容纳一个或多个组件,并且支持不同类型的布局. callout 容器可以是模态或非模态容器.模态容器在其关闭之前接受所有的键盘 ...
- dir(dict)|字典的创建-添加-删除-修改-判断存在-取值等相关操作
dir(dict) ####字典操作:创建-添加-删除-修改-判断存在-取值 #(一)创建字典: {} .等号. zip(). [(),()] #1.创建空字典 dict0 = {} #2.等号创建 ...
- C语言:统计整型变量m中各数字出现的次数,-去掉一个最高分和一个最低分,然后求平均值,(注意最低分和最高分可能有多个数并列)
//统计整型变量m中各数字出现的次数,并存放在数组a中,其中,a[0]存放0出现的次数,a[1]存放1出现的次数. #include <stdio.h> ]) { int i; ; i&l ...
随机推荐
- easyUI 多表头设置
- win10下MySQL安装教程(MySql-8.0.26超级详细)
一.下载安装包: 官网链接:MySQL :: Developer Zone 依次点击步骤如下: 二.MySQL文件配置 解压安装包: 解压后的目录并没有的my.ini文件,没关系可以自行创建在安装根目 ...
- C/C++ Zlib实现文件压缩与解压
在软件开发和数据处理中,对数据进行高效的压缩和解压缩是一项重要的任务.这不仅有助于减小数据在网络传输和存储中的占用空间,还能提高系统的性能和响应速度.本文将介绍如何使用 zlib 库进行数据的压缩和解 ...
- Arduino-电位器调节led
Arduino-电位器调节led 电位器相关: 电位器是具有三个引出端.阻值可按某种变化规律调节的电阻元件.电位器通常由电阻体和可移动的电刷组成.当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系 ...
- (C语言)||2023.12.24||关于strcpy(&a[1],a)
strcpy 要求传入的两个指针 restrict(即区间不重叠). 因此直接 strcpy(&a[1],a) 是未定义行为.
- Delphi批量替换工具Cnpack
操,delphi官方 没有 批量替换工具,需要用到cnpack才可以,
- JS Leetcode 525. 连续数组 前缀和加哈希表,小白式讲解让你彻底明白此题
壹 ❀ 引 题目来自LeetCode的525. 连续数组,难度中等,题目描述如下: 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度. 示例 1 ...
- NC50381 道路和航线
题目链接 题目 题目描述 FarmerJohn正在一个新的销售区域对他的牛奶销售方案进行调查.他想把牛奶送到T个城镇,编号为1到T.这些城镇之间通过R条道路(编号为1到R)和P条航线(编号为1到P)连 ...
- NC17508 指纹锁
题目链接 题目 题目描述 HA实验有一套非常严密的安全保障体系,在HA实验基地的大门,有一个指纹锁. 该指纹锁的加密算法会把一个指纹转化为一个不超过1e7的数字,两个指纹数值之差越小,就说明两 ...
- SATA学习笔记——OOB信号
一.SATA物理层概述 说OOB之前,首先得了解一下SATA结构以及物理层的含义. SATA主要包括:应用层(Application Layer), 传输层(Transport Layer),链路层( ...