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

news2024/11/20 6:34:57

前言

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


目录

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 测试结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1375381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VTK开发调试环境下载(VTK开发环境一步到位直接开发,无需自己配置编译 VS2017+Qt5.12.10+VTK)

一、无与伦比的优势 直接下载代码就可以调试的VTK代码仓库。 二、资源制作原理 这个资源根据VTK源码 编译出动态库文件 pdb lib dll 文件&#xff08; x64 debug &#xff09; 并将这两者同时放在一个代码仓库里&#xff0c;下载就能用。 三、使用方法&#xff08;vtk-so…

【hyperledger-fabric】部署Java应用远程访问智能合约

简介 首先是根据b站的视频 hyperledger-fabric【3】在 java 应用中访问合约 以及hyperledger-fabric【5】Java应用和私有数据&#xff0c;本文章主要讲述的是视频中我遇到的问题&#xff0c;以及相关知识点的总结。 遇到的问题 问题1&#xff1a;git clone下载下来的代码发现…

Unity Meta Quest 一体机开发(十三):【手势追踪】自定义交互事件 EventWrapper

文章目录 &#x1f4d5;教程说明&#x1f4d5;交互事件概述&#x1f4d5;自定义交互逻辑⭐方法一&#xff1a;Inspector 面板赋值⭐方法二&#xff1a;纯代码处理 此教程相关的详细教案&#xff0c;文档&#xff0c;思维导图和工程文件会放入 Spatial XR 社区。这是一个高质量…

XCTF:CatCatCat[WriteUP]

从题目中下载到一张图片和一个txt文件 编码的开头是&#xff1a;U2FsdGVkX1所以是rabbit加密 尝试使用密钥&#xff1a;91 密码不对&#xff0c;无法解密所以从图片下手 使用010Editor搜索图片文本内容 尝试搜索password、flag等敏感字体 直接拿到rabbit解密需要的密钥是&am…

【AI视野·今日Sound 声学论文速览 第四十四期】Tue, 9 Jan 2024

AI视野今日CS.Sound 声学论文速览 Tue, 9 Jan 2024 Totally 27 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers DJCM: A Deep Joint Cascade Model for Singing Voice Separation and Vocal Pitch Estimation Authors Haojie Wei, Xueke Cao, Wenbo Xu…

移动光缆使用规定

移动光缆使用的规定&#xff1a; 1.1在移动光缆的施工过程中&#xff0c;其弯曲半径应该是移动光缆外径的15倍&#xff0c;并且不能小于20倍。 1.2在进行移动光缆敷设时&#xff0c;需要确保施加的拉力不超过移动光缆所允许的张力的80%。移动光缆的最大张力允许达到100%的限制…

Appium 自动化测试

1.Appium介绍 1&#xff0c;appium是开源的移动端自动化测试框架&#xff1b; 2&#xff0c;appium可以测试原生的、混合的、以及移动端的web项目&#xff1b; 3&#xff0c;appium可以测试ios&#xff0c;android应用&#xff08;当然了&#xff0c;还有firefoxos&#xff09;…

比亚迪:从低谷中涅槃,内功造就辉煌

修炼内功才能绽放光芒吗? 比亚迪用自己的奋斗史证明~ 只有经历低谷的洗礼&#xff0c;才能铸就属于自己的辉煌。 比亚迪这家公司的发展历程可谓是一部从战略转型到今天这个行业翘楚的奋斗史&#xff0c;真是跌宕起伏令人唏嘘。早期比亚迪从一个传统企业转型到汽车行业&#xf…

【Kafka-3.x-教程】-【五】Kafka-监控-Eagle

【Kafka-3.x-教程】专栏&#xff1a; 【Kafka-3.x-教程】-【一】Kafka 概述、Kafka 快速入门 【Kafka-3.x-教程】-【二】Kafka-生产者-Producer 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft 【Kafka-3.x-教程】-【四】Kafka-消费者-Consumer 【Kafka-3.x-教程】-【五…

《ORANGE’S:一个操作系统的实现》读书笔记(二十八)文件系统(三)

