c++ 入门 演讲比赛 任务分解

该博客围绕基于C++的演讲比赛流程管理系统展开。系统要求有12名选手参加两轮比赛,需记录得分,按规则淘汰和晋级。抽象出选手类和比赛类变量及动作,还介绍了比赛规则、程序功能,如开始比赛、查看记录等,最后提到创建管理类文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c++ 入门 演讲比赛 需求 整理

课堂笔记链接:https://pan.baidu.com/s/1V7ouCTWPwpqGGFxirCVnTA
提取码:iczm

黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难
https://www.bilibili.com/video/BV1et411b73Z?p=264

基于STL的演讲比赛流程管理系统:
在这里插入图片描述
要求分析:
选手个数为12个
选手有编号 10001 – 10012,有名字,分别对应ABCDEFGHIJKL
选手会参加两轮比赛,分别为初赛和决赛,需要记录每次比赛的得分

比赛流程:
1.将12个选手随机分为两组,每组6人
2.每6人一组的选手抽签,然后按照顺序演讲
3.每位初赛选手演讲,十名评委,分别给每一位初赛选手打分
4.去掉最高分,去掉最低分,求得平均分为这位初赛选手的最后得分
5.每组中统计分数,留下前三名,并且显示
6.剩下的人员,开始决赛

7.每位决赛选手演讲,十名评委,分别给每一位决赛选手打分
8.去掉最高分,去掉最低分,求得平均分为这位决赛选手的最后得分
9.统计分数,留下前三名,并且显示
10.比赛结束

评委给分是随机给的
抽象出类来:

选手类变量

1.编号
2.名字
3.初赛得分
4.决赛得分

比赛类变量

1.选手容器 12
2.初赛或决赛变量
3.分组容器A 6
分组容器B 6
4. 十个评委的评分 容器

比赛类动作
参考代码
//菜单功能
void SpeechManager::show_Menu()
{
	cout << "********************************************" << endl;
	cout << "*************  欢迎参加演讲比赛 ************" << endl;
	cout << "*************  1.开始演讲比赛  *************" << endl;
	cout << "*************  2.查看往届记录  *************" << endl;
	cout << "*************  3.清空比赛记录  *************" << endl;
	cout << "*************  0.退出比赛程序  *************" << endl;
	cout << "********************************************" << endl;
	cout << endl;
}
文件操作
//保存记录
void SpeechManager::saveRecord()
{
	ofstream ofs;
	ofs.open("speech.csv", ios::out | ios::app); // 用追加的方式写文件

	//将每个选手数据 写入到文件中
	for (vector<int>::iterator it = vVictory.begin(); it != vVictory.end(); it++)
	{
		ofs << *it << "," << this->m_Speaker[*it].m_Score[1] << ",";
	}
	ofs << endl;

	//关闭
	ofs.close();
	cout << "记录已经保存" << endl;

	//更改文件不为空状态
	this->fileIsEmpty = false;
}
111

在这里插入图片描述

33

1.1 比赛规则

  • 学校举行一场演讲比赛,共有12个人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛。
  • 比赛方式:分组比赛,每组6个人;选手每次要随机分组,进行比赛
  • 每名选手都有对应的编号,如 10001 ~ 10012
  • 第一轮分为两个小组,每组6个人。 整体按照选手编号进行抽签后顺序演讲。
  • 当小组演讲完后,淘汰组内排名最后的三个选手,前三名晋级,进入下一轮的比赛。
  • 第二轮为决赛,前三名胜出
  • 每轮比赛过后需要显示晋级选手的信息

1.2 程序功能

  • 开始演讲比赛:完成整届比赛的流程,每个比赛阶段需要给用户一个提示,用户按任意键后继续下一个阶段
  • 查看往届记录:查看之前比赛前三名结果,每次比赛都会记录到文件中,文件用.csv后缀名保存
  • 清空比赛记录:将文件中数据清空
  • 退出比赛程序:可以退出当前程序

3、 创建管理类

speechManager.h 和 speechManager.cpp文件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值