酒店信息管理系统C++程序设计
时间: 2023-10-12 18:05:11 浏览: 65
酒店信息管理系统通常包括以下功能:
1. 客房管理:包括客房信息录入、客房信息查询、客房状态管理等。
2. 订单管理:包括订单录入、订单查询、订单修改、订单删除等。
3. 客户管理:包括客户信息录入、客户信息查询、客户信息修改、客户信息删除等。
4. 账务管理:包括结算管理、账单查询等。
下面是一个简单的酒店信息管理系统的C++程序设计,其中使用了面向对象的思想。
```c++
#include<iostream>
#include<cstring>
using namespace std;
class Room{ //客房类
private:
int roomNum; //客房号
char roomType[10]; //客房类型
double roomPrice; //客房价格
bool roomStatus; //客房状态(true表示已被预定,false表示未被预定)
public:
Room(int num, char* type, double price, bool status=false){ //构造函数
roomNum=num;
strcpy(roomType,type);
roomPrice=price;
roomStatus=status;
}
int getRoomNum(){ //获取客房号
return roomNum;
}
char* getRoomType(){ //获取客房类型
return roomType;
}
double getRoomPrice(){ //获取客房价格
return roomPrice;
}
bool getRoomStatus(){ //获取客房状态
return roomStatus;
}
void setRoomStatus(bool status){ //设置客房状态
roomStatus=status;
}
};
class Order{ //订单类
private:
int orderNum; //订单号
int roomNum; //客房号
char customerName[20]; //顾客姓名
char customerPhone[20]; //顾客电话
int days; //入住天数
double totalPrice; //订单总价
public:
Order(int num, int room, char* name, char* phone, int d, double price){ //构造函数
orderNum=num;
roomNum=room;
strcpy(customerName,name);
strcpy(customerPhone,phone);
days=d;
totalPrice=price;
}
int getOrderNum(){ //获取订单号
return orderNum;
}
int getRoomNum(){ //获取客房号
return roomNum;
}
char* getCustomerName(){ //获取顾客姓名
return customerName;
}
char* getCustomerPhone(){ //获取顾客电话
return customerPhone;
}
int getDays(){ //获取入住天数
return days;
}
double getTotalPrice(){ //获取订单总价
return totalPrice;
}
};
class Hotel{ //酒店类
private:
Room rooms[50]; //客房数组
int roomCount; //客房数目
Order orders[100]; //订单数组
int orderCount; //订单数目
public:
Hotel(){ //构造函数
roomCount=50;
orderCount=0;
for(int i=0;i<50;i++){ //初始化客房数组
char type[10];
if(i<10)strcpy(type,"单人间");
else if(i<30)strcpy(type,"标准间");
else strcpy(type,"豪华间");
double price=0;
if(i<10)price=200;
else if(i<30)price=300;
else price=500;
Room room(i+1,type,price);
rooms[i]=room;
}
}
void showRoomList(){ //显示客房列表
cout<<"客房号\t类型\t价格\t状态"<<endl;
for(int i=0;i<50;i++){
cout<<rooms[i].getRoomNum()<<"\t"<<rooms[i].getRoomType()<<"\t"<<rooms[i].getRoomPrice()<<"\t";
if(rooms[i].getRoomStatus())cout<<"已预定"<<endl;
else cout<<"未预定"<<endl;
}
}
void searchRooms(char* type){ //按类型查找客房
cout<<"客房号\t类型\t价格\t状态"<<endl;
for(int i=0;i<50;i++){
if(strcmp(rooms[i].getRoomType(),type)==0){
cout<<rooms[i].getRoomNum()<<"\t"<<rooms[i].getRoomType()<<"\t"<<rooms[i].getRoomPrice()<<"\t";
if(rooms[i].getRoomStatus())cout<<"已预定"<<endl;
else cout<<"未预定"<<endl;
}
}
}
void bookRoom(int roomNum, char* name, char* phone, int days){ //预定客房
Order order(orderCount+1,roomNum,name,phone,days,rooms[roomNum-1].getRoomPrice()*days);
orders[orderCount]=order;
rooms[roomNum-1].setRoomStatus(true);
orderCount++;
cout<<"预定成功!"<<endl;
}
void showOrderList(){ //显示订单列表
cout<<"订单号\t客房号\t顾客姓名\t顾客电话\t入住天数\t订单总价"<<endl;
for(int i=0;i<orderCount;i++){
cout<<orders[i].getOrderNum()<<"\t"<<orders[i].getRoomNum()<<"\t"<<orders[i].getCustomerName()<<"\t"<<orders[i].getCustomerPhone()<<"\t"<<orders[i].getDays()<<"\t"<<orders[i].getTotalPrice()<<endl;
}
}
void checkout(int orderNum){ //结算
for(int i=0;i<orderCount;i++){
if(orders[i].getOrderNum()==orderNum){
int roomNum=orders[i].getRoomNum();
double totalPrice=orders[i].getTotalPrice();
orders[i]=orders[orderCount-1];
orderCount--;
rooms[roomNum-1].setRoomStatus(false);
cout<<"结算成功,房费为"<<totalPrice<<"元。"<<endl;
return;
}
}
cout<<"该订单不存在!"<<endl;
}
};
int main(){
Hotel hotel;
int choice;
while(true){
cout<<"欢迎使用酒店信息管理系统!"<<endl;
cout<<"1.查看客房列表"<<endl;
cout<<"2.按类型查找客房"<<endl;
cout<<"3.预定客房"<<endl;
cout<<"4.显示订单列表"<<endl;
cout<<"5.结算"<<endl;
cout<<"6.退出系统"<<endl;
cout<<"请选择操作:";
cin>>choice;
switch(choice){
case 1:{
hotel.showRoomList();
break;
}
case 2:{
char type[10];
cout<<"请输入客房类型:";
cin>>type;
hotel.searchRooms(type);
break;
}
case 3:{
int roomNum,days;
char name[20],phone[20];
cout<<"请输入客房号:";
cin>>roomNum;
cout<<"请输入顾客姓名:";
cin>>name;
cout<<"请输入顾客电话:";
cin>>phone;
cout<<"请输入入住天数:";
cin>>days;
hotel.bookRoom(roomNum,name,phone,days);
break;
}
case 4:{
hotel.showOrderList();
break;
}
case 5:{
int orderNum;
cout<<"请输入订单号:";
cin>>orderNum;
hotel.checkout(orderNum);
break;
}
case 6:{
cout<<"感谢使用本系统!"<<endl;
return 0;
}
default:{
cout<<"输入有误,请重新输入!"<<endl;
break;
}
}
}
return 0;
}
```
以上程序仅供参考,实际应用中需要根据具体需求进行修改和完善。