酒店管理系统c语言课程设计
时间: 2023-10-16 16:08:00 浏览: 95
酒店管理系统可以涉及到以下模块:
1. 用户管理模块:包括管理员和客户登录注册,客户个人信息修改,密码修改等功能。
2. 预订管理模块:客户可以通过该模块进行房间预订,包括查看房间信息、选择房型、选择入住时间等操作。
3. 入住管理模块:客户到达酒店后,通过该模块完成入住手续,包括房间分配、入住登记、支付等操作。
4. 房间管理模块:管理员可以通过该模块对房间信息进行管理,包括添加、删除、修改、查询等操作。
5. 财务管理模块:管理员可以通过该模块对酒店财务进行管理,包括收支记录、财务报表生成等操作。
6. 系统设置模块:管理员可以通过该模块对系统进行设置,包括用户权限设置、系统参数设置等操作。
以下是一个简单的酒店管理系统的代码框架,你可以根据需求进行修改:
```c
#include <stdio.h>
#include <string.h>
#define MAX_ROOM_NUM 100 // 最大房间数
// 房间信息结构体
typedef struct Room {
int id; // 房间号
char type[10]; // 房间类型
int price; // 房间价格
int status; // 房间状态:0-空闲,1-已预订,2-已入住
} Room;
// 用户信息结构体
typedef struct User {
char name[20]; // 用户名
char password[20]; // 密码
int role; // 用户角色:0-客户,1-管理员
} User;
// 全局变量:房间数组、用户数组、当前登录用户
Room rooms[MAX_ROOM_NUM];
User users[MAX_ROOM_NUM];
User currentUser;
// 函数声明
void initRooms();
void initUsers();
void showMenu();
void login();
void registerUser();
void modifyPassword();
void searchRoom();
void reserveRoom();
void checkIn();
void checkOut();
void addRoom();
void deleteRoom();
void modifyRoom();
void financeReport();
void setUserRole();
int main() {
initRooms();
initUsers();
showMenu();
return 0;
}
// 初始化房间信息
void initRooms() {
// TODO: 从文件中读取房间信息
}
// 初始化用户信息
void initUsers() {
// TODO: 从文件中读取用户信息
}
// 显示菜单
void showMenu() {
printf("欢迎使用酒店管理系统\n");
printf("1. 登录\n");
printf("2. 注册\n");
printf("3. 修改密码\n");
printf("4. 查找房间\n");
printf("5. 预订房间\n");
printf("6. 入住房间\n");
printf("7. 退房结算\n");
printf("8. 添加房间\n");
printf("9. 删除房间\n");
printf("10. 修改房间\n");
printf("11. 财务报表\n");
printf("12. 设置用户角色\n");
printf("0. 退出系统\n");
printf("请输入菜单选项:");
int choice;
scanf("%d", &choice);
switch (choice) {
case 0:
printf("感谢使用酒店管理系统,再见!\n");
break;
case 1:
login();
break;
case 2:
registerUser();
break;
case 3:
modifyPassword();
break;
case 4:
searchRoom();
break;
case 5:
reserveRoom();
break;
case 6:
checkIn();
break;
case 7:
checkOut();
break;
case 8:
addRoom();
break;
case 9:
deleteRoom();
break;
case 10:
modifyRoom();
break;
case 11:
financeReport();
break;
case 12:
setUserRole();
break;
default:
printf("无效的菜单选项,请重新输入!\n");
showMenu();
break;
}
}
// 登录
void login() {
printf("请输入用户名:");
char name[20];
scanf("%s", name);
printf("请输入密码:");
char password[20];
scanf("%s", password);
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (strcmp(users[i].name, name) == 0 && strcmp(users[i].password, password) == 0) {
currentUser = users[i];
printf("登录成功,欢迎您,%s!\n", currentUser.name);
showMenu();
return;
}
}
printf("用户名或密码错误,请重新登录!\n");
login();
}
// 注册用户
void registerUser() {
printf("请输入用户名:");
char name[20];
scanf("%s", name);
printf("请输入密码:");
char password[20];
scanf("%s", password);
printf("请选择用户角色(0-客户,1-管理员):");
int role;
scanf("%d", &role);
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (strcmp(users[i].name, name) == 0) {
printf("用户名已存在,请重新注册!\n");
registerUser();
return;
}
}
User user;
strcpy(user.name, name);
strcpy(user.password, password);
user.role = role;
users[MAX_ROOM_NUM - 1] = user;
printf("注册成功,请登录!\n");
showMenu();
}
// 修改密码
void modifyPassword() {
printf("请输入旧密码:");
char oldPassword[20];
scanf("%s", oldPassword);
if (strcmp(currentUser.password, oldPassword) != 0) {
printf("旧密码错误,请重新输入!\n");
modifyPassword();
return;
}
printf("请输入新密码:");
char newPassword[20];
scanf("%s", newPassword);
strcpy(currentUser.password, newPassword);
printf("密码修改成功,请重新登录!\n");
showMenu();
}
// 查找房间
void searchRoom() {
printf("请输入房间号:");
int roomId;
scanf("%d", &roomId);
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (rooms[i].id == roomId) {
printf("房间号\t房间类型\t房间价格\t房间状态\n");
printf("%d\t%s\t%d\t%d\n", rooms[i].id, rooms[i].type, rooms[i].price, rooms[i].status);
showMenu();
return;
}
}
printf("房间不存在,请重新输入!\n");
searchRoom();
}
// 预订房间
void reserveRoom() {
printf("请输入房间号:");
int roomId;
scanf("%d", &roomId);
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (rooms[i].id == roomId) {
if (rooms[i].status != 0) {
printf("该房间已被预订或入住,请选择其他房间!\n");
showMenu();
return;
}
rooms[i].status = 1;
printf("预订成功!\n");
showMenu();
return;
}
}
printf("房间不存在,请重新输入!\n");
reserveRoom();
}
// 入住房间
void checkIn() {
printf("请输入房间号:");
int roomId;
scanf("%d", &roomId);
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (rooms[i].id == roomId) {
if (rooms[i].status != 1) {
printf("该房间未被预订,请先预订!\n");
showMenu();
return;
}
rooms[i].status = 2;
printf("入住成功!\n");
showMenu();
return;
}
}
printf("房间不存在,请重新输入!\n");
checkIn();
}
// 退房结算
void checkOut() {
printf("请输入房间号:");
int roomId;
scanf("%d", &roomId);
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (rooms[i].id == roomId) {
if (rooms[i].status != 2) {
printf("该房间未被入住,请先入住!\n");
showMenu();
return;
}
int days;
printf("请输入入住天数:");
scanf("%d", &days);
int total = rooms[i].price * days;
printf("结算成功,共计%d元!\n", total);
rooms[i].status = 0;
showMenu();
return;
}
}
printf("房间不存在,请重新输入!\n");
checkOut();
}
// 添加房间
void addRoom() {
printf("请输入房间号:");
int roomId;
scanf("%d", &roomId);
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (rooms[i].id == roomId) {
printf("房间已存在,请重新输入!\n");
addRoom();
return;
}
}
Room room;
room.id = roomId;
printf("请输入房间类型:");
scanf("%s", room.type);
printf("请输入房间价格:");
scanf("%d", &room.price);
room.status = 0;
rooms[MAX_ROOM_NUM - 1] = room;
printf("添加房间成功!\n");
showMenu();
}
// 删除房间
void deleteRoom() {
printf("请输入房间号:");
int roomId;
scanf("%d", &roomId);
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (rooms[i].id == roomId) {
if (rooms[i].status != 0) {
printf("该房间已被预订或入住,不能删除!\n");
showMenu();
return;
}
int j;
for (j = i; j < MAX_ROOM_NUM - 1; j++) {
rooms[j] = rooms[j + 1];
}
printf("删除房间成功!\n");
showMenu();
return;
}
}
printf("房间不存在,请重新输入!\n");
deleteRoom();
}
// 修改房间
void modifyRoom() {
printf("请输入房间号:");
int roomId;
scanf("%d", &roomId);
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (rooms[i].id == roomId) {
printf("请输入新房间类型:");
scanf("%s", rooms[i].type);
printf("请输入新房间价格:");
scanf("%d", &rooms[i].price);
printf("修改房间成功!\n");
showMenu();
return;
}
}
printf("房间不存在,请重新输入!\n");
modifyRoom();
}
// 财务报表
void financeReport() {
int totalIncome = 0;
int totalExpense = 0;
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (rooms[i].status == 2) {
totalIncome += rooms[i].price;
}
}
printf("总收入:%d元\n", totalIncome);
printf("总支出:%d元\n", totalExpense);
showMenu();
}
// 设置用户角色
void setUserRole() {
if (currentUser.role != 1) {
printf("您没有权限访问该功能!\n");
showMenu();
return;
}
printf("请输入用户名:");
char name[20];
scanf("%s", name);
int i;
for (i = 0; i < MAX_ROOM_NUM; i++) {
if (strcmp(users[i].name, name) == 0) {
printf("请输入用户角色(0-客户,1-管理员):");
int role;
scanf("%d", &role);
users[i].role = role;
printf("设置用户角色成功!\n");
showMenu();
return;
}
}
printf("用户不存在,请重新输入!\n");
setUserRole();
}
```
阅读全文