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

简介: 笔记

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



 


相关文章
|
算法 程序员 数据安全/隐私保护
2022 年终总结|怎样写出一篇还不错的文章
2022 年终总结|怎样写出一篇还不错的文章
76 0
不用费劲,这5款效率工具为你解决学习工作烦恼
今天我要向大家推荐5款超级好用的效率软件,无论是在学习还是办公中都能够极大地提高效率。这些软件可以帮助你解决许多问题,而且每个都是真正的神器。
148 0
不用费劲,这5款效率工具为你解决学习工作烦恼
|
Java 关系型数据库 MySQL
【浅尝高并发编程】接私活差点翻车
作为一名本本分分的练习时长两年半的Java练习生,一直深耕在业务逻辑里,对并发编程的了解仅仅停留在八股文里。一次偶然的机会,接到一个私活,核心逻辑是写一个 定时访问api把数据持久化到数据库的小服务。
170 0
|
机器学习/深度学习 人工智能 自然语言处理
【paddlehubOCR项目】网课手酸酸,眼花花,救星来啦!
大家好这里是三岁,今天给大家带来的是在AiStudio项目平台的一个精选项目,虽然很短,但是效果拔群,使用到了最近特别火的paddleOCR~~~
272 0
【paddlehubOCR项目】网课手酸酸,眼花花,救星来啦!
|
架构师
敲黑板!创业前一定要做的几件事!
敲黑板!创业前一定要做的几件事!
198 0
敲黑板!创业前一定要做的几件事!
|
人工智能 运维 数据可视化
程序员养家活口接私活必备网站(顺便用技术改变世界)
程序员接私活的原因很多种(挣钱、养家糊口、提升技术等等)。下面整理了一下网站送给最有潜能的你。 提前准备好自己的笔记本和技术呦。
557 0
|
设计模式 移动开发 安全
与其硬啃“屎山”代码,不如用这六步有条不紊实现代码重构 李慧文
对大规模系统进行重构,如果一个人对着又臭又长的代码硬刚,即使花了大量的时间进行手工验证,最后仍然会有很多问题,特别是一些深路径及特殊场景下的问题。其实,大规模的系统级别重构时是有方法的。我们采访了 Thoughtworks 数字化转型与运营 资深咨询师黄俊彬(QCon+案例研习社讲师),请他来分享 MV*模式重构演进的方法和经验。
568 0
与其硬啃“屎山”代码,不如用这六步有条不紊实现代码重构 李慧文
|
物联网 大数据 数据库
产品:“嘘,这事千万别让开发知道”
作为2019年首场最受瞩目的云计算开发者大会,阿里云火力全开。本次开发者大会聚焦开源大数据、IT基础设施云化、数据库、云原生、物联网五大主力方向。
2198 0