您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
酒店管理系统是一个用于管理酒店日常运营的软件系统,涵盖了客房管理、客户信息管理、预订管理、账单管理等功能。使用C语言实现一个简单的酒店管理系统,可以帮助我们理解基本的编程概念和数据结构。本文将介绍如何使用C语言实现一个简单的酒店管理系统。
一个简单的酒店管理系统通常包括以下功能:
为了实现上述功能,我们需要设计一些基本的数据结构来存储相关信息。
struct Room {
int roomNumber; // 房间号
char type[20]; // 房间类型
float price; // 房间价格
int isOccupied; // 是否被占用
};
struct Customer {
char name[50]; // 客户姓名
char phone[15]; // 客户电话
int roomNumber; // 预订的房间号
};
struct Reservation {
int reservationId; // 预订ID
struct Customer customer; // 客户信息
int roomNumber; // 预订的房间号
char checkInDate[20]; // 入住日期
char checkOutDate[20]; // 退房日期
};
void addRoom(struct Room rooms[], int *roomCount) {
printf("Enter room number: ");
scanf("%d", &rooms[*roomCount].roomNumber);
printf("Enter room type: ");
scanf("%s", rooms[*roomCount].type);
printf("Enter room price: ");
scanf("%f", &rooms[*roomCount].price);
rooms[*roomCount].isOccupied = 0;
(*roomCount)++;
printf("Room added successfully!\n");
}
void deleteRoom(struct Room rooms[], int *roomCount, int roomNumber) {
for (int i = 0; i < *roomCount; i++) {
if (rooms[i].roomNumber == roomNumber) {
for (int j = i; j < *roomCount - 1; j++) {
rooms[j] = rooms[j + 1];
}
(*roomCount)--;
printf("Room deleted successfully!\n");
return;
}
}
printf("Room not found!\n");
}
void addCustomer(struct Customer customers[], int *customerCount) {
printf("Enter customer name: ");
scanf("%s", customers[*customerCount].name);
printf("Enter customer phone: ");
scanf("%s", customers[*customerCount].phone);
printf("Enter room number: ");
scanf("%d", &customers[*customerCount].roomNumber);
(*customerCount)++;
printf("Customer added successfully!\n");
}
void addReservation(struct Reservation reservations[], int *reservationCount, struct Customer customers[], int customerCount, struct Room rooms[], int roomCount) {
printf("Enter customer name: ");
char name[50];
scanf("%s", name);
for (int i = 0; i < customerCount; i++) {
if (strcmp(customers[i].name, name) == 0) {
reservations[*reservationCount].customer = customers[i];
printf("Enter room number: ");
int roomNumber;
scanf("%d", &roomNumber);
for (int j = 0; j < roomCount; j++) {
if (rooms[j].roomNumber == roomNumber && !rooms[j].isOccupied) {
reservations[*reservationCount].roomNumber = roomNumber;
rooms[j].isOccupied = 1;
printf("Enter check-in date: ");
scanf("%s", reservations[*reservationCount].checkInDate);
printf("Enter check-out date: ");
scanf("%s", reservations[*reservationCount].checkOutDate);
(*reservationCount)++;
printf("Reservation added successfully!\n");
return;
}
}
printf("Room not available!\n");
return;
}
}
printf("Customer not found!\n");
}
void generateBill(struct Reservation reservations[], int reservationCount, struct Room rooms[], int roomCount) {
printf("Enter reservation ID: ");
int reservationId;
scanf("%d", &reservationId);
for (int i = 0; i < reservationCount; i++) {
if (reservations[i].reservationId == reservationId) {
for (int j = 0; j < roomCount; j++) {
if (rooms[j].roomNumber == reservations[i].roomNumber) {
printf("Customer: %s\n", reservations[i].customer.name);
printf("Room Number: %d\n", reservations[i].roomNumber);
printf("Room Type: %s\n", rooms[j].type);
printf("Price: %.2f\n", rooms[j].price);
printf("Check-in Date: %s\n", reservations[i].checkInDate);
printf("Check-out Date: %s\n", reservations[i].checkOutDate);
return;
}
}
}
}
printf("Reservation not found!\n");
}
为了使用户能够方便地使用系统,我们需要设计一个主菜单。
void displayMenu() {
printf("\nHotel Management System\n");
printf("1. Add Room\n");
printf("2. Delete Room\n");
printf("3. Add Customer\n");
printf("4. Add Reservation\n");
printf("5. Generate Bill\n");
printf("6. Exit\n");
}
最后,我们需要在主函数中调用上述功能。
int main() {
struct Room rooms[100];
struct Customer customers[100];
struct Reservation reservations[100];
int roomCount = 0;
int customerCount = 0;
int reservationCount = 0;
int choice;
while (1) {
displayMenu();
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
addRoom(rooms, &roomCount);
break;
case 2:
printf("Enter room number to delete: ");
int roomNumber;
scanf("%d", &roomNumber);
deleteRoom(rooms, &roomCount, roomNumber);
break;
case 3:
addCustomer(customers, &customerCount);
break;
case 4:
addReservation(reservations, &reservationCount, customers, customerCount, rooms, roomCount);
break;
case 5:
generateBill(reservations, reservationCount, rooms, roomCount);
break;
case 6:
printf("Exiting...\n");
return 0;
default:
printf("Invalid choice!\n");
}
}
return 0;
}
通过以上步骤,我们实现了一个简单的酒店管理系统。这个系统虽然功能较为基础,但涵盖了C语言中的基本概念,如结构体、数组、函数等。通过进一步扩展,可以增加更多功能,如数据持久化、用户界面优化等,使系统更加完善。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。