当前位置: 首页 > news >正文

c++学习笔记-STL案例-机房预约系统1-准备工作

前言

准备工作包括:需求分析、项目创建、主菜单实现、退出功能实现


目录

1 机房预约系统需求

1.1 简单介绍

1.2 身份介绍

1.3 机房介绍

1.4 申请介绍

1.5 系统具体要求

1.6 预约系统-主界面思维导图

 2 创建项目

2.1 创建项目

2.2 添加文件

​编辑

3 创建主菜单

3.1 菜单实现

3.2 搭建接口 

3.3 代码实现

3.4 结果显示

 4 退出功能实现

4.1 退出功能实现

4.2 测试结果


1 机房预约系统需求

1.1 简单介绍

学校有几个规格不同的机房,由于使用经常出现“撞车”现象,现在开发一套预约系统,解决这一问题。

1.2 身份介绍

分别有三种身份使用该系统

  • 学生代表:申请使用机房
  • 教师:审核学生的预约申请
  • 管理员:给学生、教师创建账号

1.3 机房介绍

机房共三间

  • 1号机房:---最多容纳20人
  • 2号机房:---最多容纳50人
  • 3号机房:---最多容纳100人

1.4 申请介绍

  • 申请的订单每周由管理员负责清空。
  • 学生可以预约未来一周的机房使用,预约日期为周一至周五,预约时需要选择预约时段(上午、下午)
  • 教师来审核预约,依据实际情况审核预约通过或者不通过

1.5 系统具体要求

首先进入登录界面,可选择登录身份:

  • 学生代表
  • 教师
  • 管理员
  • 退出

每个身份需要进行验证:

  • 学生需要输入:学号、姓名、登录密码
  • 老师需要输入:职工号、姓名、登录密码
  • 管理员需要输入:管理员姓名、登录密码

学生具体功能:

  • 申请预约---机房预约
  • 查看自身预约---查看自己的预约状态
  • 查看所有预约---查看全部预约信息以及预约状态
  • 取消预约---取消自身预约,预约成功审核中的预约可以取消
  • 注销登录---退出登录

教师具体功能:

  • 查看所有预约---查看全部预约信息以及预约状态
  • 审核预约---对学生的预约进行审核
  • 注销登录---退出登录

管理员具体功能:

  • 添加账号---添加学生或教师账号,需要检测学生编号或教师职工编号是否重复
  • 查看账号---可以选择查看学生或教师的全部信息
  • 查看机房---查看所有机房的信息
  • 清空预约---清空所有预约记录
  • 注销登录---退出登录

1.6 预约系统-主界面思维导图

 2 创建项目

2.1 创建项目

  • 打卡“visual studio 2019”,选择“创建新项目”,选择“空项目”,选择“下一步”

  • 修改项目名称为“机房预约系统”

2.2 添加文件

  • 在“源文件”处点击右键,选择“添加”,选择“新项目”

  • 选择“c++文件”,修改文件名称为“机房预约系统.cpp” 

3 创建主菜单

功能描述:

  • 设计主菜单,与用户进行交互

3.1 菜单实现

  • 在主函数main()中添加菜单提示

3.2 搭建接口 

  • 接受用户选择,搭建接口
  • 在main()中添加代码

3.3 代码实现

