C++机房预约系统

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/1UklNbw9OXWeGWBTJymHnxA
提取码:91u9

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值