C++机房预约系统实现流程实例

目录
  • 1.机房预约系统分析
    • 1.1身份简介
    • 1.2机房简介
    • 1.3申请简介
    • 1.4系统具体需求
  • 2.系统实现
    • 2.1建立身份类
    • 2.2建立管理者类
    • 2.3建立老师类
    • 2.4建立学生类
  • 3.文件处理
    • 3.1管理者的文件
    • 3.2老师的文件
    • 3.3学生文件
  • 4.程序下载地址

1.机房预约系统分析

1.1身份简介

学生代表:申请使用机房

教师:审核学生的预约申请

管理员:给学生、教师创建账号

1.2机房简介

1号机房—最大容量20人

2号机房—最大容量50人

3号机房—最多容量100人

1.3申请简介

申请订单每周由管理员负责清空。

学生可以预约未来一周的机房使用,预约的日期为周一至周五,预约时需要选择预约时段(上午、下午)

教师审核预约,依据实际情况审核预约通过或不通过。

1.4系统具体需求

首先进入登陆界面,可以选择登录身份以及身份验证有:

学生代表:学号、姓名、登录密码

老师:职工号、姓名、登录密码

管理员:管理员姓名、登录密码

退出

2.系统实现

2.1建立身份类

三种类型的使用者都有相同的共性,通过建立父类,将三者的共同属性建立起来。其中用虚函数创建子菜单,通过不同的登录选择选项进入不同的子菜单。这里为了方便将成员变量设置为公共属性,如果设置为私有属性需要通过友元函数或者成员函数提供的接口来访问私有属性变量。

using namespace std;
class Identity
{
public:
	//不同的操作菜单
	virtual void Mainpulation_Menu() = 0;
	//用户名
	string M_Name;
	//密码
	string M_Password;
};

2.2建立管理者类

管理者类在继承原有的身份类成员变量和虚函数的基础上创建了其自身的成员函数,通过成员函数来实现对应功能选择。

class Manager :public Identity
{
public:
	virtual void Mainpulation_Menu();
	Manager();
	~Manager();
	Manager(string name, string password);
	void AddAccount();
	//查看账号
	void ShowPerson();
	//查看机房信息
	void ShowComputer();
	//清空预约记录
	void ClearFile();
	//初始化容器
	void InitVector();
	//学生容器
	vector<Student>VStu;
	//老师容器
	vector<Teacher>VTea;
	//检测重复 参数1代表检测的ID号 参数2检测类型
	bool CheckRepeat(int id, int type);
	//机房容器
	vector<ComputerRoom>VCom;
};

2.3建立老师类

class Teacher :public Identity
{
public:
	~Teacher();
	Teacher();
	Teacher(int empleid, string name, string password);
	//操作菜单
	virtual void Mainpulation_Menu();
	//查看预约
	void ShowAllorder();
	//审核预约
	void ChackOrder();
	//职工号
	int M_EmpId;
};

2.4建立学生类

class Student :public Identity
{
public:
	Student();
	Student(int id, string name, string password);
	~Student();
	//菜单界面
	virtual void Mainpulation_Menu();
	//申请预约
	void ApplyOreder();
	//查看自身预约
	void ShowMyOreder();
	//查看所有预约
	void ShowAllOrder();
	//取消预约
	void CancelOrder();
	//机房容器
	vector<ComputerRoom>VCom;
	//学号
	int M_Id = 0;
};

3.文件处理

3.1管理者的文件

通过文件记录管理者的姓名和密码,将信息存在文本文件上。管理者的的有参构造函数将对机房文本文件的信息写入到创建机房容器当中,机房容器存储着对应的机房号和最大容量信息。

	//初始化机房信息
	ifstream ifs;
	ifs.open(COMPUTER_FILE, ios::in);
	ComputerRoom com;
	while (ifs >> com.M_ComId && ifs >> com.M_MaxNum)
	{
		VCom.push_back(com);
	}
	ifs.close();

管理者类建立添加账户的成员函数。利用追加的方式分别写入要创建的学生或者老师的信息。

	//利用追加的方式写文件
	ofs.open(File_names, ios::out | ios::app);
	int id;//学号/职工号
	string name;//姓名
	string pwd;//密码

