文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2022-11-13 18:49

关注

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++机房预约系统内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