- 首页 > it技术 > >
#ifdefHOTEL_H#defineHOTEL_H//////int menu();
//菜单选项void add_hotel();
//增加酒店void add_list();
//增加定单void sum_list();
//取消定单void findcty();
//查找城市///class Hotel{private:int No;
//酒店编号string name;
//酒店名称string cty;
//所在城市int total_room;
//总房数int proom;
//普通房数int proom_empty;
//普通空房数double proom_money;
//普通房价int hroom;
//高级房数int hroom_empty;
//高级空房数double hroom_money;
//高级房价public:Hotel();
//初始化对象属性~Hotel();
//析构函数void input();
//输入酒店信息int turn(bool a);
//根据布尔值返回空房间数目void Dingdan(int strct,int strnum);
//来定单时,修改对象基本属性void output();
//输出酒店信息void unDingdan(int strct,int strnum);
//取消单时,修改对象基本属性string turnname(){return name;
}//返回酒店名称string turncty(){return cty;
}//返回城市名字intnum(int number){No=number;
}//生成编号///friend ostream&operator<< (ostream &out,Hotel &hot){out <> (istream &in,Hotel &hot){in>> hot.No >> hot.name >> hot.cty >> hot.total_room >>hot.proom>> hot.proom_empty >> hot.proom_money >>hot.hroom>> hot.hroom_empty >> hot.hroom_money;
return in;
}};
///int loadfile(list &list_hot);
void savefile(list &list_hot);
///class Yuding{private:int No;
//定单编号int hotelNo;
//酒店编号bool strct;
//房间类型int strnum;
//定房数目string name;
//订者姓名string tel;
//联系电话string email;
//email地址public:Yuding();
//构造函数~Yuding();
//析构函数void input(list&,int&);
//定单输入void output();
//定单输出void num(int number){No=number;
}//自动编号intrehotelNo(){return hotelNo;
}//返回酒店编号intrestrct(){return strct;
}//返回酒店类型intrestrnum(){return strnum;
}//返回预定房间数量///friend ostream&operator<< (ostream &out,Yuding &yuding){out <<" "<> (istream &in,Yuding &yuding){in>>yuding.No>>yuding.hotelNo>>yuding.strct>>yuding.name>>yuding.tel>>yuding.email;
return in;
}};
/inline int loadfile(list &list_hot);
inline void savefile(list &list_hot);
/class Yuding{private:int No;
//定单编号int hotelNo;
//酒店编号bool strct;
//房间类型int strnum;
//定房数目string name;
//订者姓名string tel;
//联系电话string email;
//email地址public:Yuding();
//构造函数~Yuding();
//析构函数void input(list &hot,int &num)//定单输入void output();
//定单输出intnum(int number){No=number;
}//自动编号intrehotelNo(){return hotelNo;
}//返回酒店编号intrestrct(){return strct;
}//返回酒店类型intrestrnum(){return strnum;
}//返回预定房间数量friend ostream&operator<< (ostream &out,Yuding &yuding){out <<" "<> (istream &in,Yuding &yuding){in>>yuding.No>>yuding.hotelNo>>yuding.strct>>yuding.name>>yuding.tel>>yuding.email;
return in;
}};
/inline int loadfile(list &list_hot);
inline void savefile(list &list_hot);
#endif/
#include #include #include #include #include using namespace std;
//int menu();
//菜单选项void add_hotel();
//增加酒店void add_list();
//增加定单void sum_list();
//取消定单void findcty();
//查找城市//class Hotel{private:int No;
//酒店编号string name;
//酒店名称string cty;
//所在城市int total_room;
//总房数int proom;
//普通房数int proom_empty;
//普通空房数double proom_money;
//普通房价int hroom;
//高级房数int hroom_empty;
//高级空房数double hroom_money;
//高级房价public:Hotel();
//初始化对象属性~Hotel();
//析构函数void input();
//输入酒店信息int turn(bool a);
//根据布尔值返回空房间数目void Dingdan(int strct,int strnum);
//来定单时,修改对象基本属性void output();
//输出酒店信息void unDingdan(int strct,int strnum);
//取消单时,修改对象基本属性string turnname(){return name;
}//返回酒店名称string turncty(){return cty;
}//返回城市名字intnum(int number){No=number;
}//生成编号/friend ostream&operator<< (ostream &out,Hotel &hot){out <> (istream &in,Hotel &hot){in>> hot.No >> hot.name >> hot.cty >> hot.total_room >>hot.proom>> hot.proom_empty >> hot.proom_money >>hot.hroom>> hot.hroom_empty >> hot.hroom_money;
return in;
}};
///int loadfile(list &list_hot);
void savefile(list &list_hot);
///class Yuding{private:int No;
//定单编号int hotelNo;
//酒店编号bool strct;
//房间类型int strnum;
//定房数目string name;
//订者姓名string tel;
//联系电话string email;
//email地址public:Yuding();
//构造函数~Yuding();
//析构函数void input(list&,int&);
//定单输入void output();
//定单输出void num(int number){No=number;
}//自动编号intrehotelNo(){return hotelNo;
}//返回酒店编号intrestrct(){return strct;
}//返回酒店类型intrestrnum(){return strnum;
}//返回预定房间数量friend ostream&operator<< (ostream &out,Yuding &yuding){out <<" "<> (istream &in,Yuding &yuding){in>>yuding.No>>yuding.hotelNo>>yuding.strct>>yuding.name>>yuding.tel>>yuding.email;
return in;
}};
/inline int loadfile(list &list_hot);
inline void savefile(list &list_hot);
菜单选项///PUTONG///int menu(){const int b=85;
int a;
bool c=0;
while(!c){cout <<"/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n"<< setfill(' ') << setw(100)<< "欢迎使用星光酒店管理系统/n/n"<< setfill(' ') << setw(86)<< "请按Enter继续/n"<< "/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n"<a;
if ((a<1)||(a>5)) {c=0;
}else{c=1;
}}return a;
}///增加酒店void add_hotel(){listhot;
loadfile(hot);
for(list::iterator vec_hot=hot.begin();
vec_hot!=hot.end();
vec_hot++){cout<<*vec_hot;
}bool a=1;
Hotel input;
while(a){input.input();
hot.push_back(input);
bool b=1;
string x;
while(b){cout <<"是否继续输入?(Y/N)ENTER";
cin>>x;
if(x=="y"||x=="Y"){a=1;
b=0;
}else if(x=="n"||x=="N") {a=0;
b=0;
}else{b=1;
cout <<"您输入的不正确请重新输入"<Yud;
num2=loadfile(Yud);
num1=loadfile(hot);
if (num1<1) {cout <<"没有酒店信息,请录入后再使用预定系统"<::iterator li_Yud=Yud.begin();
li_Yud!=Yud.end();
li_Yud++){cout<<*li_Yud;
}bool a=1;
Yuding input;
while(a){input.input(hot,num1);
Yud.push_back(input);
bool b=1;
char x;
while(b){cout <<"是否继续输入?(Y/N)ENTER确认:";
cin>>x;
if(x==*"y"||x==*"Y"){a=1;
b=0;
}else if(x==*"n"||x==*"N") {a=0;
b=0;
}else{b=1;
cout <<"您输入的不正确请重新输入"<Yud;
num2=loadfile(Yud);
num1=loadfile(hot);
if (num2<1) {cout <<"没有预定信息,请录入后再使用取消预定系统"<::iterator li_Yud=Yud.begin();
li_Yud!=Yud.end();
li_Yud++){li_Yud->output();
abdc++;
if (abdc%20==0){cout<<"按任意键继续";
cin.get();
}}cout <<"请输入取消定单的编号"<>number;
if (number>num2){cout<<"你输入的定单编号不存在请重新输入:"<::iterator li_Yud=Yud.begin();
Yuding temp;
for (int i=1;
iunDingdan(temp.restrct(),temp.restrnum());
if (li_Yud!=Yud.end()){Yud.erase(li_Yud);
}else{Yud.pop_back();
}cout <<"是否继续?(y/n)"<>a;
if (a=="y"||a=="Y"){b=1;
}else{b=0;
}savefile(hot);
savefile(Yud);
}}///查找城市void findcty(){int num=0;
list hot;
loadfile(hot);
savefile(hot);
for(list::iterator vec_hot=hot.begin();
vec_hot!=hot.end();
vec_hot++){cout<<*vec_hot;
}bool a=1;
string b;
while(a){cout <<"请输入想要查找的城市"<> b;
for(list::iterator li_hot=hot.begin();
li_hot!=hot.end();
li_hot++){string c=li_hot->turncty();
if(b==c){li_hot->output();
num++;
}}if (num==0){cout <<"没有找到你输入的城市/n"<> b;
if (b=="y"||b=="Y"){a=1;
}else{a=0;
}}}//////读取文件inline int loadfile(list &list_hot){ifstream infile("hot.dat");
int num=1;
if (!infile){cout <<"第一次运行程序吗?如果不是您的数据文件可能丢失!"<> temp){temp.num(num);
list_hot.push_back(temp);
num++;
}infile.close();
infile.clear();
}return num-1;
}///读取文件///inline int loadfile(list &list_hot){ifstream infile("yud.dat");
int num=1;
if (!infile){cout <<"第一次运行程序吗?如果不是您的数据文件可能丢失!"<> temp){temp.num(num);
list_hot.push_back(temp);
num++;
}infile.close();
infile.clear();
}return num-1;
}/写入文件/inline void savefile(list &list_hot){ofstream outfile("hot.dat");
for(list::iterator li_hot=list_hot.begin();
li_hot!=list_hot.end();
li_hot++){outfile<<*li_hot;
}outfile.close();
outfile.clear();
}/写入文件///inline void savefile(list &list_hot){ofstream outfile("yud.dat");
for(list::iterator li_hot=list_hot.begin();
li_hot!=list_hot.end();
li_hot++){outfile<<*li_hot;
}outfile.close();
outfile.clear();
}/构造函数/////CLASSHOTEL/Hotel::Hotel()//初始化对象属性{No=0;
name="NONE";
cty="NONE";
total_room=0;
proom=0;
proom_empty=0;
proom_money=0.00;
hroom=0;
hroom_empty=0;
hroom_money=0.00;
}//析构函数/Hotel::~Hotel(){}/输入酒店信息//void Hotel::input(){bool b=1;
while(b){cout<<"/n请输入酒店名称:";
cin >>name;
cout<<"/n请输入所在城市:";
cin>>cty;
cout<<"/n请输入总房间数:";
cin>>total_room;
cout<<"/n请输入普通房间数:";
cin>>proom;
cout<<"/n请输入普通空房数:";
cin>>proom_empty;
cout<<"/n请输入普通标准房价格:";
cin>>proom_money;
cout<<"/n请输入豪华房间数:";
cin>>hroom;
cout<<"/n请输入空豪华房间数:";
cin>>hroom_empty;
cout<<"请输入豪华房价格:";
cin>>hroom_money;
if (proom>total_room||hroom>total_room||proom+hroom>total_room||proom_empty>proom||hroom_empty>hroom||proom_money>hroom_money){cout <<"您的输入有误,请重新输入!"<>hotelNo;
if (hotelNo>num){cout <<"您输入的酒店编号不存在,请重新输入!"<turnname();
cout<<"欢迎光临您预定"<> strct1;
if (strct1=="y"||strct1=="Y"){strct=false;
}else if(strct1=="n"||strct1=="N"){strct=true;
}else{cout <<"你输入有误请重新输入:"<0)?"空普通客房还有":"空豪华客房还有")<>strnum;
if(strnum>cls){cout <<"哦,你输入的房间数大于此酒店的空房数,请重新输入:/n";
b=1;
break;
}cout<<"请输入预订者姓名:/n";
cin >> name;
cout<<"请输入预订者电话:/n";
cin>>tel;
cout<<"请输入预订者email:/n";
cin>>email;
map->Dingdan(strct,strnum);
b=0;
}}定单输出///void Yuding::output(){cout <
///int main(){int a;
do{a=menu();
switch(a){case 1:add_hotel();
break;
case 2:add_list();
break;
case 3:sum_list();
break;
case 4:findcty();
break;
case 5:a=0;
break;
}}while(a);
return 0;
}
【我的第一个小项目】
推荐阅读