南阳宾馆管理系统

#include<iostream>
#include<string>
#include<fstream>
using namespace std;  
class Customer                                          
{
public:
     string name;
    string ID;
    double money;
    int StayTime;
    Customer(){};
};
class HolterRoom:public Customer                        
{    
public:
    int num;
    double Price;
    string Type;
    HolterRoom()
    {
        num=0;
        Price=0;
        money=0;
        StayTime=0;
        Type="null";
        name="无";
        ID="0";
    }
    ~HolterRoom(){}
};
ofstream Str("Room.txt",ios_base::trunc);
ofstream C("Room.txt",ios_base::trunc);
void menu();
void set_HolterRoom_info(HolterRoom *Room);                            //1.客房信息录入
void add_HolterRoom_info(HolterRoom *Room);                            //  添加客房信息
void Save_HolterRoom_info(HolterRoom *Room);                           //  保存客房信息
void set_Customer_info(HolterRoom *Room);                              //2.客人入住登记
void Save_Customer_info(HolterRoom *Room);                             //  保存客人信息
void Change_HolterRoom_info(HolterRoom *Room);                         //3.客人信息修改
void SetCount(HolterRoom *Room);                                       //4.客人退房结算
void PrintAll(HolterRoom *Room);                                       //5.查询所有客房信息
void Find_choose(HolterRoom *Room);                                    //6.查询选择界面
void find_HolterRoomByNum(HolterRoom *Room);                           //  通过房间号查找
void find_HolterRoomByName(HolterRoom *Room);                          //  通过姓  名查找    
void find_HolterRoomByType(HolterRoom *Room);                          //  通过姓  名查找   
void Delete_HolterRoom(HolterRoom *Room);                              //7.删除客房信息
void Display_HolterRoom_info(HolterRoom *Room);
void Wirte(HolterRoom *Room);
void Read(HolterRoom *Room);

