写一个c++难度中等的酒店管理系统c++
时间: 2023-06-16 07:02:58 浏览: 100
好的,以下是一个简单的酒店管理系统的C++代码,包括添加客房、预订客房、退房、查询空房等功能。
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 客房类
class Room {
public:
Room(int roomNum, string roomType, double price, bool isBooked)
: mRoomNum(roomNum), mRoomType(roomType), mPrice(price), mIsBooked(isBooked) {}
int getRoomNum() const { return mRoomNum; }
string getRoomType() const { return mRoomType; }
double getPrice() const { return mPrice; }
bool getIsBooked() const { return mIsBooked; }
void setIsBooked(bool isBooked) { mIsBooked = isBooked; }
private:
int mRoomNum;
string mRoomType;
double mPrice;
bool mIsBooked;
};
// 酒店类
class Hotel {
public:
Hotel() {}
// 添加客房
void addRoom(Room room) {
mRooms.push_back(room);
}
// 预订客房
void bookRoom(int roomNum) {
for (auto& room : mRooms) {
if (room.getRoomNum() == roomNum) {
if (room.getIsBooked()) {
cout << "该客房已被预订,请选择其他客房。" << endl;
} else {
room.setIsBooked(true);
cout << "客房预订成功。" << endl;
}
return;
}
}
cout << "没有找到该客房,请重新输入。" << endl;
}
// 退房
void checkout(int roomNum) {
for (auto& room : mRooms) {
if (room.getRoomNum() == roomNum) {
if (!room.getIsBooked()) {
cout << "该客房未被预订,无法退房。" << endl;
} else {
room.setIsBooked(false);
cout << "退房成功。" << endl;
}
return;
}
}
cout << "没有找到该客房,请重新输入。" << endl;
}
// 查询空房
void searchEmptyRooms() const {
cout << "当前空闲客房列表:" << endl;
for (auto& room : mRooms) {
if (!room.getIsBooked()) {
cout << "房间号:" << room.getRoomNum() << ",类型:" << room.getRoomType() << ",价格:" << room.getPrice() << endl;
}
}
}
private:
vector<Room> mRooms;
};
int main() {
Room room1(101, "标准双人间", 300.0, false);
Room room2(102, "豪华双人间", 500.0, false);
Room room3(201, "标准单人间", 200.0, true);
Room room4(202, "商务单人间", 250.0, false);
Hotel hotel;
hotel.addRoom(room1);
hotel.addRoom(room2);
hotel.addRoom(room3);
hotel.addRoom(room4);
int choice;
int roomNum;
while (true) {
cout << "欢迎使用酒店管理系统,请选择操作:" << endl;
cout << "1. 预订客房" << endl;
cout << "2. 退房" << endl;
cout << "3. 查询空房" << endl;
cout << "4. 退出系统" << endl;
cin >> choice;
switch (choice) {
case 1:
cout << "请输入需要预订的客房号:" << endl;
cin >> roomNum;
hotel.bookRoom(roomNum);
break;
case 2:
cout << "请输入需要退房的客房号:" << endl;
cin >> roomNum;
hotel.checkout(roomNum);
break;
case 3:
hotel.searchEmptyRooms();
break;
case 4:
cout << "感谢使用酒店管理系统,再见!" << endl;
return 0;
default:
cout << "无效的选择,请重新输入。" << endl;
break;
}
}
return 0;
}
```