C语言实现酒店预订管理系统

yizhihongxing

C语言实现酒店预订管理系统攻略

系统介绍

本系统是一个能够实现酒店房间预订管理的C语言程序。用户可以通过本系统查询酒店客房的房型、房间数量和价格等信息,并能够对房间进行预订、修改预订信息、取消预订。本系统的实现使用了基本的C语言语法,包括数组、结构体、指针等。

实现流程

1. 创建房间信息列表

首先,需要创建一个保存酒店房间信息的列表,包括房间号、房型、价格等信息。可以使用结构体来定义房间信息结构,然后使用数组来保存房间信息的列表。例如:

struct Room {
  int roomNumber;
  char roomType[20];
  int price;
  bool isBooked;
};

struct Room roomList[100];

2. 展示房间信息

用户可以通过系统菜单来查看房间的信息,例如显示所有房间信息、按照价格或房型排序显示房间信息等。使用循环来输出房间信息的列表,例如:

void displayAllRooms() {
  for (int i = 0; i < numberOfRooms; i++) {
    printf("Room Number: %d\n", roomList[i].roomNumber);
    printf("Room Type: %s\n", roomList[i].roomType);
    printf("Price: %d\n", roomList[i].price);
    if (roomList[i].isBooked) {
      printf("This room is currently booked.\n");
    } else {
      printf("This room is currently available.\n");
    }
    printf("\n");
  }
}

3. 预订房间

当用户预订一个房间时,需要在房间信息列表中标记这个房间已经被预订。可以通过修改房间信息结构体中的isBooked属性来实现:

void bookRoom(int roomNumber) {
  for (int i = 0; i < numberOfRooms; i++) {
    if (roomList[i].roomNumber == roomNumber) {
      if (roomList[i].isBooked) {
        printf("This room is already booked.\n");
      } else {
        roomList[i].isBooked = true;
        printf("Room %d has been booked successfully.\n", roomNumber);
      }
      return;
    }
  }
  printf("Room %d does not exist.\n", roomNumber);
}

4. 修改预订信息

当用户需要修改预订信息时,可以按照房间号查找到该房间的预订信息,并修改预订信息的其他属性(例如住客名字、预订时间等)。例如:

void modifyReservation(int roomNumber, char guestName[20], char checkInDate[20], char checkOutDate[20]) {
  for (int i = 0; i < numberOfRooms; i++) {
    if (roomList[i].roomNumber == roomNumber) {
      if (!roomList[i].isBooked) {
        printf("Room %d is not currently booked.\n", roomNumber);
      } else {
        strcpy(roomList[i].guestName, guestName);
        strcpy(roomList[i].checkInDate, checkInDate);
        strcpy(roomList[i].checkOutDate, checkOutDate);
        printf("Reservation for room %d has been modified successfully.\n", roomNumber);
      }
      return;
    }
  }
  printf("Room %d does not exist.\n", roomNumber);
}

5. 取消预订

当用户取消预订时,需要将房间信息列表中的预订状态改回未预订状态。例如:

void cancelReservation(int roomNumber) {
  for (int i = 0; i < numberOfRooms; i++) {
    if (roomList[i].roomNumber == roomNumber) {
      if (!roomList[i].isBooked) {
        printf("Room %d is not currently booked.\n", roomNumber);
      } else {
        roomList[i].isBooked = false;
        printf("Reservation for room %d has been cancelled successfully.\n", roomNumber);
      }
      return;
    }
  }
  printf("Room %d does not exist.\n", roomNumber);
}

示例说明

示例1:预订房间

假设用户想要预订房间编号为101的单人间,可以在菜单中选择“预订房间”,输入房间号101,程序会自动检查该房间的预订状态。如果已经被预订,则提示用户该房间已经被预订,无法预订;否则,将该房间的预订状态改为已预订。

选择菜单:
1. 预订房间
2. 取消预订
3. 修改预订信息
4. 查看所有房间信息
5. 按价格排序查看所有房间信息
6. 按房型排序查看所有房间信息
请输入数字选择菜单:1
输入欲预订的房间号:101
Room 101 has been booked successfully.

示例2:查看所有房间信息

假设用户想要查看酒店的所有房间信息,可以在菜单中选择“查看所有房间信息”。系统会输出酒店的所有房间信息,包括房间号、类型、价格和预订状态。

选择菜单:
1. 预订房间
2. 取消预订
3. 修改预订信息
4. 查看所有房间信息
5. 按价格排序查看所有房间信息
6. 按房型排序查看所有房间信息
请输入数字选择菜单:4
Room Number: 101
Room Type: Single
Price: 100
This room is currently booked.