void Save_HolterRoom_info(HolterRoom *Room)                             //  保存客房信息    
{
    for(int i=0;i<30;i++)
    {
        if(Room[i].num!=0)
        {
            Str<<"房间号码:"<<Room[i].num<<endl;
            Str<<"房间类型:"<<Room[i].Type<<endl;
            Str<<"房间价格:"<<Room[i].Price<<endl;
        }
    }
}  
void Save_Customer_info(HolterRoom *Room)                                   
{
    for(int i=0;i<30;i++)
    {
        if(Room[i].num!=0&&Room[i].name!="无")
        {
            C<<"房间类型:"<<Room[i].Type<<endl;
            C<<"房间价格:"<<Room[i].Price<<endl;
            C<<"客户身份证号码:"<<Room[i].ID<<endl;
            C<<"客户姓名:"<<Room[i].name<<endl;
            C<<"定金:"<<Room[i].money<<endl;
            C<<"入住天数:"<<Room[i].StayTime<<"天"<<endl;
        }
    }
}
void Display_HolterRoom_info(HolterRoom *Room)
{
    int t=0;
    for(int i=0;i<30;i++)
    {
        if(Room[i].StayTime==0&&Room[i].num!=0)
        {
            cout<<"房间号码:"<<Room[i].num<<endl;
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            t++;
        }
        else if(t==0&&i==29)
            cout<<"暂无空房!"<<endl;
    }
}
void set_HolterRoom_info(HolterRoom *Room)                             //1.客房信息录入
{
    if(Room[0].num==0)
    {
        int size;
        cout<<"暂无房间信息,请添加!\n";
        int Number=101;
        cout<<"请输入要添加的房间数目:";
        cin>>size;
        for(int i=0;i<size;i++)
        {
            Room[i].num=Number++;
            cout<<"\n房间号码:"<<Room[i].num;
            cout<<"\n房间类型:";
            cin>>Room[i].Type;
            cout<<"房间价格:";
            cin>>Room[i].Price;
            cout<<endl<<endl;
        }
        cout<<"客房信息录入成功!\n";
    }
    else
    {
        string P;
        cout<<"客房信息已有;\n";
        cout<<"是否要添加客房信息[Y(是)/N(否)]???"<<endl;
        cin>>P;
        if(P=="Y")
            add_HolterRoom_info(Room);
        else if(P=="N")
            cout<<"添加客房信息已取消!\n";
        else
            cout<<"输入错误!\n";
    }
    system("pause");
    system("cls");
}
void add_HolterRoom_info(HolterRoom *Room)                             //添加客房信息
{
    int Number=101;
    string P;
    do
    {
        for(int i=0;i<30;i++)
        {
            if(Room[i].num==0)
            {
                Room[i].num=Number++;
                cout<<"房间号码:"<<Room[i].num;
                cout<<"\n房间类型:";cin>>Room[i].Type;
                cout<<"\n房间价格:";cin>>Room[i].Price;
                cout<<"\n\n房间添加成功,是否继续添加?(Y/N):::";
                cin>>P;break;
            }
            else
                Number++;
        }
    }while(P=="Y");
    if(P=="N")
    {
        cout<<"\n已取消添加.\n";
    }
    else
        cout<<"\n输入有误!请重新输入.\n";
}
void set_Customer_info(HolterRoom *Room)                               //2.客人入住登记
{
    int Num;
    int t;
    cout<<"输入房间号码:";
    cin>>Num;
    for(int i=0;i<30;i++)
    {
        if((Num==Room[i].num)&&(Room[i].StayTime==0))
        {
            cout<<endl;
            cout<<"房间已找到!\n";
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"请输入客户信息:\n";
            cout<<"是否要订房?(Y/N)\n";
            string p;
            cin>>p;
            if(p=="Y")
            {
                cout<<"客户身份证号码:";
                cin>>Room[i].ID;
                cout<<"客户姓名:";
                cin>>Room[i].name;
                cout<<"定金:";
                cin>>Room[i].money;
                cout<<"入住天数:";
                cin>>Room[i].StayTime;
                cout<<"天"<<endl;
                cout<<"信息录入成功!"<<endl;
            }
            else if(p=="N")
                cout<<"订房取消!\n";
            else
                cout<<"输入错误!"<<endl;
                t++;
        }
        else if(Num==Room[i].num&&Room[i].StayTime!=0)
        {
            cout<<"此房间已住"<<endl;
            t++;
        }
        else if(t==0&&i==29)
          cout<<"查无此房!"<<endl;
    }
    system("pause");
    system("cls");
}
void Change_HolterRoom_info(HolterRoom *Room)                             //3.客人信息修改
{
    int Num;
    cout<<"请输入要修改的房间号码:";
    cin>>Num;
    string _name;
    string _ID;
    int _money;
    int _StayTime;
    string _Price;
    string _Type;
    int t=0;
    for(int i=0;i<30;i++)
    {
        if(Num==Room[i].num)
        {
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            cout<<"客户姓名:"<<Room[i].name<<endl;
            cout<<"客户身份证号码:"<<Room[i].ID<<endl;
            cout<<"定金:"<<Room[i].money<<endl;
            cout<<"将于"<<Room[i].StayTime<<"天后退房"<<endl;
            cout<<"房间已找到!\n";
            cout<<"是否修改房间信息?(Y/N)"<<endl;
            string p;
            cin>>p;
            if(p=="Y")
            {
                cout<<"客户姓名:";   cin>>_name; Room[i].name=_name;
                cout<<"客户身份证号码:";cin>>_ID ;Room[i].ID=_ID;
                cout<<"定金:";cin>>_money;Room[i].money=_money;
                cout<<"退房时间将延长至:";cin>>_StayTime;cout<<"天后"<<endl;
                Room[i].StayTime=_StayTime;
                Save_Customer_info(Room);
                cout<<"修改成功!"<<endl;
            }
            else if(p=="N")
                cout<<"已取消修改!"<<endl;
            else
                cout<<"输入有误!"<<endl;
            t++;
        }
        else if(t==0&&i==29&&Room[i].Type=="null")
            cout<<"查无此房!"<<endl;
    }
    system("pause");
    system("cls");
}

