C++实现演讲比赛小项目
对于这个小项目,有两个只是盲区
1、定义了一个自定义数据类型的类之后,在后面创建的时候,自定义数据类型必须要有默认构造函数,如果在自定义的类里面定义了有参构造,就要自己定义一个默认构造函数。
2、自定义map容器等容器的排序的时候,传进来的参数被系统默认以const类型的形式传进来的,所以在重载operator()的时候,也需要定义为const的类型。要不然会出错。因为operator()类型会修改形参的内容,而形参的内容是const类型的,所以必须定义operator()也要是const类型的。
hpp文件
#pragma once
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <ctime>
#include <numeric>
#include <list>using namespace std;class Compare
{public:bool operator()(int v1, int v2) const {return v1 > v2;}
};
class Person
{public:Person() {}Person(string Name,int Code){this->m_Name = Name;this->m_Code = Code;}string m_Name;int m_Code;
};
vector<Person> RandomVector(vector<Person>& v)
{random_shuffle(v.begin(), v.end());return v;
}
vector<Person> SetPerson()
{vector<Person> v;string Order = "ABCDEFGHIJKLMNOP";int Code = 0;for (int i = 0; i < 12; i++){string Name = "选手";Name += Order[i];Person p = { Name, Code };v.push_back(p);Code++;}return v;
}
vector<Person> GetGroup1(vector<Person>& v)
{vector<Person>::iterator i = v.begin(); for (int j = 0; j < 6; j++){i++;}vector<Person> v1;v1.resize(6);copy(v.begin(), i, v1.begin());return v1;
}vector<Person> GetGroup2(vector<Person>& v)
{vector<Person>::iterator i = v.begin();for (int j = 0; j < 6; j++){i++;}vector<Person> v2;v2.resize(6);copy(i, v.end(), v2.begin());return v2;
}void SetMap(vector<Person>& v)
{multimap<int, Person,Compare> m;list<int> L;for (int i = 0; i < 6; i++){for (int j = 0; j < 10; j++){int Code = rand() % 11;L.push_back(Code);}int Sum = accumulate(++L.begin(), --L.end(),0);m.insert(make_pair(Sum, v[i]));}for (multimap<int, Person,Compare>::iterator i = m.begin(); i != m.end(); i++){cout << i->second.m_Name << " " << i->second.m_Code << " " << i->first << endl;}
}void ShowPerson( vector<Person> &v)
{for (vector<Person>::iterator i = v.begin(); i != v.end(); i++){cout << "姓名:" << i->m_Name << "编号:" << i->m_Code << endl;}
}
cpp文件
#include "演讲比赛.hpp"int main()
{srand((unsigned int)time(NULL));vector<Person> v = SetPerson();vector<Person> v1 = RandomVector(v);vector<Person> v2 = GetGroup1(v1);vector<Person> v3 = GetGroup2(v);SetMap(v2);SetMap(v3);//ShowPerson(v2);//ShowPerson(v3);return 0;
}
C++实现演讲比赛小项目相关推荐
- c++小项目:基于STL的演讲比赛流程管理系统
一.项目目的 运用c++实现一个基于STL的演讲比赛流程管理系统. 比赛方式 共两轮,第一轮为分组淘汰赛,第二轮为决赛,共有十名评委,打分方式为去掉最高分和最低分的平均分为基准 第一轮共两组,每组六人 ...
- C++项目之演讲比赛模拟
演讲系统(SpeechContext)小结 前记 最近把C++ 的知识点过了一遍,虽然说不能完全的了解C++语言的特性,但是也发现了它的美,后面想要学习C++的热情高涨,故完成了一个小项目,来达到温故 ...
- c++项目-----演讲比赛--附详细过程
最近在学c++就跟着b站up主黑马程序员写了一个演讲比赛的小项目,不得不说,确实很复杂,不过很锻炼你对c++知识点的熟练程度,做完还是很有成就感的 下面是需求和代码,感兴趣的同学也可以自己动手操作一下 ...
- C++项目实战 —— 演讲比赛流程管理系统
演讲比赛流程管理系统 文章目录 演讲比赛流程管理系统 1.演讲比赛程序需求 1.1 比赛规则 1.2 程序功能 2.项目创建 3.创建管理类 3.1 创建文件 3.2 头文件实现 3.3 源文件实现 ...
- 【49C++项目案例:演讲比赛流程管理系统】
文章目录 演讲比赛流程管理系统 1.演讲比赛程序需求 1.1 比赛规则 1.2 程序功能 1.3 程序效果图 2.项目创建 2.1 创建项目 2.2 添加文件 3.创建管理类 3.1 创建文件 3.2 ...
- [carla入门教程]-6 小项目:基于carla-ros-bridge构建一个小型比赛赛道
本专栏教程将记录从安装carla到调用carla的pythonAPI进行车辆操控并采集数据的全流程,带领大家从安装carla开始,到最终能够熟练使用carla仿真环境进行传感器数据采集和车辆控制. 第 ...
- c语言为什么要建项目,一个C语言小项目为什么都说牛逼
原标题:一个C语言小项目为什么都说牛逼 意在鼓励C语言学者.更有兴趣,学习更富有创业和乐趣! 推荐加学习交流群:658807522 可以在一起学习交流,既是参赛选手,又是学者,也可以先学习再参赛,反正 ...
- 病例演讲比赛PPT模板
模板介绍 一份高质量的PPT模板,可以让你在日常的工作中展示自我.脱颖而出.去赢得更多机会,今天小编分享一份精美的病例演讲比赛PPT模板 PPT模板名称:病例演讲比赛PPT模板,模板编号:P52765 ...
- C++实现演讲比赛流程管理系统
文章目录 1.演讲比赛程序需求 1.1比赛规则 2.项目创建 2.1创建项目 2.2 添加文件 3.创建管理类 3.1 创建文件 4.菜单功能 4.1 添加成员函数 4.2 菜单功能实现 4.3 测试 ...
最新文章
- VS2008 解决方案配置器,即Debug,Release 模式选择
- 深入JVM系列(二)之GC机制、收集器与GC调优
- 威联通架设php网站_如何架设PHP服务器
- 【python】时间处理函数以及文件操作
- UVA 297 Quadtrees
- 为什么我的Spring @Autowired字段为空?
- 远程连接线上的mysql失败 客户端和代码连接
- java实现二分查找
- 基于FPGA的四轴运动控制IC设计(verilog)
- Win10家庭中文版 如何启用组策略
- 「小狼毫」-- rimeime 中州韵输入法引擎
- 服务器分区系统安装win7系统教程,详细教您gpt分区安装win7步骤
- linux的tomcat日志,linux下查看tomcat的日志
- 送给1987年左右的朋友,看完是不是有些泪水
- 如何编写一个Java帮助文档
- 山西省忻州一中2021高考成绩查询,【高考直击】2021年高考今日开考
- cad中lisp文件给恶作剧_[软件心得]我用的CAD,LISP加载文件
- 我国计算机发展里程碑,我国超级计算机新的里程碑
- CDN源站数据同步优化总结
- PortTunnel端口转发