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