void SetCount(HolterRoom *Room)                                          //4.客人退房结算
{
    int Num;
    int t=0;
    cout<<"请输入房间号码:";
    cin>>Num;
    for(int i=0;i<30;i++)
    {
        if(Num=Room[i].num&&Room[i].StayTime!=0)
        {
            string B;
            cout<<"房间已找到!"<<endl;
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            cout<<"客户信息:::"<<endl;
            cout<<"客户身份证号码:"<<Room[i].ID<<endl;
            cout<<"客户姓名:"<<Room[i].name<<endl;
            cout<<"定金:"<<Room[i].money<<endl;
            cout<<"入住天数:"<<Room[i].StayTime<<"天"<<endl;
            cout<<"请确认是否要退房(Y/N):";
            cin>>B;
            if(B=="Y")
            {
                Room[i].ID="0";
                Room[i].name="无";
                Room[i].money=0;
                Room[i].StayTime=0;
                cout<<"退房成功!"<<endl;
            }
            else if(B=="N")
                cout<<"已取消退房!"<<endl;
            else
                cout<<"输入有误!"<<endl;
            t++;
        }
        else if(Num==Room[i].num&&Room[i].StayTime)
        {        
            cout<<"此房为空房!"<<endl;
            t++;
            break;
        }
        else
            cout<<"查无此房!"<<endl;
            break;
    }                              
    system("pause");
    system("cls");
}
void PrintAll(HolterRoom *Room)                                       //5.查询所有客房信息
{
    int t=0;
    for(int i=0;i<30;i++)
    {
        if(Room[i].Type!="null")
        {
            cout<<"房间号码:"<<Room[i].num<<endl;
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            cout<<"客户姓名:"<<Room[i].name<<endl;
            cout<<"客户身份证号码:"<<Room[i].ID<<endl;
            cout<<"客户定金:"<<Room[i].money<<endl;
            cout<<"此客户将于"<<Room[i].StayTime<<"天后退房!\n\n\n"<<endl;
            t++;
        }
        if(t==0&&i==29)
            cout<<"暂无任何客房信息!"<<endl;
    }
    system("pause");
    system("cls");
}
void find_HolterRoomByNum(HolterRoom *Room)                             //  通过房间号查找
{
    int Num;
    int t=0;
    cout<<"输入要查找的房间号码:";
    cin>>Num;
    for(int i=0;i<30;i++)
    {
        if(Num==Room[i].num&&Room[i].StayTime!=0)
        {
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            cout<<"客户身份证号码:"<<Room[i].ID<<endl;
            cout<<"客户姓名:"<<Room[i].name<<endl;
            cout<<"定金:"<<Room[i].money<<endl;
            cout<<"此房已住!\n";
            cout<<"将于"<<Room[i].StayTime<<"天后退房!"<<endl;
            t++;
            break;
        }
        else if(Num==Room[i].num&&Room[i].StayTime==0)
        {
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            cout<<"客户身份证号码:"<<Room[i].ID<<endl;
            cout<<"客户姓名:"<<Room[i].name<<endl;
            cout<<"定金:"<<Room[i].money<<endl;
            t++;
            break;
        }
        else(t==0&&i==29&&Room[i].Type=="null");
        {
            cout<<"查无此房!"<<endl;
             break;
        }
    }
    system("pause");
    system("cls");

}
void find_HolterRoomByName(HolterRoom *Room)                            //  通过姓  名查找
{
    string Name;
    int t=0;
    cout<<"输入要查找的客户姓名:";
    cin>>Name;
    for(int i=0;i<30;i++)
    {
        if(Name==Room[i].name&&Room[i].StayTime!=0)
        {
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            cout<<"客户身份证号码:"<<Room[i].ID<<endl;
            cout<<"客户姓名:"<<Room[i].name<<endl;
            cout<<"定金:"<<Room[i].money<<endl;
            cout<<"此房已住!\n";
            cout<<"将于"<<Room[i].StayTime<<"天后退房!"<<endl;
            t++;
            break;
        }
        else if(Name==Room[i].name&&Room[i].StayTime==0)
        {
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            cout<<"客户身份证号码:"<<Room[i].ID<<endl;
            cout<<"客户姓名:"<<Room[i].name<<endl;
            cout<<"定金:"<<Room[i].money<<endl;
            t++;
            break;
        }
        else(t==0&&i==29);
        {
            cout<<"查不到此客户!"<<endl;
            break;
        }
    }
    system("pause");
    system("cls");
}
void find_HolterRoomByType(HolterRoom *Room)                            //  通过房间类型查找
{
    string type;
    int t=0;
    cout<<"输入要查找的房间类型:";
    cin>>type;
    for(int i=0;i<30;i++)
    {
        if(type==Room[i].Type&&Room[i].StayTime!=0)
        {
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            cout<<"客户身份证号码:"<<Room[i].ID<<endl;
            cout<<"客户姓名:"<<Room[i].name<<endl;
            cout<<"定金:"<<Room[i].money<<endl;
            cout<<"此房已住!\n";
            cout<<"将于"<<Room[i].StayTime<<"天后退房!"<<endl;
            t++;
            break;
        }
        else if(type==Room[i].Type&&Room[i].StayTime==0)
        {
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            cout<<"客户身份证号码:"<<Room[i].ID<<endl;
            cout<<"客户姓名:"<<Room[i].name<<endl;
            cout<<"定金:"<<Room[i].money<<endl;
            t++;
            break;
        }
        else(t==0&&i==29);
        {
            cout<<"暂无此类房间!"<<endl;
            break;
        }
    }
    system("pause");
    system("cls");
}
void Delete_HolterRoom(HolterRoom *Room)                                //7.删除客房信息   
{
    int Num;
    cout<<"请输入房间号码:";
    cin>>Num;
    for(int i=0;i<30;i++)
        if(Room[i].num==Num)
        {
            string B;
            cout<<"房间已经找到:::"<<endl;
            cout<<"房间类型:"<<Room[i].Type<<endl;
            cout<<"房间价格:"<<Room[i].Price<<endl;
            cout<<"客户信息:::"<<endl;
            cout<<"客户身份证号码:"<<Room[i].ID<<endl;
            cout<<"客户姓名:"<<Room[i].name<<endl;
            cout<<"定金:"<<Room[i].money<<endl;
            cout<<"\n请确认要删除此客房信息?(Y/N)";
            cin>>B;
            if(B=="Y")
            {
                Room[i].Type="null";
                Room[i].num=0;
                Room[i].Price=0;
                Room[i].money=0;
                Room[i].StayTime=0;
                Room[i].name="0";
                Room[i].ID="0";
                cout<<"删除成功!"<<endl;
            }
            else if(B=="N")
                cout<<"已取消删除!"<<endl;
            else
                cout<<"输入错误!"<<endl;
        }    
    system("pause");
    system("cls");
}
void Wirte(HolterRoom *Room)
{
    fstream file("Room.txt",ios::out);          //文件以输出方式打开(内存数据输出到文件)
    for(int i=0;i<30;i++)
    {
        if(Room[i].Type!="null")
        {
            file.write((char *)&Room[i],sizeof(Room[i]));
            file.close();
        }
    }
}
void Read(HolterRoom *Room)
{
    int top;
    HolterRoom b;
    top=-1;
    fstream file("Room.txt",ios::in);                     //文件以输入方式打开(文件数据输入到内存)
    while(1)
    {
        file.read((char *)&b,sizeof(b));
        if(!file)
            break;
        top++;
        Room[top]=b;
    }
    file.close();
}
void main()
{
    HolterRoom Room[200];
    Read(Room);
    char ch;
    do
    {
        menu();
        cout<<"请输入将要执行的命令编号:  ";
        cin>>ch;
        switch(ch)
        {
        case '1':
            system("cls");
            set_HolterRoom_info(Room);
            break;
        case '2':
            set_Customer_info(Room);  
            break;
        case '3':
            Change_HolterRoom_info(Room);
            break;
        case '4':
            SetCount(Room);  
            break;
        case '5':
            PrintAll(Room);
            break;
        case '6':
        system("cls");
        Find_choose(Room);
        cout<<"请输入将要执行的命令编号: ";
        cin>>ch;
        switch(ch)
        {
        case '1':
            find_HolterRoomByNum(Room);
            break;
        case '2':
            find_HolterRoomByName(Room);
            break;
        case '3':
            find_HolterRoomByType(Room);
            break;
        case '4':
            system("cls");
            break;
        default:cout<<"您的输入有误!"<<endl;
        }
        break;
        case '7':
            Delete_HolterRoom(Room);
            break;
        case 'q':
            Wirte(Room);
            Save_HolterRoom_info(Room);
             Save_Customer_info(Room);
            break;
        default:cout<<"您的输入有误!"<<endl;
        }
    }while(ch!='q');
    system("pause");
}
void menu()                                             //主菜单函数
{
    cout<<"\t\t   欢迎使用南阳宾馆管理系统  "<<endl;
    cout<<"\t\t-----------------------------"<<endl<<endl;
    cout<<"\t\t\t1.客房信息录入           \n"<<endl;
    cout<<"\t\t\t2.客人入住登记           \n"<<endl;
    cout<<"\t\t\t3.客人信息修改           \n"<<endl;
    cout<<"\t\t\t4.客人退房结算           \n"<<endl;
    cout<<"\t\t\t5.查询所有客房信息       \n"<<endl;
    cout<<"\t\t\t6.查询选择界面               \n"<<endl;
    cout<<"\t\t\t7.删除客房信息           \n"<<endl;
    cout<<"\t\t\tq.退出系统               \n"<<endl;
}
void Find_choose(HolterRoom *Room)                                             
{
    cout<<"\t\t   欢迎使用南阳宾馆管理系统\n"<<endl;
    cout<<"\t\t-----------------------------"<<endl;
    cout<<"\t\t           查询界面          "<<endl;
    cout<<"\t\t-----------------------------"<<endl;
    cout<<"\n\n";
    cout<<"\t\t   1.通过 房间号 查询客房  \n"<<endl;
    cout<<"\t\t   2.通过 姓  名 查询客房  \n"<<endl;
    cout<<"\t\t   3.通过 房间类型 查询客房\n"<<endl;
    cout<<"\t\t   4.返回上一级菜单        \n"<<endl;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值