3.2老师的文件

通过读取老师文件中的信息与老师登录选项做对比。

OrderFile of;
	cout << "请输入审核的预约记录,0代表返回" << endl;
	int select = 0;//接受用户的选择的预约记录
	int ret = 0;//接受预约结果的记录

3.3学生文件

	OrderFile of;
	if (of.M_Size == 0)
	{
		cout << "没有预约记录!" << endl;
		system("pause");
		system("cls");
		return;
	}
	cout << "审核中或预约的记录可以取消,请输入取消的记录!" << endl;
	int index = 1;
	vector<int>v;

4.程序下载地址

链接: https://pan.baidu.com/s/1E_6YrUu2YOWZt-hybhP9mQ?pwd=unv8

提取码: unv8

到此这篇关于C++机房预约系统实现流程实例的文章就介绍到这了,更多相关C++机房预约系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++实现简单通讯录系统

    本文实例为大家分享了C++实现简单通讯录系统的具体代码,供大家参考,具体内容如下 需求分析: 1.通讯录可以添加联系人. 2.通讯录可以显示所有联系人. 3.通讯录可以查找联系人. 4.通讯录可以删除联系人. 5.通讯录可以修改联系人. 6.可以清空通讯录. 7.退出通讯录. 项目代码: #include<iostream> #include<string> #include<stdlib.h> using namespace std; #define MAX 1000

  • C++实现简单酒店管理系统

    本文实例为大家分享了C++实现简单酒店管理系统的具体代码,供大家参考,具体内容如下 酒店管理系统设计报告 一. 需求分析 题目要求如下: 某酒店有客房若干间,其中客房分为不同等级,如豪华.标准.普通等,客房床位数也不同.例如,豪华套房有4个床位,400元/晚:标准客房2个床位,200元/晚:普通客房1个床位,100元/晚. 顾客分金卡会员.银卡会员.普通会员及非会员,其享受的折扣不同.例如,金卡会员可享受8折优惠,银卡会员可享受9折优惠,普通会员享受95折优惠,非会员不享受优惠. 当顾客连续入住

  • C++机房预约系统实现流程实例

    目录 1.机房预约系统分析 1.1身份简介 1.2机房简介 1.3申请简介 1.4系统具体需求 2.系统实现 2.1建立身份类 2.2建立管理者类 2.3建立老师类 2.4建立学生类 3.文件处理 3.1管理者的文件 3.2老师的文件 3.3学生文件 4.程序下载地址 1.机房预约系统分析 1.1身份简介 学生代表:申请使用机房 教师:审核学生的预约申请 管理员:给学生.教师创建账号 1.2机房简介 1号机房—最大容量20人 2号机房—最大容量50人 3号机房—最多容量100人 1.3申请简介

  • Android实现机房座位预约系统

    本文实例为大家分享了Android实现预约系统的具体代码,供大家参考,具体内容如下 这周要去武汉开会,下周项目就得用上,所以,比较紧.加上导师不懂Android开发,只要开会就改需求,/(ㄒoㄒ)/~~反正他说先让学校用着,移动端和服务器的开发就给了两周时间.所以功能实现的比较简单,但代码做的比较容易扩展,都留了接口,后面更新起来也好做一些.通过这个工程,对Struts2的拦截器有了一些新体会.随着项目变大代码量变多,自然而然就会想起用一些设计模式了.不然代码根本没办法看. 整体是4个fragm

  • java开发Activiti进阶篇流程实例详解

    目录 1.流程实例 1.1 什么是流程实例 1.2 业务管理 1.3 流程实例的挂起和激活 1.3.1 全部流程挂起 1.3.2 单个实例挂起 1.流程实例 1.1 什么是流程实例 流程实例(ProcessInstance)代表流程定义的执行实例 一个流程实例包括了所有的运行节点,我们可以利用这个对象来了解当前流程实例的进度等信息 例如:用户或者程序安装流程定义的内容发起了一个流程,这个就是一个流程实例 1.2 业务管理 ​流程定义部署在Activiti后,我们就可以在系统中通过Activiti

  • ElasticSearch写入流程实例解析

    目录 一.前言 二.lucence写 2.1 增删改 2.2. 并发模型 2.2.1. 基本操作 2.2.2 更新 2.2.3 删除 2.2.4 flush和commit 2.2.5 merge 小结 三. ElasticSearch的写 3.1. 宏观看ElasticSearch请求 3.2. 详细流程 3.2.1 协调节点内部流程 3.2.2 主分片节点流程* 3.2.3 副本分片节点流程8 四.总结 一.前言 介绍我们在前面已经知道ElasticSearch底层的写入是基于lucence依

  • C++演讲比赛管理系统实现流程实例

    目录 演讲比赛系统 1.需求分析 2.程序和功能 3.程序逻辑 3.1建立演讲比赛管理类 3.2开始演讲比赛程序 3.3查看往届比赛结果程序 3.4清空记录 3.5等待程序和随机产生姓名程序 4.程序下载 演讲比赛系统 1.需求分析 学校举行一场比赛,共有12人参加.比赛共两轮,第一轮为淘汰赛,第二轮为决赛. 每名选手都有对应的编号:如10001~10012. 比赛方式:分组比赛,每组6个人. 第一轮分为两个小组,整体按照选手的编号进行抽签后顺序演讲. 十个评委分别给每名选手打分,去除最高分和最

  • JavaScript实现实时更新系统时间的实例代码

    一.Js代码 function getTime(){ str = "当前系统时间:" var p = document.getElementById("sy_time"); time = new Date(); year = time.getFullYear(); month = time.getMonth() + 1; day = time.getDate(); hour = time.getHours(); minutes = time.getMinutes()

  • C/C++如何获取当前系统时间的实例详解

     C/C++如何获取当前系统时间的实例详解 C库中与系统时间相关的函数定义在<time.h>头文件中, C++定义在<ctime>头文件中. 一.time(time_t*)函数 函数定义如下: time_t time (time_t* timer); 获取系统当前日历时间 UTC 1970-01-01 00:00:00开始的unix时间戳 参数:timer 存取结果的时间指针变量,类型为time_t,指针变量可以为null.如果timer指针非null,则time()函数返回值变量

  • 原生JS实现-星级评分系统的简单实例

    今天我又写了个很酷的实例:星级评分系统(可自定义星星个数.显示信息) sufuStar.star(); 使用默认值5个星星,默认信息 var msg = [........]; sufuStar.star(10,msg); 自定义星星个数为10.显示信息msg格式参考默认值,条数必须和星星个数一致: 自己实现一些实例,有个好处,能增加应用各知识点的熟练度,还能检验出自己的薄弱项!一经发现,立即翻API文档恶补! 不知道是不是我太笨,这个实例居然写了整整一天! 不废话了,先说下这个实例涉及的知识点

  • 我教你学之注册表系统外观修改实例(六)

    我教你学之注册表系统外观修改实例(六) --MS-DOS方式窗口外观设置 设置MS-DOS方式窗口为全屏显示方式: 打开HKEY_CURRENT_USERConsole(*)子键分支,在右边的窗口内新建/修改双字节值"FullScreen",将其值设为1. 设置MS-DOS方式窗口所使用的字体: 打开(*)子键分支,在右边的窗口中修改键值项"FaceName",将其值设为所希望的字体名称. 设置MS-DOS方式的窗口宽度和高度: 打开(*)子键分支,在右边的窗口中修

  • Python之reload流程实例代码解析

    本文研究的主要是Python之reload流程的相关内容,具体如下. 在Python中,reload() 用于重新载入之前载入的模块. reload() 函数语法: reload(module) Python中 import 只执行一次,后续的 import 仅仅在 sys.modules 中查找是否存在对应的模块对象,而对于源文件进行修改后想要立即重新导入该文件而不想整体重新执行程序时, reload 就在该处派上用途了.在实际中,测试代码修改结果,或者对于不能停止的服务需要动态改变运行行为

随机推荐