#include<iostream>
using namespace std;int main()
{int select = 0;//用于接收用户的选择while (true){cout << "========================= 欢迎来到机房预约系统 =========================" << endl;cout << endl << "请输入您的身份" << endl;cout << "\t\t -------------------------------------------------" << endl;cout << "\t\t|                                                 |\n";cout << "\t\t|                 1.学生代表                      |\n";cout << "\t\t|                                                 |\n";cout << "\t\t|                 2.老    师                      |\n";cout << "\t\t|                                                 |\n";cout << "\t\t|                 3.管 理 员                      |\n";cout << "\t\t|                                                 |\n";cout << "\t\t|                 0.退    出                      |\n";cout << "\t\t|                                                 |\n";cout << "\t\t -------------------------------------------------" << endl;cout << "输入您的选择:";cin >> select;//接受用户的选择switch (select){case 1:  //学生身份break;case 2:  //老师身份break;case 3:  //管理员身份break;case 0:  //退出系统break;default:cout << "输入有误,请重新选择!" << endl;system("pause");system("cls");break;}}system("pause");return 0;}

3.4 结果显示

 4 退出功能实现

4.1 退出功能实现

在main()函数分支0选项中,添加退出程序的代码:

cout << "欢迎下次使用" << endl;system("pause");return 0;break;

4.2 测试结果

相关文章:

c++学习笔记-STL案例-机房预约系统1-准备工作

前言 准备工作包括&#xff1a;需求分析、项目创建、主菜单实现、退出功能实现 目录 1 机房预约系统需求 1.1 简单介绍 1.2 身份介绍 1.3 机房介绍 1.4 申请介绍 1.5 系统具体要求 1.6 预约系统-主界面思维导图 2 创建项目 2.1 创建项目 2.2 添加文件 ​编辑 3 创建…...

AnnData:单细胞和空间组学分析的数据基石

AnnData&#xff1a;单细胞和空间组学分析的数据基石 今天我们来系统学习一下单细胞分析的标准数据类型——AnnData&#xff01; AnnData就是有注释的数据&#xff0c;全称是Annotated Data。 AnnData是为了矩阵类型数据设计的&#xff0c;也就是长得和表格一样的数据。比如…...

C语言中的 `string.h` 头文件包含的函数

C语言中的 string.h 头文件包含了许多与字符串或数字相关的函数。这些函数可以用于字符串的复制、连接、搜索、比较等操作。 常用字符串函数 函数名功能strlen()返回字符串的长度strcpy()将一个字符串复制到另一个字符串中strncpy()将最多 n 个字符从一个字符串复制到另一个字…...

kotlin的抽象类和抽象方法

在 Kotlin 中&#xff0c;抽象类和抽象方法是面向对象编程中的概念&#xff0c;用于实现抽象和多态性。抽象类无法实例化&#xff0c;这意味着我们无法创建抽象类的对象。与其他类不同&#xff0c;抽象类总是打开的&#xff0c;因此我们不需要使用open关键字。 抽象类&#xff…...

2022年面经记录(base杭州)

duandian科技&#xff08;笔试未通过&#xff09; 笔试题&#xff1a;leetCode热题第20题有效的括号 面后感&#xff1a;没怎么刷算法题&#xff0c;js 基础不扎实 laiweilai&#xff08;三面未通过&#xff09; 一面&#xff1a;笔试题 写一个函数&#xff0c;获取url中的指定…...

安装Docker图形管理界面portainer

安装Docker图形管理界面portainer 映射data文件夹根据自己环境更换 docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath/docker/portainer:/data --restartalways portainer/portainer-ce:latest好好享受吧&#xff01…...

Linux学习记录——사십 高级IO(1)

文章目录 1、IO2、同、异步IO&#xff08;5种IO类型&#xff09;3、其它高级IO4、非阻塞IO 其它IO类型的实现在这篇之后的三篇 1、IO input&#xff0c;output。调用read或recv接口时&#xff0c;如果对方长时间不向我方接收缓冲区拷贝数据&#xff0c;我们的进程就只能阻塞&a…...

【代码随想录】2

数组篇 二分查找 int search(int* nums, int numsSize, int target) { int left0; int rightnumsSize-1; while(left<right) {int mlddle(leftright)/2;if(nums[mlddle]>target){rightmlddle-1;}else if(nums[mlddle]<target){leftmlddle1;}else{return mlddle;}} r…...

TCP性能分析

ref&#xff1a; TCP性能和发送接收窗口、Buffer的关系 | plantegg...

RibbonGroup 添加QRadioButton

RibbonGroup添加QRadioButton&#xff1a; QRadioButton * pRadio new QRadioButton(tr("Radio")); pRadio->setToolTip(tr("Radio")); groupClipboard->addWidget(pRadio); connect(pRadio, SIGNAL(clicked(…...

一篇文章掌握WebService服务、工作原理、核心组件、主流框架

目录 1、WebService定义 解决问题&#xff1a; 2、WebService的工作原理 2.1 实现一个完整的Web服务包括以下步骤 2.2 调用方式 3、Web Service的核心组件 3.1 XML 3.2 SOAP 3.3 WSDL 3.4 UDDI 4、主流框架 4.1 AXIS(已淘汰) 4.2 XFire 4.3 CXF 5、Soap协议详解…...

观成科技-加密C2框架EvilOSX流量分析

工具简介 EvilOSX是一款开源的&#xff0c;由python编写专门为macOS系统设计的C2工具&#xff0c;该工具可以利用自身释放的木马来实现一系列集成功能&#xff0c;如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信&#xff0c;通信内容为特…...

PCL 计算异面直线的距离

目录 一、算法原理二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,PCL 计算异面直线的距离,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 设置直线 A B AB A...

【数字人】9、DiffTalk | 使用扩散模型基于 audio-driven+对应人物视频 合成说话头(CVPR2023)

论文&#xff1a;DiffTalk: Crafting Diffusion Models for Generalized Audio-Driven Portraits Animation 代码&#xff1a;https://sstzal.github.io/DiffTalk/ 出处&#xff1a;CVPR2023 特点&#xff1a;需要音频对应人物的视频来合成新的说话头视频&#xff0c;嘴部抖…...

完成源示例

本主题演示如何创作和使用自己的完成源类&#xff0c;类似于 .NET 的 TaskCompletionSource。 completion_source 示例的源代码 下面的列表中的代码作为示例提供。 其目的是说明如何编写自己的版本。 例如&#xff0c;支持取消和错误传播不在此示例的范围内。 #include <w…...

业务和流程的关系

背景 概念不清&#xff0c;沟通就容易出现问题&#xff0c;最可怕会出现跑偏情况如何解决&#xff0c;数字化落地过程&#xff0c;程序是死的&#xff0c;最怕灵活&#xff0c;所以在沟通和编码&#xff0c;设计中&#xff0c;很重要的一点就是解决概念&#xff0c;澄清问题&a…...

【河海大学论文LaTeX+VSCode全指南】

河海大学论文LaTeXVSCode全指南 前言一、 LaTeX \LaTeX{} LATE​X的安装二、VScode的安装三、VScode的配置四、验证五、优化 前言 LaTeX \LaTeX{} LATE​X在论文写作方面具有传统Word无法比拟的优点&#xff0c;VScode作为一个轻量化的全功能文本编辑器&#xff0c;由于其极强的…...

学习python仅此一篇就够了(文件操作:读,写,追加)

python文件操作 文件编码 编码技术即&#xff1a;翻译的规则&#xff0c;记录了如何将内容翻译成二进制&#xff0c;以及如何将二进制翻译回可识别内容。 计算机中有许多可用编码&#xff1a; UTF-8 GBK BUG5 文件的读取操作 open&#xff08;&#xff09;函数 在pyth…...

vue中 ref 和 $refs的使用

1. 作用 利用 ref 和 $refs 可以用于 获取 dom 元素, 或 组件实例 2. 获取 dom 使用步骤&#xff1a; 2.1 目标标签添加属性 :ref <div ref"chartRef">我是渲染图表的容器</div>2.2 通过$ref&#xff1a;获取标签 mounted() {console.log(this.$re…...

Centos7升级openssl到openssl1.1.1

Centos7升级openssl到openssl1.1.1 1、先查看openssl版本&#xff1a;openssl version 2、Centos7升级openssl到openssl1.1.1 升级步骤 #1、更新所有现有的软件包列表并安装最新的软件包&#xff1a; $sudo yum update #2、接下来&#xff0c;我们需要从源代码编译和构建OpenS…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...