本文章由公号【开发小鸽】发布!欢迎关注!!!
老规矩–妹妹镇楼:
一. 比赛规则:
某市举行一场演讲比赛( speech_contest ),共有24个人参加。比赛共三轮,前两轮为淘汰赛,第三轮为决赛。
比赛方式:分组比赛,每组6个人;选手每次要随机分组,进行比赛;
第一轮分为4个小组,每组6个人。比如编号为: 100-123. 整体进行抽签(draw)后顺序演讲。当小组演讲完后,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。
第二轮分为2个小组,每组6人。比赛完毕,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。
第三轮只剩下1组6个人,本轮为决赛,选出前三名。
比赛评分:10个评委打分,去除最低、最高分,求平均分每个选手演讲完由10个评委分别打分。该选手的最终得分是去掉一个最高分和一个最低分,求得剩下的8个成绩的平均分。选手的名次按得分降序排列。
用STL编程,求解这个问题
1. 请打印出所有选手的名字与参赛号,并以参赛号的升序排列。
2. 打印每一轮比赛后,小组比赛成绩和小组晋级名单
二. 需求分析:
- 生成选手: 姓名,编号,得分
- 第一轮比赛: 选手抽签,进行比赛,展示结果
- 第二轮比赛: 选手抽签,进行比赛,展示结果
- 第三轮比赛: 选手抽签,进行比赛,展示结果
三. 实现思路:
1. 选手封装成类 Speaker,存储姓名(string name),得分信息(数组score[3],因为可能有三轮比赛)
2. 选手的编号存在vector容器v1中
3. 用map<int, Speaker>将选手的编号和选手信息映射起来
4. 第一轮晋级编号放在vector容器v2中
5. 第二轮晋级编号放在vector容器v3中
6. 第三轮晋级编号放在vector容器v4中
7. 每个小组的比赛得分信息,按照从大到小放在multimap中
8. 选手的打分,用deque容器排序,删除最高最低值
11万+

被折叠的 条评论
为什么被折叠?



