我的第一个小项目

#ifdef    HOTEL_H

#define    HOTEL_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;}          //返回城市名字

        int  num(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;}        //自动编号                

        int  rehotelNo(){return hotelNo;}       //返回酒店编号

        int  restrct(){return strct;}           //返回酒店类型

        int  restrnum(){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();                            //定单输出        

        int  num(int number){No=number;}            //自动编号                

        int  rehotelNo(){return hotelNo;}            //返回酒店编号

        int  restrct(){return strct;}                //返回酒店类型

        int  restrnum(){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;}         //返回城市名字

        int  num(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;}           //自动编号                

        int  rehotelNo(){return hotelNo;}          //返回酒店编号

        int  restrct(){return strct;}              //返回酒店类型

        int  restrnum(){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()

{



    list  hot;

    

    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 <<"您输入的不正确请重新输入"<   hot;

    list  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 <<"您输入的不正确请重新输入"<   hot;

    list  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;i::iterator li_hot=hot.begin();

        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 <<"您的输入有误,请重新输入!"< &hot,int &num)        

{                            

    cout <<"本系统现在共有"<>  hotelNo;

        

        if (hotelNo>num)

        {

            cout <<"您输入的酒店编号不存在,请重新输入!"<::iterator map=hot.begin();

        for(int i=1;iturn(strct);

        string hotname=map->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;

}






你可能感兴趣的:(初学)