C语言如何实现酒店管理系统

发布时间:2022-06-06 09:35:53 作者:zzz
来源:亿速云 阅读:734

C语言如何实现酒店管理系统

酒店管理系统是一个用于管理酒店日常运营的软件系统,涵盖了客房管理、客户信息管理、预订管理、账单管理等功能。使用C语言实现一个简单的酒店管理系统,可以帮助我们理解基本的编程概念和数据结构。本文将介绍如何使用C语言实现一个简单的酒店管理系统。

1. 系统功能概述

一个简单的酒店管理系统通常包括以下功能:

2. 数据结构设计

为了实现上述功能,我们需要设计一些基本的数据结构来存储相关信息。

2.1 客房信息

struct Room {
    int roomNumber;  // 房间号
    char type[20];   // 房间类型
    float price;     // 房间价格
    int isOccupied;  // 是否被占用
};

2.2 客户信息

struct Customer {
    char name[50];   // 客户姓名
    char phone[15];  // 客户电话
    int roomNumber;  // 预订的房间号
};

2.3 预订信息

struct Reservation {
    int reservationId;  // 预订ID
    struct Customer customer;  // 客户信息
    int roomNumber;  // 预订的房间号
    char checkInDate[20];  // 入住日期
    char checkOutDate[20]; // 退房日期
};

3. 功能实现

3.1 客房管理

添加客房

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");
}

3.2 客户信息管理

添加客户信息

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");
}

3.3 预订管理

添加预订

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");
}

3.4 账单管理

生成账单

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");
}

4. 主菜单设计

为了使用户能够方便地使用系统,我们需要设计一个主菜单。

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");
}

5. 主函数

最后,我们需要在主函数中调用上述功能。

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;
}

6. 总结

通过以上步骤,我们实现了一个简单的酒店管理系统。这个系统虽然功能较为基础,但涵盖了C语言中的基本概念,如结构体、数组、函数等。通过进一步扩展,可以增加更多功能,如数据持久化、用户界面优化等,使系统更加完善。

推荐阅读:
  1. 酒店管理系统
  2. 使用C语言怎么编写一个酒店管理系统

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:Python如何实现信息管理系统

下一篇:vue项目中使用axios遇到的相对路径和绝对路径问题怎么解决

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》