# 金山会议室预约系统

# 操作系统

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";  /* IP 127.0.0.1 */
char USER[50] = "root";  /* User root */
char PASSWORD[50] = "123456"; /* password root */
char DATABASE[50] = "reservation_system"; /* database reservation_system */
const int PORT = 3306; /* port 3306 */

# 系统运行

  • 编译
> cd build
> cmake ..
> make
  • 运行服务端
> cd bin
> ./app_server
  • 运行客户端
> cd bin
> ./app_client1     # 运行客户端 1
> ./app_client2     # 运行客户端 2
> ./app_client3     # 运行客户端 3

# 系统演示

【Bilibili 金山预约系统演示】

# 系统架构 C/S

  • 系统采用 C/S 架构,服务端开启监听端口,用于接收客户端的访问请求,使用多线程去分别处理用户请求,同时服务端与 Mysql 数据库进行数据传输;客户端通过服务端开启的端口与服务端建立连接,同时接收用户输入发送响应的请求.
    系统架构

# 设计逻辑(状态机模型)

状态机模型

Edited on Views times

Give me a cup of [coffee]~( ̄▽ ̄)~*

Value WeChat Pay

WeChat Pay