上一篇文章记录了文件系统&#xff0c;我们将硬盘映像进行了分区&#xff0c;并且清楚了如何获取分区信息。但是硬盘驱动程序目前只能处理DEV_OPEN消息&#xff0c;这显然是不够的&#xff0c;这篇文章记录对硬盘驱动的完善&#xff0c;让它能够处理更多的消息&#xff0c;并且…

C++力扣题目110--平衡二叉树

给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;t…

YOLOv8 + openVINO 多线程数据读写顺序处理

多线程数据读写顺序处理 一个典型的生产者-消费者模型&#xff0c;在这个模型中&#xff0c;多个工作线程并行处理从共享队列中获取的数据&#xff0c;并将处理结果以保持原始顺序的方式放入另一个队列。 多线程处理模型&#xff0c;具体细节如下&#xff1a; 1.数据:数据里必…

第三站:C/C++基础-二维数组

二维数组的概念 一维数组本身是多个大小相同的内存块,从0开始逐渐递增所组成的在横向上的有序"组合", 二维数组就是很多个一维数组在纵向上的组合,每一个一维数组就是二维数组在纵向上的从0开始的逐渐递增的一个单位,(所以一维数组在二维数组的基础上,每一个内存块…

AcWing1210-连号区间

文章目录 题目输入格式输出格式数据范围样例输入样例1输出样例1输入样例2输出样例2样例解释 思路代码 题目 输入格式 输出格式 数据范围 样例 输入样例1 4 3 2 4 1 输出样例1 7 输入样例2 5 3 4 2 5 1 输出样例2 9 样例解释 思路 固定L&#xff0c;遍历R在[L,R]区域中找到最大…

Java并发之互斥一:管程

1、简单聊聊什么是管程模型 &#xff08;共享资源&#xff09;&#xff1a;定义一个共享变量&#xff0c;可以理解锁&#xff0c;令牌这类的东西&#xff08;互斥访问共享资源&#xff09;&#xff1a;获取这个锁、令牌的时候是排好队的&#xff0c;只允许单线程访问&#xff…

《射雕三部曲》人物关系可视化及问答系统

背景&#xff1a; 该项目旨在构建一个基于图数据库和知识图谱的《射雕三部曲》人物关系可视化及问答系统。通过分析小说中的人物关系&#xff0c;将其构建成图数据库&#xff0c;并结合问答系统和数据分析技术&#xff0c;提供用户可视化的人物关系展示和相关问题的回答。 介绍…

快速排序-排序算法

算法思想 快速排序采用的仍然是分治的思想。 Step1.每次在无序的序列中选取一个基准数。 Step2.然后将大于和小于基准数的元素分别放置于基准数两边。&#xff08;前面部分的元素均小于或等于基准数&#xff0c;后面部分均大于或等于基准数&#xff09; Step3.然后采用分治法&…

mySQL 汇总

登录MySQL winR 打开查询命令 输入 cmd 输入net start MySQL 打开mysql 报错:系统错误&#xff0c;拒绝访问 &#xff08;没权限&#xff01;&#xff09; 解决办法&#xff1a;搜索栏查询‘cmd’ 使用管理员身份运行 &#xff08;或鼠标右键‘开始’&#xff0c;windows po…

YOLOv5 损失函数改进 | 引入 Shape-IoU 考虑边框形状与尺度的度量

🗝️改进YOLOv8注意力系列一:结合ACmix、Biformer、BAM注意力机制 论文讲解加入代码本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方式,在本文中具有完整的代码和包含多种更有效加入YOLOv8中的yaml结构,读者可以获取到注意力加入的代码和使用经验,总…

学生评教,问卷调查表评价教师统计,python+pandas处理数据

先上一个结果表格 几个关键步骤 1、问卷网站上设置相关题目,条目,最好用评分题目(点击文本选项,但是保存下来的是分值),如图 2、pandas清洗数据,包括unstack,其目的是把所有学生得分细分展开,因为班级选科不同,问卷上针对的教师不同,比如有些学生需要评价物理教师…