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 ...
随机推荐
- consul系列文章01---docker安装consul
1.下载镜像 2.运行容器 docker run --name consul -d -p 8500:8500 --restart=always consul agent -server -boots ...
- # 重要-即时通讯IM开源项目OpenIM关于版本管理及v2.3.0发布计划
越来越多的客户把OpenIM用到了生产环境,由于新特性持续迭代和bug修复,会涉及到后续的升级方案,为了让大家后续从容应对,本文重点总结OpenIM对未来版本管理的思路和方案.同时,官网对于文档进行了 ...
- 解决问题:latex中bib引用顺序不正确,引用顺序和正文不一致
问题:生成pdf时文献应用会乱序 引用bib格式的参考文献时,会这么写: \bibliographystyle{plain} \bibliography{%filename%.bib} 而plain的 ...
- 小知识:如何修改TFA下的OSW数据保留时间
在Oracle社区可以搜索到这样的问题: How to change oswatcher retention when running under TFA 但很遗憾该问题目前也没有给出确切答复. 其实 ...
- 7.函数的使用--《Python编程:从入门到实践》
7.1 python 中函数的定义 python 中函数使用 def 定义: def greet_user(): 7.2 传参的传递 普通实参的传毒,可以与 C++ 相同,即按顺序传递. 7. ...
- 深入浅出 Application Insights--学习笔记
摘要 介绍如何将 Application Insights 用于生产上实践,并透过它发现/诊断问题.同时也会介绍如何将 Application Insighs 与其他体系相集成实现 Devops(与发 ...
- 如何在Windows端安装scala
一.首先确保jdk安装成功 首先在安装之前,确保本地已经安装了JDK1.5以上的版本,在此安装的是1.8版本.并且已经设置了JAVA_HOME 环境变量及JDK的bin目录. 1.新建JAVA_H ...
- [Java]BigDecimal与Double的区别和使用场景
BigDecimal与Double的区别和使用场景 背景 在项目中发现开发小组成员在写程序时,对于Oracle数据类型为Number的字段(经纬度),实体映射类型有的人用Double有的人用BigDe ...
- mysql 8.0 配置文件my.cnf中文注解【转载】
########################################################################### ## my.cnf for MySQL 8.0. ...
- 【Unity3D】基于模板测试和顶点膨胀的描边方法
1 前言 选中物体描边特效 中介绍了基于模板纹理模糊膨胀的描边方法,该方法实现了软描边,效果较好,但是为了得到模糊纹理,对屏幕像素进行了多次渲染,效率欠佳.本文将介绍另一种描边方法:基于模板测试和 ...