溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言如何實現酒店管理系統

發布時間:2022-06-06 09:35:53 來源:億速云 閱讀:784 作者:zzz 欄目:開發技術

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語言中的基本概念,如結構體、數組、函數等。通過進一步擴展,可以增加更多功能,如數據持久化、用戶界面優化等,使系統更加完善。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女