# 金山会议室预约系统
# 操作系统
Linux Ubuntu20.04
# 目录
# 需求说明
- 首先进入登录界面,可选登录身份有:
- 选择上述自己身份后,进入子菜单,每个身份都需要进行验证后,输入下列信息:
- 验证通过后,根据自己不同的身份,进入对应二级子菜单
- 业务人员
- 申请预约 —— 预约会议室
- 查看所有预约 —— 查看全部预约信息以及预约状态
- 查看自己预约 —— 查看自己的预约状态
- 取消预约 —— 取消会议室的预约
- 退出 —— 退出登录
- 行政人员
- 查看所有预约 —— 查看全部预约信息以及预约状态
- 审批预约 —— 对职员的预约进行审批
- 退出 —— 退出登录
- 管理员具体功能
- 添加账户 —— 添加业务人员或行政的账户,账户名具有唯一性。
- 查看账户
- 查看会议室信息 —— 可以查看所有会议室的名称、容量、预约信息
- 清空预约 —— 清空所有预约记录
- 退出 —— 退出登录
![需求说明]()
# Mysql 配置
mysql 数据库需要预先生成 administrator
(管理员身份表), business_user
(业务人员身份表), staff
(行政人员身份表) 以及 records
(预约记录表), sql 命令如下:
| > create table administrator(user varchar(255) not null, password varchar(255) not null); |
| > create table business_user(jid varchar(255) not null, name varchar(255) not null, user varchar(255) not null, password varchar(255) not null); |
| > create table staff(jid varchar(255) not null, name varchar(255) not null, user varchar(255) not null, password varchar(255) not null); |
| > create table records(rid int not null auto_increment primary key, jid varchar(255) not null, name varchar(255) not null, user varchar(255) not null, data varchar(255) not null, period varchar(255) not null, status int not null, room_id int not null); |
数据库配置文件在 s1.cpp
中进行相应的修改,修改内容如下:
| |
| char HOST[50] = "127.0.0.1"; |
| char USER[50] = "root"; |
| char PASSWORD[50] = "123456"; |
| char DATABASE[50] = "reservation_system"; |
| const int PORT = 3306; |
# 系统运行
| > cd build |
| > cmake .. |
| > make |
| > cd bin |
| > ./app_client1 |
| > ./app_client2 |
| > ./app_client3 |
# 系统演示
【Bilibili 金山预约系统演示】
# 系统架构 C/S
- 系统采用 C/S 架构,服务端开启监听端口,用于接收客户端的访问请求,使用多线程去分别处理用户请求,同时服务端与 Mysql 数据库进行数据传输;客户端通过服务端开启的端口与服务端建立连接,同时接收用户输入发送响应的请求.
![系统架构]()
# 设计逻辑(状态机模型)
![状态机模型]()