酒店管理系统
一、功能说明
本系统属于中小型旅馆管理系统,可以有效地对中小型旅馆的经营进行管理。本系统有以下功能:
(1) 根据实际情况本系统分五种角色分别是: 系统管理员、经理、前台接待员、保洁员、旅客。五个角色对应五个模块,每个模块都有不同的内容权限。
(2) 旅客:登录与注册、查询房间、查看自己信息。如果已经入住,则信息包括:个人信息和所住房间信息。
(3) 除旅客外,其他四个角色统一登录(账号:管理员对应a001、经理对应m001、前台接待对应r001、保洁员对应c001,职位对应的首字母固定,数字可增加。密码为6位数字密码)。不同职位对应不同的子菜单函数。
(4) 系统管理员功能:查看用户、增加用户、删除用户、初始化用户密码、修改用户信息、系统备份。系统管理员主要是维护系统,管理用户,备份系统文件(文件包括:用户文件、房间文件、账单文件、游客文件)。
(5) 经理功能:查看用户、增加用户、删除用户、修改用户信息、浏览客房、修改客房、增加客房、删除客房、查看账单。经理作为决策者,可以管理自己的员工,根据市场对客房进行增删改,提高旅馆收益。
(6) 前台接待员功能:查询房间、客人入住、退房、换房、续住、查看客人信息、修改个人信息。
(7) 保洁员功能:查询未打扫房间,确认房间打扫完成、修改个人信息。
二、系统五大模块
系统管理员模块 admin.c
管理员权限最大,可以对一切信息进行增删改。
1.管理员主函数:void adminSystem(User *r);
通过主函数进入管理员系统
2.管理员菜单函数:int adminMenu();
包含管理员的各种功能,供用户选择
3.查看用户:int display_user(User *head);
显示所有工作人员的信息,不包括密码。
4.增加用户:int add_user();
用户完成信息的填写,系统将用户的信息写到系统文件中。
5.删除用户:int delet_user();
根据输入的用户账号,从系统文件中找到该用户并删除,成功失败都会有提示。
6.初始化用户密码:int reset_password();
根据输入的用户登录帐号,从系统文件中找到用户并将该用户的密码重置为“111111”,成功失败都会有提示。
7.修改用户信息:int change_infor();
根据输入的用户登录帐号,可以完成对用户所有信息的修改。
8.备份系统文件:int backup_all();
备份用户文件:int backup_user();
备份房间文件:int backup_room();
备份账单文件:int backup_bill();
备份游客文件:int backup_tourist();
每次备份的系统文件名是由:类型+备份日期+时间组成。
经理模块 manager.c
经理的权限仅次于管理员,经理可以对除了管理员外的所有信息增删改。
1.经理主函数:void managerSystem(User *r);
通过主函数进入管理员系统。
2.经理菜单函数:int managerMenu();
包含经理的各种功能,供用户选择。
查看用户函数与管理员相同。
3.添加用户:int add_user_manager();
经理专用函数,只能添加经理及以下职位。
4.删除用户:int delet_user_manager();
与添加用户一样,只能删除经理及以下职位。
5.修改用户信息:int change_infor_manager();
同上。
6.浏览客房:int display_room(Room *head);
查看所有客房的所有信息,经理、接待员、游客公用此函数。
7.修改客房:int change_room_infor();
可以修改客房所有信息
8.增加客房:int add_room();
9.删除客房:int delet_room();
10.查看账单:int display_bill();
前台接待模块 recept.c
1.客人入住:int stay_room();
根据游客喜欢的房间名以及游客的登录用户名对房间和游客的有关信息进行改变,游客入住成功。
2.客人换房:int change_room();
根据游客喜欢的房间名以及游客的登录用户名对房间和游客的有关信息进行改变,游客换房成功。
3.续住:int continue_room();
可以按照游客要求的续住天数更改房间退房日期。
4.退房:int out_room();
退房后改变游客和房间的相关状态即可。
5.查看客人信息:int look_tourist();
不能看隐私信息
6.修改个人信息:int change_own_inf(User *pt);
根据接待员登录系统时的帐号直接更改相关信息
保洁员模块 cleaner.c
1.查看未打扫的房间:int needclear();
需要打扫的房间状态为"need_clear",打扫中的房间状态为"clearing"
2.确认打扫完成:int makesure();
打扫完成的房间状态默认为"empty"
3.修改个人信息:int change_person_infor();
根据输入的用户ID更改信息。
游客模块 tourist.c
1.注册或登录:Tourist *login_tourist();
若是第一位游客则直接注册,否则可以选择登录或者注册
2.查看客房:与经理、接待员公用函数
3.查看个人信息:int display_tourist(Tourist *pr);
如果已经入住则会显示个人信息和所住客房信息,否则只显示个人信息
三、相关信息表
用户信息表
属性名称 | 类型 | 长度 | 可否为空 |
---|---|---|---|
编号(userId) | 字符串 | 6 | 否 |
姓名 (name) | 字符串 | 15 | 否 |
性别(sex) | 字符串 | 7 | 否 |
角色 (role) | 字符串 | 8 | 否 |
邮箱 (email) | 字符串 | 14 | 可 |
密码 (password) | 字符串 | 9 | 否 |
房间信息表
属性名称 | 类型 | 长度 | 可否为空 |
---|---|---|---|
房号 (roomId) | 字符串 | 6 | 否 |
类型(name) | 字符串 | 14 | 否 |
价格 (price) | 整型 | 默认 | 否 |
优惠 (discount) | 整型 | 默认 | 否 |
押金(cashPledge) | 整型 | 默认 | 可 |
状态(status) | 字符串 | 12 | 否 |
账单信息表
属性名称 | 类型 | 长度 | 可否为空 |
---|---|---|---|
房号 (roomId) | 字符串 | 6 | 否 |
价格 (price) | 整型 | 默认 | 否 |
押金(cashPledge) | 整型 | 默认 | 可 |
应收费用(yingPrice) | 整型 | 默认 | 否 |
实收费用(realPrice) | 整型 | 默认 | 否 |
找零(change) | 整型 | 默认 | 否 |
状态(status) | 字符串 | 6 | 否 |
开房时间(inDay) | 字符串 | 12 | 否 |
退房时间(outDay) | 字符串 | 12 | 否 |
旅客信息表
属性名称 | 类型 | 长度 | 可否为空 |
---|---|---|---|
帐号(login_id) | 字符串 | 6 | 否 |
密码(password) | 字符串 | 8 | 否 |
房号 (roomId) | 字符串 | 6 | 否 |
身份证号 (m_ID) | 字符串 | 19 | 否 |
姓名(m_name) | 字符串 | 15 | 否 |
年龄 (m_age) | 整型 | 默认 | 否 |
性别 (m_sex) | 整型 | 默认 | 否 |
电话号码 (phone) | 字符串 | 13 | 否 |
开房时间(inDay) | 字符串 | 12 | 否 |
退房时间(outDay) | 字符串 | 12 | 否 |
状态 (status) | 字符串 | 12 | 否 |
四、结构体
用户结构体
struct user_node
{
char userid[6]; //帐号
char password[9]; //密码
char name[15]; //姓名
char sex[7]; //性别
char role[8]; //职位
char email[14]; //邮箱
struct user_node *next;
};
typedef struct user_node User;
房间结构体
struct room_node
{
char roomid[6]; //房间号
char name[14]; //房名
int price; //价格
int discount; //是否优惠
int cashPledge; //押金
char status[12]; //状态
struct room_node *next;
};
typedef struct room_node Room;
游客结构体
struct tourist_node
{
char login_id[6]; //登录用户名
char password[8]; //登录密码
char roomid[6]; //房号
char m_ID[19]; //身份证号
char m_name[15]; //姓名
int m_age; //年龄
int m_sex; //性别,1为男,0为女
char phone[13]; //电话号码
char inDay[12]; //开房时间
char outDay[12]; //退房时间
char status[12]; //房间状态
struct tourist_node *next;
};
typedef struct tourist_node Tourist;
账单结构体
struct bill_node
{
char roomid[6];
int price;
int cashPledge; //押金
int yingPrice; //应收费用
int realPrice; //实收费用
int change; //找零
char status[12]; //房间状态
char inDay[12]; //开房时间
char outDay[12]; //退房时间
struct bill_node *next;
};
typedef struct bill_node Bill;
本次项目在一些功能上没有做的太细,部分功能还可以进一步细化。如有问题,欢迎交流。
程序入口:酒店管理系统
登录码云后下载压缩包,解压后用终端进入所在文件夹,输入“make”命令编译通过后,进入bin文件夹,运行“./Hotel”命令即可进入系统。(资源免费)