我的第一个小项目

#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; }



【我的第一个小项目】

    推荐阅读