宾馆客房管理系统(必须用类)
题目描述:设计一个宾馆客房管理系统,以菜单方式工作。
功能需求:
(1) 设计一个房间类Room, 记录的客房信息包括客房号、客房类型、客房价格、空闲情况、客人姓名、客人身份证号、入住时间、退房时间,预付费用等信息。
(2)客房信息的录入功能。
(3) 客人入住登记。
(4)客房信息浏览功能,浏览全部客房的信息。 支持按照空房、姓名、身份证号、 房间号查询。
(5) 客人退房结算。
(6)使用外部文件存储相关数据。
写注释!
要符合提干要求,外部文件
客房管理系统,现写的代码,运行结果如下:(有的截图中没有回车的地方,代码中已经修改了)
代码:
//酒店管理系统
/*
(1) 设计一个房间类Room, 记录的客房信息包括客房号、客房类型、客房价格、空闲情况、客人姓名、客人身份证号、入住时间、退房时间,预付费用等信息。
(2) 客房信息的录入功能。
(3) 客人入住登记。
(4) 客房信息浏览功能,浏览全部客房的信息。 支持按照空房、姓名、身份证号、 房间号查询。
(5) 客人退房结算。
(6) 使用外部文件存储相关数据。
*/
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
//定义客房类型
enum eRomeType
{
e_rome_bj, //标准间
e_rome_dcf, //大床房
e_rome_scf, //双床房
e_rome_hhdcf, //豪华大床房
e_rome_hhscf, //豪华双床房
e_rome_swdcf, //商务大床房
e_rome_zttf //总统套房
};
//定义客房状态
enum eRomeState //在低版本vs中,可以直接写成 enum eRomeState
{
e_state_using, //再用
e_state_preshoping, //已预定(尚未入住)
e_state_free //空闲
};
//定义顾客信息
class Guest
{
private:
string mName; //姓名
string mCard; //身份证号
string mPhoneNmb; //手机号
int mPrePay; //剩余预付费金额
public:
Guest(string name="", string id = "", string phone = "", int prepay = 0)
{
mName = name;
mCard = id;
mPhoneNmb = phone;
mPrePay = prepay;
}
/*getter and setter functions*/
string getName() { return mName; }
string getId() { return mCard; }
string getPhoneNmb() { return mPhoneNmb; }
int getPrePay() { return mPrePay; }
void setName(string name) { mName = name; }
void setId(string id) { mCard = id; }
void setPhoneNmb(string nmb) { mPhoneNmb = nmb; }
void setPrePay(int p) { mPrePay = p; }
/*输入输出运算符重载*/
//friend ostream& operator << (ostream& os, Guest& p);
//friend istream& operator >> (istream& is, Guest& p);
};
//定义日期类
struct MyDate
{
int year, mon, day;
MyDate()
{
year = 0;
mon = 0;
day = 0;
}
};
class Rome
{
private:
string mRomeId; //房间号
eRomeType mRomeType; //客房类型
int mPrice; //房价
eRomeState mRomeState; //客房状态
Guest mGuest; //客户信息
MyDate mStart; //入住日期
MyDate mEnd; //退房日期
public:
Rome()
{
mRomeId = "";
mRomeType = e_rome_bj;
mPrice = 0;
mRomeState = e_state_free;
mStart.year = 0;
mStart.mon = 0;
mStart.day = 0;
mEnd.year = 0;
mEnd.mon = 0;
mEnd.day = 0;
}
Rome(string id, eRomeType type, int price, eRomeState state = e_state_free)
{
mRomeId = id;
mRomeType = type;
mPrice = price;
mRomeState = state;
}
/*getter and setter functions*/
string getRomeId() { return mRomeId; }
eRomeType getRomeType() { return mRomeType; }
int getPrice() { return mPrice; }
eRomeState getRomeState() { return mRomeState; }
Guest getGuest() { return mGuest; }
MyDate getStartDate() { return mStart; }
MyDate getEndDate() { return mEnd; }
void setRomeId(string id) { mRomeId = id; }
void setRomeType(eRomeType t) { mRomeType = t; }
void setRomePrice(int p) { mPrice = p; }
void setRomeState(eRomeState s) { mRomeState = s; }
void setGuest(Guest g) { mGuest = g; }
void setStartDate(MyDate d) { mStart = d; }
void setEndDate(MyDate d) { mEnd = d; }
/*输入输出运算符重载*/
friend ostream& operator << (ostream& os, Rome& p);
friend istream& operator >> (istream& is, Rome& p);
};
ostream& operator << (ostream& os, Rome& p)
{
os << p.mRomeId << " ";
switch (p.mRomeType)
{
case e_rome_bj:
os << "1 "; break;
case e_rome_dcf:
os << "2 "; break;
case e_rome_scf: //双床房
os << "3 "; break;
case e_rome_hhdcf: //豪华大床房
os << "4 "; break;
case e_rome_hhscf: //豪华双床房
os << "5 "; break;
case e_rome_swdcf: //商务大床房
os << "6 "; break;
case e_rome_zttf: //总统套房
os << "7 "; break;
}
os << p.mPrice << " ";
switch (p.mRomeState)
{
case e_state_using:
os << "1 "; break;
case e_state_preshoping:
os << "2 "; break;
case e_state_free:
os << "3 "; break;
}
if (p.mRomeState == e_state_using)
os << p.mGuest.getName() << " " << p.mGuest.getId() << " " << p.mGuest.getPhoneNmb() << " " << p.mGuest.getPrePay() << " ";
else
os << "0 0 0 0 ";
os << p.mStart.year<<"-" << p.mStart.mon<<"-" << p.mStart.day << " ";
os << p.mEnd.year << "-" << p.mEnd.mon << "-" << p.mEnd.day << endl;
return os;
}
istream& operator >> (istream& is, Rome& p)
{
int tmp;
char ch;
string str;
is >> p.mRomeId;
is >> tmp;
switch (tmp)
{
case 1:
p.mRomeType = e_rome_bj;
break;
case 2:
p.mRomeType = e_rome_dcf;
break;
case 3:
p.mRomeType = e_rome_scf; //双床房
break;
case 4:
p.mRomeType = e_rome_hhdcf; //豪华大床房
break;
case 5:
p.mRomeType = e_rome_hhscf; //豪华双床房
break;
case 6:
p.mRomeType = e_rome_swdcf; //商务大床房
break;
case 7:
p.mRomeType = e_rome_zttf; //总统套房
break;
}
is >> p.mPrice;
is >> tmp;
switch (tmp)
{
case 1:
p.mRomeState = e_state_using;
break;
case 2:
p.mRomeState = e_state_preshoping;
break;
case 3:
p.mRomeState = e_state_free;
break;
}
is >> str;
p.mGuest.setName(str);
is >> str;
p.mGuest.setId(str);
is >> str;
p.mGuest.setPhoneNmb(str);
is >> tmp;
p.mGuest.setPrePay(tmp);
is >> p.mStart.year >> ch >> p.mStart.mon >> ch >> p.mStart.day;
is >> p.mEnd.year >> ch >> p.mEnd.mon >> ch >> p.mEnd.day;
return is;
}
//显示住房信息
void showSingleInfo(Rome p)
{
cout << p.getRomeId() << " ";
switch (p.getRomeType())
{
case e_rome_bj:
cout << "标准间 "; break;
case e_rome_dcf:
cout << "大床房 "; break;
case e_rome_scf: //双床房
cout << "双床房 "; break;
case e_rome_hhdcf: //豪华大床房
cout << "豪华大床房 "; break;
case e_rome_hhscf: //豪华双床房
cout << "豪华双床房 "; break;
case e_rome_swdcf: //商务大床房
cout << "商务大床房 "; break;
case e_rome_zttf: //总统套房
cout << "总统套房 "; break;
}
cout << p.getPrice() << " ";
switch (p.getRomeState())
{
case e_state_using:
cout << "已入住 "; break;
case e_state_preshoping:
cout << "已预定 "; break;
case e_state_free:
cout << "空闲 "; break;
}
if (p.getRomeState() == e_state_using)
{
cout << p.getGuest().getName() << " " << p.getGuest().getId() << " " << p.getGuest().getPhoneNmb() << " " << p.getGuest().getPrePay() << " ";
cout << p.getStartDate().year << "-" << p.getStartDate().mon << "-" << p.getStartDate().day << " ";
cout << p.getEndDate().year << "-" << p.getEndDate().mon << "-" << p.getEndDate().day << endl;
}
else
cout << endl;
}
//录入客房信息
void addRome(Rome romes[], int &n)
{
int flag = 1;
while (1)
{
system("cls");
Rome r;
string str;
cout << "请输入房间号:";
cin >> str;
r.setRomeId(str);
cout << "请选择房间类型:" << endl;
cout << "\t1.标准间\n";
cout << "\t2.大床房\n";
cout << "\t3.双床房\n";
cout << "\t4.豪华大床房\n";
cout << "\t5.豪华双床房\n";
cout << "\t6.商务大床房\n";
cout << "\t7.总统套房\n";
int type;
cin >> type;
switch (type)
{
case 1: r.setRomeType(e_rome_bj); break;
case 2: r.setRomeType(e_rome_dcf); break;
case 3: r.setRomeType(e_rome_scf); break;
case 4: r.setRomeType(e_rome_hhdcf); break;
case 5: r.setRomeType(e_rome_hhscf); break;
case 6: r.setRomeType(e_rome_swdcf); break;
case 7: r.setRomeType(e_rome_zttf); break;
}
int price;
cout << "请输入价格:";
cin >> price;
r.setRomePrice(price);
romes[n] = r;
n++;
cout << "添加成功,是否继续添加(1.继续 2.结束):";
cin >> flag;
if (flag == 2)
break;
}
system("pause");
}
//入住
void homeIn(Rome romes[], int n)
{
system("cls");
while (1)
{
cout << "请输入入住房间类型:\n";
int type;
cout << "\t1.标准间\n";
cout << "\t2.大床房\n";
cout << "\t3.双床房\n";
cout << "\t4.豪华大床房\n";
cout << "\t5.豪华双床房\n";
cout << "\t6.商务大床房\n";
cout << "\t7.总统套房\n";
eRomeType e = e_rome_bj;
while (1)
{
cin >> type;
if (type >= 1 && type <= 7)
break;
else
cout << "请输入1-7之间的数字:";
}
switch (type)
{
case 1: e = e_rome_bj; break;
case 2: e = e_rome_dcf; break;
case 3: e = e_rome_scf; break;
case 4: e = e_rome_hhdcf; break;
case 5: e = e_rome_hhscf; break;
case 6: e = e_rome_swdcf; break;
case 7: e = e_rome_zttf; break;
}
//查找符合条件的房间
int flag = 0;
for (int i = 0; i < n; i++)
{
if (romes[i].getRomeState() == e_state_free && romes[i].getRomeType() == e)
{
cout << romes[i].getRomeId() << " " << romes[i].getPrice() << endl;
flag = 1;
}
}
if (flag == 0)
{
cout << "目前没有该类型的房间,请重新选择\n";
continue;
}
else
{
string romeid;
cout << "请输入房间号:";
cin >> romeid;
for (int i = 0; i < n; i++)
{
if (romes[i].getRomeId().compare(romeid) == 0)
{
string name, id, phone;
int prepay;
cout << "请输入用户名:";
cin >> name;
cout << "请输入身份证号:";
cin >> id;
cout << "请输入手机号:";
cin >> phone;
cout << "请输入预付金额:";
cin >> prepay;
Guest g(name, id, phone, prepay);
romes[i].setGuest(g);
romes[i].setRomeState( e_state_using);
cout << "请输入入住日期:";
MyDate start, end;
cin >> start.year >> start.mon >> start.day;
cout << "请输入退房日期:";
cin >> end.year >> end.mon >> end.day;
romes[i].setStartDate(start);
romes[i].setEndDate(end);
cout << "入住办理成功\n";
system("pause");
return;
}
}
}
}
}
// 查询
void Search(Rome romes[], int n)
{
int op;
int type;
int i;
eRomeType e;
string str;
while (1)
{
system("cls");
cout << "1.显示所有客房信息\n";
cout << "2.按照客房类型查询\n";
cout << "3.显示所有空闲客房\n";
cout << "4.根据用户名查询\n";
cout << "5.根据房间号查询\n";
cout << "6.根据身份证号查询\n";
cout << "0.结束查询\n";
cin >> op;
switch (op)
{
case 0:
return;
case 1:
for (i = 0; i < n; i++)
showSingleInfo(romes[i]);
break;
case 2:
cout << "请选择房间类型:\n";
cout << "\t1.标准间\n";
cout << "\t2.大床房\n";
cout << "\t3.双床房\n";
cout << "\t4.豪华大床房\n";
cout << "\t5.豪华双床房\n";
cout << "\t6.商务大床房\n";
cout << "\t7.总统套房\n";
while (1)
{
cin >> type;
if (type >= 1 && type <= 7)
break;
else
cout << "请输入1-7之间的数字:";
}
switch (type)
{
case 1: e = e_rome_bj; break;
case 2: e = e_rome_dcf; break;
case 3: e = e_rome_scf; break;
case 4: e = e_rome_hhdcf; break;
case 5: e = e_rome_hhscf; break;
case 6: e = e_rome_swdcf; break;
case 7: e = e_rome_zttf; break;
}
for (i = 0; i < n; i++)
{
if (romes[i].getRomeType() == e)
cout << romes[i];
}
break;
case 3:
for (i = 0; i < n; i++)
{
if (romes[i].getRomeState() == e_state_free)
showSingleInfo(romes[i]);
}
break;
case 4:
cout << "请输入用户名:";
cin >> str;
for (i = 0; i < n; i++)
{
if (romes[i].getGuest().getName().compare(str) == 0)
showSingleInfo(romes[i]);
}
break;
case 5:
cout << "请输入房间号:";
cin >> str;
for (i = 0; i < n; i++)
{
if (romes[i].getRomeId().compare(str) == 0)
showSingleInfo(romes[i]);
}
break;
case 6:
cout << "请输入身份证号:";
cin >> str;
for (i = 0; i < n; i++)
{
if (romes[i].getGuest().getId().compare(str) == 0)
showSingleInfo(romes[i]);
}
break;
}
system("pause");
}
}
//退房结算
void Tuifang(Rome romes[], int n)
{
string romeid;
int i = 0;
system("cls");
cout << "请输入房间号:";
cin >> romeid;
for ( i = 0; i < n; i++)
{
if (romes[i].getRomeId().compare(romeid) == 0 )
{
if (romes[i].getRomeState() != e_state_using)
{
cout << "此房间尚未有客人入住" << endl;
break;
}
//居住天数(为了简便,这里让用户输入吧,否则计算比较麻烦)
int days = 1;
cout << "请输入实际居住天数:";
cin >> days;
int p, pre;
p = romes[i].getPrice();
pre = romes[i].getGuest().getPrePay();
cout << "房间价格:" << p << endl;
cout << "房客预付:" << pre << endl;
if (pre > p*days)
cout << "找零:" << pre - p << endl;
else if (pre == p*days)
cout << "预付刚好" << endl;
else
cout << "房客仍需支付" << p*days - pre << endl;
//设置客房状态
romes[i].setRomeState(e_state_free);
cout << "退房成功!" << endl;
break;
}
}
if (i == n)
cout << "查无此房" << endl;
system("pause");
}
//保存文件
void SaveFile(Rome romes[], int n)
{
ofstream os;
os.open("./Hotel.txt", ios::out);
for (int i = 0; i < n; i++)
os << romes[i];
os.close();
cout << "保存成功\n";
system("pause");
}
int main()
{
int op;
int romNmb = 0;
Rome romes[100];
int flag = 1;
while (1)
{
system("cls");
cout << "1.录入客房信息" << endl;
cout << "2.客人入住" << endl;
cout << "3.查询" << endl;
cout << "4.退房结算" << endl;
cout << "5.保存到文件" << endl;
cout << "0.退出系统" << endl;
cin >> op;
switch (op)
{
case 0: return 0;
case 1: addRome(romes, romNmb); break;
case 2: homeIn(romes, romNmb); break;
case 3: Search(romes, romNmb); break;
case 4: Tuifang(romes, romNmb); break;
case 5: SaveFile(romes,romNmb); break;
}
}
return 0;
}
作业,急
你运行一下,外部存储
#include<iostream>
#include<fstream>
#include<string>
#include<iomanip>
#include<windows.h>
#include<conio.h>
#define Max 100
using namespace std;
class Data//日期类,记录交易时间
{
public:
Data(){}//缺省构造函数
~Data(){}//析构函数
void SetDate(int year,int month,int day)//接收输入的日期
{
this->year=year;
this->month=month;
this->day=day;
}
int getyear(){
return year;
}
int getmonth(){
return month;
}
int getday(){
return day;
}
private:
int year;
int month;
int day;
};
class Room
{
public:
Room *r[Max];//房间对象指针数组
int Room_count; //记录房间数量
Room(int Number,string Type,double Price,string Whether)//构造函数
{
this->Number=Number;
this->Type=Type;
this->Whether=Whether;
this->Price=Price;
}
int InputNumber() {return Number;}
string InputType(){return Type;}
string InputWhether(){return Whether;}
double InputPrice(){return Price;}
void SetWether(string _state) {Whether=_state;}
void show() {cout<<"房号: "<<Number<<"\t"<<"房间类型: "<<Type<<"\t"<<"房间状态: "<<Whether<<"\t"<<"价格: "<<Price<<endl;}
protected:
int Number; //房号
string Type;//类型
string Whether;//是否有客人
double Price;//价格
};
class Guest
{
public:
Guest *g[Max]; //客人对象指针数组
int Guest_count; //记录客人数量
Guest(int number,string Name,int Id,string sex,string Intime,int days) //构造函数
{
this->Name=Name; this->Id=Id; this->sex=sex; this->number=number;
this->Intime=Intime; this->days=days;
}
int InputNumber(){return number;}
string InputName(){return Name;}
string InputSex(){return sex;}
int InputDays(){return days;}
string InputIntime(){return Intime;}
int InputId(){return Id;}
void show()
{
cout<<"顾客姓名: "<<Name<<"\t 身份证号: "<<Id<<"\t性别: "<<sex<<"\t入住时间: "<<Intime<<"\t入住天数: "<<days<<endl;
}
protected:
int number;//房号
string Name;//顾客姓名
int Id;//身份证号
string sex;//性别
string Intime;//入住时间
int days; //入住天数
};
class Manage
{
public:
Guest *g[Max]; //客人对象指针数组
int Guest_count; //记录客人数量
Room *r[Max];//房间对象指针数组
int Room_count; //记录房间数量
/*操作函数*/
void IncreaseRoom();//添加客房信息
void Check_In(); //删除客房信息,办理入住
void Check_Out(); //退房
int Payment();//结账
void Display(int n);//浏览所有信息(1浏览房间,2浏览顾客)
void ReadData(); //从文件中获取房间和顾客的信息
void WriteData(int n);//向文件中写入所有的信息
void WriteRoom(Room *r);//客房信息写入
void WriteGuest(Guest *g);//顾客信息写入
/*查询菜单 */
void SearchMenu();//查询主菜单
void SearchType();//查询所有空房间;
void SearchNumber();//按房间号查询
};
static int i=0;
void Manage::SearchMenu()
{
int n;
system("cls");
cout<<"===================================="<<endl;
cout<<"= 查 询 菜 单 ="<<endl;
cout<<"===================================="<<endl;
cout<<"========= 1、查 询 空 房 ======="<<endl;
cout<<"========= 2、按房间号查询 ======="<<endl;
cout<<"===================================="<<endl;
cout<<endl<<"请选择: ";
cin>>n;
switch(n)
{
case 1:SearchType(); break;
case 2:SearchNumber();break;
}
}
void Manage::IncreaseRoom()//添加房间
{
string type,Whether;
double price;
int number;
cout<<"请输入房号: "; cin>>number;
cout<<"请输入房间类型: "; cin>>type;
cout<<"请输入价格: "; cin>>price;
cout<<"请输入房间状态: "; cin>>Whether;
WriteRoom(new Room(number,type,price,Whether));
}
void Manage::Check_In()//删除房间信息,即入房登记
{
ReadData();
SearchType();
string name,intime,sex,type;
int days,number;
int id;
cout<<"请输入房号: "; cin>>number;
cout<<"请输入顾客的姓名: "; cin>>name;
cout<<"请输入顾客的身份证号: "; cin>>id;
cout<<"请输入顾客的性别: "; cin>>sex;
cout<<"请输入入住日期: "; cin>>intime;
cout<<"请输入入住天数: "; cin>>days;
for(i=0;i<Room_count;i++)
{
if(number==r[i]->InputNumber())
{
WriteGuest(new Guest(number,name,id,sex,intime,days));
r[i]->SetWether("有");
WriteData(1);
cout<<"住房登记成功!"<<endl;
}
}
}
int Manage::Payment()//退房结账
{
ReadData();
Display(2);
int number;
cout<<"请输入房号: "; cin>>number;
for(i=0;i<Guest_count;i++)
{
if(number==g[i]->InputNumber())
{
return i;
}
}
}
void Manage::Check_Out()
{
int x=Payment();
ReadData();
for(i=0;i<Room_count;i++)
{
if(g[x]->InputNumber()==r[i]->InputNumber())
{
r[i]->SetWether("无");
cout<<"退房成功,您一共消费了 "<<g[x]->InputDays() *r[i]->InputPrice()<<" 元"<<endl;
WriteData(1);
}
}
g[x]=NULL;
WriteData(2);
}
void Manage::Display(int n)//浏览所有房间信息
{
ReadData();
switch(n){
case 1:
for(i=0; i<Room_count-1; i++)
{
cout<<"房号:"<<r[i]->InputNumber()<<"\t房间类型: "<<r[i]->InputType()<<"\t房间价格: "<<r[i]->InputPrice()<<"\t房间状态: "<<r[i]->InputWhether()<<endl<<endl;
} break;
case 2:
for(i=0;i<Guest_count-1;i++)
{
cout<<"房间号: "<<g[i]->InputNumber()<<"\t顾客姓名: "<<g[i]->InputName()<<"\t身份证号: "<<g[i]->InputId()<<"\t顾客性别:"<<g[i]->InputSex()<<"\t入住时间: "<<g[i]->InputIntime()<<"\t入住天数: "<<g[i]->InputDays()<<endl<<endl;
} break;
}
}
void Manage::ReadData()
{
fstream Rin,Gin;
Rin.open("room.txt",ios::in);//打开文件
if(!Rin)
{
cout<<"未找到room文件,请先建立文件!"<<endl;
return;
}
Room_count=0;
while(!Rin.eof()){
string type,Whether;
double price;
int number;
Rin>>number>>type>>price>>Whether;
r[Room_count++]=new Room(number,type,price,Whether);
}
Rin.close();//关闭文件
Gin.open("guest.txt",ios::in);
if(!Gin)
{
cout<<"未找到guest文件,请先建立文件!"<<endl;
return;
}
Guest_count=0;
while(!Gin.eof()){
string name,intime,sex;
int days,number;
int id;
Gin>>number>>name>>id>>sex>>intime>>days;
g[Guest_count++]=new Guest(number,name,id,sex,intime,days);
}
Gin.close();
}
void Manage::WriteData(int n)
{
switch(n)
{
case 1:
{
ofstream Rout("room.txt",ios::trunc); //用二进制的方法打开顾客文件 ,覆盖掉之前的所有信息重新写入
for(i=0; i<Room_count-1; i++) //根据顾客数量判断输入几组信息
{
if(r[i]!=NULL)
{
WriteRoom(r[i]);//调用构造函数来创建顾客信息
}
}
Rout.close(); break;}
case 2:{
ofstream Gout("guest.txt",ios::trunc); //用二进制的方法打开顾客文件 ,覆盖掉之前的所有信息重新写入
for(i=0; i<Guest_count-1; i++) //根据顾客数量判断输入几组信息
{
if(g[i]!=NULL)
{
WriteGuest(g[i]);//调用构造函数来创建顾客信息
}
}
Gout.close();break;}
}
}
void Manage::WriteRoom(Room *r)//储存单个信息
{
ofstream Rout("room.txt",ios::app);//打开房间文件,追加读写,不会覆盖掉之前的所有信息
Rout<<r->InputNumber()<<"\t"<<r->InputType()<<"\t"<<r->InputPrice()<<"\t"<<r->InputWhether()<<endl;
Rout.close();
}
void Manage::WriteGuest(Guest *g)//储存单个信息
{
ofstream Gout("guest.txt",ios::app);//打开顾客文件,追加读写,不会覆盖掉之前的所有信息
Gout<<g->InputNumber()<<"\t"<<g->InputName()<<"\t"<<g->InputId()<<"\t"<<g->InputSex()<<"\t"<<g->InputIntime()<<"\t"<<g->InputDays()<<endl;
Gout.close();
}
void Manage::SearchType()
{
ReadData();
for(i=0;i<Room_count;i++)
{
if(r[i]->InputWhether()=="无")
{
r[i]->show();}
}
}
void Manage::SearchNumber()
{
ReadData();
int number,n;
cout<<"请输出要查询的房间号: "; cin>>number;
for(i=0;i<Room_count-1;i++)
{
if(number==r[i]->InputNumber())
r[i]->show();
}
for(i=0;i<Guest_count-1;i++)
{
if(g[i]->InputNumber()==number)
g[i]->show();
}
}
int main()
{
Manage M;
int n;
while(1)
{
system("cls");
cout<<endl<<endl<<endl<<"\t\t\t宾 馆 房 间 管 理 系 统 "<<endl<<endl;
cout<<"\t\t\t1、房 间 信 息 的 录 入"<<endl<<endl;
cout<<"\t\t\t2、顾 客 入 住 房 间 登 记"<<endl<<endl;
cout<<"\t\t\t3、顾 客 退 房 结 账"<<endl<<endl;
cout<<"\t\t\t4、所 有 房 间 信 息 显 示"<<endl<<endl;
cout<<"\t\t\t5、所 有 顾 客 的 显 示"<<endl<<endl;
cout<<"\t\t\t6、查 询 所 有 空 房 间"<<endl<<endl;
cout<<"\t\t\t7、查 询 指 定 的 房 间 号"<<endl<<endl;
cout<<"\t\t\t8、退 出 系 统"<<endl<<endl;
cout<<endl<<"请选择: ";
cin>>n;
cout<<endl<<endl;
switch(n)
{
case 1:M.IncreaseRoom();getch();break;
case 2:M.Check_In();getch();break;
case 3:M.Check_Out();getch();break;
case 4:M.Display(1);getch();break;
case 5:M.Display(2);getch();break;
case 6: M.SearchType();getch();break;
case 7: M.SearchNumber();getch();break;
case 8:exit(0);
}
}
return 0;
}
项目做好了没