【带你敲】演讲比赛流程管理系统(上)

简介: 笔记

1、 演讲比赛程序需求


1.png


1.1 比赛规则

学校举行一场演讲比赛,共有12个人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛。

比赛方式:分组比赛,每组6个人;选手每次要随机分组,进行比赛

每名选手都有对应的编号,如 10001 ~ 10012

第一轮分为两个小组,每组6个人。 整体按照选手编号进行抽签后顺序演讲。

当小组演讲完后,淘汰组内排名最后的三个选手,前三名晋级,进入下一轮的比赛。

第二轮为决赛,前三名胜出

每轮比赛过后需要显示晋级选手的信息


1.2 程序功能

开始演讲比赛:完成整届比赛的流程,每个比赛阶段需要给用户一个提示,用户按任意键后继续下一个阶段

查看往届记录:查看之前比赛前三名结果,每次比赛都会记录到文件中,文件用.csv后缀名保存

清空比赛记录:将文件中数据清空

退出比赛程序:可以退出当前程序


1.3 程序效果图:

2.png

2、 项目创建


创建项目步骤如下:


创建新项目

添加文件


2.1 创建项目

打开vs2017后,点击创建新项目,创建新的C++项目

如图:

3.png

填写项目名称以及选取项目路径,点击确定生成项目

4.png

2.2 添加文件

右键源文件,进行添加文件操作

5.png

填写文件名称

生成文件成功,效果如下图

6.png


至此,项目已创建完毕


3、 创建管理类


功能描述:


提供菜单界面与用户交互

对演讲比赛流程进行控制

与文件的读写交互


3.1创建文件

在头文件和源文件的文件夹下分别创建speechManager.h 和 speechManager.cpp文件

7.png

3.2 头文件实现

在speechManager.h中设计管理类


代码如下:


#pragma once
#include<iostream>
using namespace std;
//演讲管理类
class SpeechManager
{
public:
  //构造函数
  SpeechManager();
  //析构函数
  ~SpeechManager();
};


3.3 源文件实现

在speechManager.cpp中将构造和析构函数空实现补全

#include "speechManager.h"
SpeechManager::SpeechManager()
{
}
SpeechManager::~SpeechManager()
{
}

至此演讲管理类以创建完毕


4、 菜单功能


功能描述:与用户的沟通界面


4.1 添加成员函数

在管理类speechManager.h中添加成员函数 void show_Menu();

8.png

4.2 菜单功能实现

在管理类speechManager.cpp中实现 show_Menu()函数

void SpeechManager::show_Menu()
{
  cout << "********************************************" << endl;
  cout << "*************  欢迎参加演讲比赛 ************" << endl;
  cout << "*************  1.开始演讲比赛  *************" << endl;
  cout << "*************  2.查看往届记录  *************" << endl;
  cout << "*************  3.清空比赛记录  *************" << endl;
  cout << "*************  0.退出比赛程序  *************" << endl;
  cout << "********************************************" << endl;
  cout << endl;
}

4.3 测试菜单功能

在演讲比赛流程管理系统.cpp中测试菜单功能

代码:

#include<iostream>
using namespace std;
#include "speechManager.h"
int main() {
  SpeechManager sm;
  sm.show_Menu();
  system("pause");
  return 0;
}

运行效果如图:

9.png

菜单界面搭建完毕


5、 退出功能


5.1 提供功能接口

在main函数中提供分支选择,提供每个功能接口

代码:


int main() {
  SpeechManager sm;
  int choice = 0; //用来存储用户的选项
  while (true)
  {
  sm.show_Menu();
  cout << "请输入您的选择: " << endl;
  cin >> choice; // 接受用户的选项
  switch (choice)
  {
  case 1:  //开始比赛
    break;
  case 2:  //查看记录
    break;
  case 3:  //清空记录
    break;
  case 0:  //退出系统
    break;
  default:
    system("cls"); //清屏
    break;
  }
  }
  system("pause");
  return 0;
}


5.2 实现退出功能

在speechManager.h中提供退出系统的成员函数 void exitSystem();


在speechManager.cpp中提供具体的功能实现

void SpeechManager::exitSystem()
{
  cout << "欢迎下次使用" << endl;
  system("pause");
  exit(0);
}

5.3测试功能

在main函数分支 0 选项中,调用退出程序的接口

10.png

运行测试效果如图:

11.png



 


相关文章
|
数据采集 自然语言处理 监控
|
机器学习/深度学习 传感器 算法
大M序列的产生和相关性质附matlab代码
大M序列的产生和相关性质附matlab代码
|
监控 应用服务中间件 BI
nginx日志统计分析自动报表工具goaccess(推荐)
## 功能描述 - nginx日志统计分析自动报表工具goaccess(推荐) - 网站总访问量统计,按天统计访问量,按页面(不同URL)统计访问量(不包括JS、css),按静态页面统计访问量(包括JS、css),不存在的页面统计访问量 - 按不同的IP统计访问量,按不同的操作系统统计访问量,...
8064 0
|
5月前
|
机器学习/深度学习 人工智能 算法
算法备案全流程实操
随着《生成式人工智能服务管理暂行办法》在2024年实施,算法备案成为强制性要求。未合规将导致APP下架或高额罚款。本文详解算法备案的核心逻辑与流程,涵盖必备案算法类型、三大监管红线、六大阶段的关键节点,并提供阿里云工具支持,如合规预评估平台和备案助手插件。内容包括金融风控算法的可解释性要求、生成式AI的内容安全措施及个人开发者的技术能力证明方法,助力开发者实现持续合规。
808 4
|
10月前
|
机器学习/深度学习 数据采集 传感器
使用Python实现深度学习模型:智能土壤质量监测与管理
使用Python实现深度学习模型:智能土壤质量监测与管理
619 69
|
存储 Java 数据库
基于SpringBoot的CSGO赛事管理系统(程序+数据库+文档)
基于SpringBoot的CSGO赛事管理系统(程序+数据库+文档)
|
关系型数据库 MySQL 数据库
MySQL mysqldump教程:轻松备份与迁移数据库
MySQL mysqldump教程:轻松备份与迁移数据库
1569 1
|
机器学习/深度学习 数据采集 存储
【机器学习】数据清洗之识别重复点
【机器学习】数据清洗之识别重复点
508 1
|
固态存储 测试技术 计算机视觉
YOLOv5改进 | 主干篇 | 利用MobileNetV2替换Backbone(轻量化网络结构)
YOLOv5改进 | 主干篇 | 利用MobileNetV2替换Backbone(轻量化网络结构)
509 0