Room Number: 102
Room Type: Double
Price: 150
This room is currently available.

Room Number: 103
Room Type: Suite
Price: 200
This room is currently booked.

Room Number: 104
Room Type: Double
Price: 150
This room is currently available.

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现酒店预订管理系统 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Java try-catch-finally异常处理机制详解

    Java try-catch-finally异常处理机制详解 Java是一种面向对象的编程语言,在程序运行中难免会产生异常,如数组下标越界、除数为0等等,Java提供了try-catch-finally异常处理机制来帮助我们解决这些异常。 try-catch-finally语法 try-catch-finally语法的代码块如下所示: try { //可能会…

    C 2023年5月23日
    00
  • 《程序员的自我修养》学习笔记——揭秘源文件到可执行文件的编译过程【第一弹】

    程序代码到可执行程序编译链接过程 预编译 以c++/c 语言为例,预编译阶段的工作有以下几点: 处理所有#define 及条件预编译指令(如 #if,#ifdef…..),并展开所有宏定义。 删除所有注释(“//” ,”/**/”)。 处理 “#include”,将被包含文件插入该预编译指令位置。(整过过程递归进行,因为被包含文件也可能包含其他文件) 添…

    C语言 2023年4月18日
    00
  • 荣耀畅玩8C手机怎么样?荣耀畅玩8C全面评测

    荣耀畅玩8C手机怎么样?荣耀畅玩8C全面评测 前言 荣耀畅玩8C是一款2018年10月上市的入门级智能手机。作为荣耀畅玩系列产品的一员,荣耀畅玩8C主打高性价比,具有充足的配置和不错的性能表现。在这篇文章中,我们将对荣耀畅玩8C进行全面评测,从外观、配置、性能以及其他方面对其进行详细剖析。 外观设计 荣耀畅玩8C采用了6.26英寸的水滴屏,分辨率为1520x…

    C 2023年5月22日
    00
  • VC中控制台程序创建窗口的实例方法

    创建控制台程序的时候,需要手动创建一个窗口的实例,来显示程序的输出信息。下面是创建VC中控制台程序的窗口实例的完整攻略: 首先需要包含Windows API的头文件”Windows.h”,和”CRT”的头文件”Stdio.h”; #include <stdio.h> #include <Windows.h> 在控制台程序中,一般是通过…

    C 2023年5月23日
    00
  • C语言函数封装及变量的作用域

    C语言函数封装及变量的作用域 函数封装 函数封装是指将一段代码打包成函数作为一个单元,使得代码可重用并能提高代码的可读性。在C语言中,可以使用函数的方式实现对代码的封装。 函数的定义与调用 函数的定义分为两步:函数声明和函数实现。 函数声明通常放在头文件中,用于告诉编译器函数的存在,并告知该函数的参数及返回值类型;函数实现则放在源文件中,实现函数的具体功能。…

    C 2023年5月22日
    00
  • 字符串拷贝函数memcpy和strncpy以及snprintf 的性能比较

    首先,我们需要了解三种函数的基本用法和区别: memcpy:用来实现两个内存区域的复制,常用于拷贝字符串。 strncpy:用来将指定长度的源字符串拷贝到目标字符串中,如果长度超出,则后续填充’\0’。 snprintf:类似于sprintf,将格式化的字符串写入指定的缓冲区,可以限制写入的最大字符数以避免缓冲区溢出。 下面我们来比较一下这三个函数的性能。 …

    C 2023年5月22日
    00
  • Java中异常处理之try和catch代码块的使用

    针对“Java中异常处理之try和catch代码块的使用”,这里提供一些完整的攻略和示例: 异常处理的概念 在编写Java程序时,可能会出现一些异常情况,例如:输入的数据格式不正确、文件不存在等。异常指程序运行时发生了一些不易处理的错误情况,这些错误情况常常导致程序无法正常运行,也可能导致程序崩溃。为了保证程序的稳定性,Java提供了异常处理机制,让程序在出…

    C 2023年5月23日
    00
  • C++实现学生成绩管理系统

    C++实现学生成绩管理系统攻略 系统功能介绍 学生成绩管理系统是一个用于管理学生信息和成绩的软件系统。它能够实现以下功能: 添加、删除、修改学生基本信息,如姓名、学号、性别等; 添加、删除、修改学生课程信息,如课程名称、成绩等; 查询学生基本信息和课程信息; 统计每个学生的成绩绩点、课程平均成绩等信息; 实现各种排序和筛选功能等。 实现步骤 1. 设计数据结…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部