iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++如何实现旅馆住宿管理系统
  • 496
分享到

C++如何实现旅馆住宿管理系统

2023-06-30 17:06:25 496人浏览 安东尼
摘要

本文小编为大家详细介绍“c++如何实现旅馆住宿管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++如何实现旅馆住宿管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一:课程设计要实现的目的1.预定房

本文小编为大家详细介绍“c++如何实现旅馆住宿管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++如何实现旅馆住宿管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一:课程设计要实现的目的
1.预定房间:输入顾客的姓名和身份证号码,然后有单人间/天/100元、双人间/天/200元、标准间/天/300元 三种房间类型可以选择。最后=输入预定天数,从而系统计算出房费与预定的房间号。
2.入住功能:分该顾客已订和未订房间的两种情况。对于已经预定的顾客,通过输入姓名与身份证号码从而入住预定的房间;对于没有预定的顾客,执行入住功能,过程与预定房间类似。
3.退房功能:输入要退房的顾客姓名与身份证号码来查找该顾客,然后输入该顾客实际所住的天数,计算出实际应付的房费与多支付或少支付的费用。
4.查询功能:分为房间信息查询与顾客了信息查询两种查询方式。
   房间信息查询可以显示出空房间、已预定房间和已入住房间的房间号和房间数量。
   顾客信息查询分为按姓名或按身份证号查找。两种方式都是查询出该顾客的预付费用和房间信息。
5.退出功能:退出系统。

二:总体设计
一个旅馆管理系统,必然涉及到房间对象,顾客对象等实体。这个系统初始化了60个房间,其中房间分三个等级,每个等级的价格不一样,可以通过房间编号得到房间的等级。然后就是房间的分配问题,当有顾客要求预定或入住时,系统能够根据用户要求入住的等级到相应等级的房间中去查找一个还没有预定的房间和一个没有入住的空闲房间。
当启动程序后,从Main函数开始运行,程序首先调用initial_room函数初始化60个房间的信息,包括房间编号,房间等级,房间价格,房间状态。其中房间编号和房间等级有直接联系,只要知道了房间编号就可以通过计算得到该房间的等级,房间状态初始化时都等于0,表示该房间既没有被预定,也没有被入住,为空房间。然后调用welcome函数,考虑到作为一个宾馆管理系统的安全性,在本函数中要求只有通过输入了正确的用户名和密码才能操作系统。此处账号密码都是123。当通过登陆认证后,就进入宾馆管理系统了,在这里,系统给操作者显示一个操作菜单:1.预定  2.入住  3.退房  4.查询  5.退出,选择不同的数字时就实现不同的功能。

三:详细设计过程
1.    预定:作为一个旅馆管理系统,顾客可以提前进行房间的预定,操作者能根据用户的需求查询到适合顾客的房间。在这个系统中,这个功能是在Book_Room函数中实现的。首先,构造一个顾客对象,输入顾客的信息,然后设置该顾客预定客房的天数,设置顾客预定客房类型,根据用户需要的客放标准到相应的类型客房去查找一个一个既没有被预定也没有入住的房间,然后把该房间对象结构体的状态修改为已预定状态,同时将顾客对象的预定房间号属性和住房费用计算出来并显示到界面上,最后将住房顾客数加1。

  入住:这个功能是在Go_in函数中实现的,程序首先判断顾客是否订房了,如果预定了房间,则要求输入顾客姓名和身份证号码,然后在所有的顾客中去查找此姓名和身份证号码的顾客,如果匹配了就取得其房间号,然后根据房间号计算出该房间的类型,再根据该顾客要求预定住房的天数和该房间类型的价格计算出该顾客要缴纳的费用,同时显示到界面上,这时操作者对顾客进行收费,同时将该住房的状态修改为已入住状态(State=2);如果顾客没有先预定房间,在这里可以实现先查找空房再入住的功能,同预定房间功能一样,先建立一个顾客对象,然后设置入住天数,选择住房类型,根据房间类型查询到一个空房,同时修改该房间的状态为已入住状态,计算房费直接执行收费,同时将顾客数加1。

   退房:此函数是再go_out函数中实现的。首先,输入要退房的顾客的姓名和身份证号码,再输入该顾客的实际住的天数,系统计算出顾客的费用。用switch函数根据房间等级和所住天数来判断是要给顾客退费用还是顾客需要补交费用。

   查询:此功能在inquire函数中实现。信息查询分为房间信息查询和顾客信息查询。对顾客信息查询,有两种方式:按姓名查询;按身份证号查询。通过查询可以得知每个房间的信息和每个顾客的房间信息与预付费用。

四:课设实现
1.登陆
//登陆
void function::welcome() {
    system("color 3E");
    char name[4],pass[7];
    cout<<"请输入用户名和密码:"<<endl;
    cin>>name;
    cin>>pass;
    while((strcmp(name,"123")!=0)||(strcmp(pass,"123")!=0)) {
        cout<<"用户名或密码输入有误,请重新输入!"<<endl;
        cin>>name;
        cin>>pass;
    }
    cout<<endl;
    cout<<endl;
    cout<<"                     ---------------------------"<<endl;
    cout<<"                      欢迎使用旅馆住宿管理系统!"<<endl;
    cout<<"                     ---------------------------"<<endl;
    cout<<endl;
    system("pause");
    system("cls");
}


 2.初始化房间
//初始化
void function::initial_room() {
    int j;
    int k=101;
    for(j=0; j<20; j++) {
        room[j].number=k++;
        room[j].rad=1;
        room[j].price=100;
        room[j].state=0;
    }
    k=201;
    for(j=20; j<40; j++) {
        room[j].number=k++;
        room[j].rad=2;
        room[j].price=200;
        room[j].state=0;
    }
    k=301;
    for(j=40; j<60; j++) {
        room[j].number=k++;
        room[j].rad=3;
        room[j].price=300;
        room[j].state=0;
    }
}
int main() {
    char choice='1';
    function m;
    m.initial_room();    //初始化60个房间
    m.welcome();    
            //验证
    while(choice=='1') {
        m.menu();//功能
        cout<<endl;
        cout<<"1. 继续使用   2. 退出 "<<endl;
        cin>>choice;
        cout<<endl;
    }
}
3.订房
//订房
void function::book_room() {
    customer[i]=new Customer;
    int room_kind,day;
    cout<<"请您选择预定房间类型:\n";
    cout<<"1.单人间/天/100元\n2.双人间/天/200元\n3.标准间/天/300元"<<endl;
    cin>>room_kind;
    cout<<"请输入预定天数"<<endl;
    cin>>day;
    customer[i]->set_day(day);
    switch(room_kind) {
            int n;
        case 1:
            cout<<"住房费用总共为: "<<day*100<<"元"<<endl;
            for(n=0; n<20; n++) {                                //从第一个级别的房间中查找一个空闲的房间
                if(room[n].state==0) {                            //state=0表示该住房没有被预定的
                    cout<<"预定成功   房间号码为: "<<room[n].number<<endl;
                    room[n].state=1;
                    customer[i]->set_room_number(room[n].number);
                    break;
                }
            }
            break;
        case 2:
            cout<<"住房费用总共为: "<<day*200<<" 元"<<endl;
            for(n=20; n<40; n++) {
                if(room[n].state==0) {
                    cout<<"预定成功   房间号码为: "<<room[n].number<<endl;
                    room[n].state=1;
                    customer[i]->set_room_number(room[n].number);
                    break;
                }
            }
            break;
        case 3: {
            cout<<"住房费用总共为: "<<day*300<<" 元"<<endl;
            for(n=40; n<60; n++) {
                if(room[n].state==0) {
                    cout<<"预订成功   房间号码为: "<<room[n].number<<endl;
                    room[n].state=1;
                    customer[i]->set_room_number(room[n].number);
                    break;
                }
            }
            break;
        }
        default:
            cout<<"选择有误"<<endl;
            break;
    }
    i++;  //住房的顾客数加1
}


 4.入住
//入住
void function::go_in() {
    char name1[10],id1[19];
    int q,prepaid;
    cout<<"该顾客是否已订房 (1. 已订   2. 没订) "<<endl;
    cin>>q;
    if(q==1) {
        cout<<"请输入顾客的姓名:"<<endl;
        cin>>name1;
        cout<<"请输入顾客的身份证号码:"<<endl;
        cin>>id1;
        //i:顾客人数
        for(int j=0; j<=i; j++) {
            if((strcmp(customer[j]->get_name(),name1)==0)&&(strcmp(customer[j]->get_ID(),id1)==0)) {
                int num=customer[j]->get_room_number();
                cout<<"顾客"<<name1<<"入住  房间号码为: "<<num<<endl;
                switch(num/100) {
                    case 6:
                        prepaid=customer[j]->get_day()*100;
                        customer[j]->set_prepaid(prepaid);
                        cout<<"请收费用 "<<prepaid<<"元"<<endl;
                        room[num%100-1].state=2;                  //修改房间状态为入住状态
                        break;
                    case 7:
                        prepaid=customer[j]->get_day()*200;
                        customer[j]->set_prepaid(prepaid);
                        cout<<"请收费用 "<<prepaid<<"元"<<endl;
                        room[19+num%100].state=2;
                        break;
                    case 8:
                        prepaid=customer[j]->get_day()*300;
                        customer[j]->set_prepaid(prepaid);
                        cout<<"请收费用 "<<prepaid<<"元"<<endl;
                        room[39+num%100].state=2;
                        break;
                }
                break;
            }
        }
    } else {
        customer[i]=new Customer;
        int roomkind;
        int day;
        cout<<"请输入要预定的天数:"<<endl;
        cout<<"1.单人间/天/100元\n2.双人间/天/200元\n3.标准间/天/300元"<<endl;
        cin>>roomkind;
        cout<<"请输入住宿天数:"<<endl;
        cin>>day;
        customer[i]->set_day(day);
        switch(roomkind) {
                int n;
            case 1:
                prepaid=day*100;
                customer[i]->set_prepaid(prepaid);
                cout<<"请收费用 "<<prepaid<<"元"<<endl;
                for(n=0; n<20; n++) {
                    if(room[n].state==0) {
                        cout<<"入住房间号码为: "<<room[n].number<<endl;
                        room[n].state=2;
                        customer[i]->set_room_number(room[n].number);
                        break;
                    }
                }
                break;
            case 2:
                prepaid=day*200;
                customer[i]->set_prepaid(prepaid);
                cout<<"请收费用 "<<prepaid<<"元"<<endl;
                for(n=20; n<40; n++) {
                    if(room[n].state==0) {
                        cout<<"入住房间号为: "<<room[n].number<<endl;
                        room[n].state=2;
                        customer[i]->set_room_number(room[n].number);
                        break;
                    }
                }
                break;
            case 3:
                prepaid=day*300;
                customer[i]->set_prepaid(prepaid);
                cout<<"请收费用 "<<prepaid<<"元"<<endl;
                for(n=40; n<60; n++) {
                    if(room[n].state==0) {
                        cout<<"入住房间号为: "<<room[n].number<<endl;
                        room[n].state=2;
                        customer[i]->set_room_number(room[n].number);
                        break;
                    }
                }
                break;
        }
        i++;
    }
}


 5.退房
//退房
void function::go_out() {
    char name2[10],id2[19];
    int room_number;
    int day;//多或少天数
    cout<<"请输入要退房的顾客姓名和身份证号码:"<<endl;
    cin>>name2;
    cin>>id2;
    cout<<"请输入该顾客实际所住天数:"<<endl;
    int day2;
    cin>>day2;
    int j;
    for(j=0; j<i; j++) {
        if((strcmp(customer[j]->get_name(),name2)==0)&&(strcmp(customer[j]->get_ID(),id2)==0)) {
            room_number=customer[j]->get_room_number();
            int w;
            w=room_number/100;
            int day1;
            day1=customer[j]->get_day();
            day=day1-day2;
            switch(w) {
                case 1:
                    cout<<"顾客的房间号是"<<room_number<<" :为单人间,每天100元"<<endl;
                    cout<<"该顾客预付了房费 "<<customer[j]->get_prepaid()<<"元, 实际消费 "<<day2*100<<"元"<<endl;
                    cout<<endl;
                    if(day>0)
                        cout<<"请退给该顾客 "<<day*100<<" 元"<<endl;
                    if(day<0)
                        cout<<"请补收该顾客住房费 "<<-day*100<<" 元"<<endl;
                    break;
                case 2:
                    cout<<"顾客的房间号是"<<room_number<<" :为双人间,每天200元"<<endl;
                    cout<<"该顾客预付了房费 "<<customer[j]->get_prepaid()<<"元, 实际消费 "<<day2*200<<"元"<<endl;
                    cout<<endl;
                    if(day>0)
                        cout<<"请退给该顾客 "<<day*200<<" 元"<<endl;
                    if(day<0)
                        cout<<"请补收该顾客住房费 "<<-day*200<<" 元"<<endl;
                    break;
                case 3:
                    cout<<"顾客的房间号是"<<room_number<<"   :为标准间,每天300元"<<endl;
                    cout<<"该顾客预付了房费 "<<customer[j]->get_prepaid()<<"元, 实际消费 "<<day2*300<<"元"<<endl;
                    cout<<endl;
                    if(day>0)
                        cout<<"请退给该顾客 "<<day*300<<" 元"<<endl;
                    if(day<0)
                        cout<<"请补收该顾客住房费 "<<-day*300<<" 元"<<endl;
                    break;
            }
            cout<<endl;
            cout<<"确认退房,请按1: "<<endl;
            char v;
            cin>>v;
            if(v=='1') {
                for(int k=0; k<60; k++) {
                    if(room[k].number==customer[j]->get_room_number())
                        room[k].state=0;
                }
                i--;
                for(; j<i; j++) {
                    customer[j]=customer[j+1];
                }
                delete customer[i];
            }
        }
        else
        {
            cout<<"无此顾客信息"<<endl;
            break;
        }
    }
}


 6.查询
//查询
void function::inquire() {
    char option;
    cout<<"1.房间信息查询, 2.顾客信息查询: "<<endl;
    cin>>option;
    if(option=='1') {
        int j;
        int k=0;
        cout<<endl;
        cout<<"空房间:"<<endl;
        for(j=0; j<60; j++) {
            if(room[j].state==0) {
                if(k%10==0) cout<<endl;//一行十个
                cout<<room[j].number<<'\t';
                k++;
            }
        }
        cout<<endl;
        cout<<endl;
        k=0;
        cout<<"已预订房间:"<<endl;
        for(j=0; j<60; j++) {
            if(room[j].state==1) {
                if(k%10==0) cout<<endl;
                cout<<room[j].number<<'\t';
                k++;
            }
        }
        k=0;
        cout<<endl;
        cout<<endl;
        cout<<"已入住房间:"<<endl;
        for(j=0; j<60; j++) {
            if(room[j].state==2) {
                if(k%10==0) cout<<endl;
                cout<<room[j].number<<'\t';
                k++;
            }
        }
        cout<<endl;
        cout<<endl;
    } else if(option=='2') {
        cout<<"1.按姓名查询, 2.按身份证查询: "<<endl;
        char option;
        cin>>option;
        if(option=='1') {
            char name3[10];
            cout<<"请输入顾客的姓名: ";
            cin>>name3;
            for(int j=0; j<=i; j++) {
                if(strcmp(customer[j]->get_name(),name3)==0) {
                    cout<<name3<<"的信息如下:"<<endl;
                    cout<<"\t"<<"房间号: "<<customer[j]->get_room_number()<<endl;
                    cout<<"\t"<<"预付费用: "<<customer[j]->get_prepaid()<<endl;
                    break; 
                }
                else
                {
                    cout<<"无此顾客信息"<<endl;
                    break;
                }
            }
        }
        if(option=='2') {
            char id3[10];
            cout<<"请输入顾客的身份证号码: "<<endl;
            cin>>id3;
            for(int j=0; j<=i; j++) {
                if(strcmp(customer[j]->get_ID(),id3)==0) {
                    cout<<customer[j]->get_name()<<"的房间信息:"<<endl;
                    cout<<"\t"<<"房间号: "<<customer[j]->get_room_number()<<endl;
                    cout<<"\t"<<"预付房费: "<<customer[j]->get_prepaid()<<endl;
                    break;
                }
                else
                {
                    cout<<"无此顾客信息"<<endl;
                    break;
                }
            }
        }
    }
}
(1)房间信息查询


 (2)顾客信息查询


完整的放这喽

//账号为123 
//密码为123 
#include<iOStream>
#include<cstdlib>
#include<cstring>
using namespace std;
int i=0;
struct Room {
    int number;
    int rad; 
    int price;
    int state;
};
class Customer {
    public:
        Customer();
        void set_name(char *n) {
            strcpy(name,n);
        }
        void set_ID(char *p) {
            strcpy(ID,p);
        }
        void set_room_number(int n) {
            room_number=n;
        }
        void set_day(int d) {
            day=d;
        }
        void set_prepaid(int p) {
            prepaid=p;
        }
        char *get_name() {
            return name;
        }
        char *get_ID() {
            return ID;
        }
        int  get_room_number() {
            return room_number;
        }
        int  get_day() {
            return day;
        }
        int  get_prepaid() {
            return prepaid;
        }
        virtual ~Customer();
    private:
        char name[10],ID[19];
        int  room_number;
        int  prepaid;
        int  change;
        int  day;
};
Customer::Customer() {//构造函数
    cout<<"请您输入顾客的姓名"<<endl;
    cin>>name;
    cout<<"请您输入顾客的身份证号码"<<endl;
    cin>>ID;
    prepaid=day=0;
}
Customer::~Customer() {//析构函数
    cout<<"该顾客退房成功!"<<endl;
}
Room room[60];
Customer *customer[60];
 
class function
{
    public:
    void initial_room();
    void welcome();
    void menu();
    void book_room();
    void go_in();
    void go_out();
    void inquire();
    void out();    
};
int main() {
    char choice='1';
    function m;
    m.initial_room();    //初始化60个房间
    m.welcome();    
            //验证
    while(choice=='1') {
        m.menu();//功能
        cout<<endl;
        cout<<"1. 继续使用   2. 退出 "<<endl;
        cin>>choice;
        cout<<endl;
    }
}
//登陆
void function::welcome() {
    system("color 3E");
    char name[4],pass[7];
    cout<<"请输入用户名和密码:"<<endl;
    cin>>name;
    cin>>pass;
    while((strcmp(name,"123")!=0)||(strcmp(pass,"123")!=0)) {
        cout<<"用户名或密码输入有误,请重新输入!"<<endl;
        cin>>name;
        cin>>pass;
    }
    cout<<endl;
    cout<<endl;
    cout<<"                     ---------------------------"<<endl;
    cout<<"                      欢迎使用旅馆住宿管理系统!"<<endl;
    cout<<"                     ---------------------------"<<endl;
    cout<<endl;
    system("pause");
    system("cls");
}
void function::menu() {
    function n;
    char x;
    cout<<"\t\t请选择功能: "<<endl;
    cout<<" \t   1.预定  \t2.入住  "<<endl;
    cout<<" \t   3.退房  \t4.查询"<<endl;
    cout<<"    \t   5.退出  \t"<<endl;
    cin>>x;
    switch(x) {
        case '1':
            n.book_room();
            system("pause");
            system("cls");
            break;
        case '2':
            n.go_in();
            system("pause");
            system("cls");
            break;
        case '3':
            n.go_out();
            system("pause");
            system("cls");
            break;
        case '4':
            n.inquire();
            system("pause");
            system("cls");
            break;
        case '5':
            n.out();
            break;
        default:
            cout<<"输入有误,请重新输入"<<endl;
            cin>>x;
    }
}
//订房
void function::book_room() {
    customer[i]=new Customer;
    int room_kind,day;
    cout<<"请您选择预定房间类型:\n";
    cout<<"1.单人间/天/100元\n2.双人间/天/200元\n3.标准间/天/300元"<<endl;
    cin>>room_kind;
    cout<<"请输入预定天数"<<endl;
    cin>>day;
    customer[i]->set_day(day);
    switch(room_kind) {
            int n;
        case 1:
            cout<<"住房费用总共为: "<<day*100<<"元"<<endl;
            for(n=0; n<20; n++) {                                //从第一个级别的房间中查找一个空闲的房间
                if(room[n].state==0) {                            //state=0表示该住房没有被预定的
                    cout<<"预定成功   房间号码为: "<<room[n].number<<endl;
                    room[n].state=1;
                    customer[i]->set_room_number(room[n].number);
                    break;
                }
            }
            break;
        case 2:
            cout<<"住房费用总共为: "<<day*200<<" 元"<<endl;
            for(n=20; n<40; n++) {
                if(room[n].state==0) {
                    cout<<"预定成功   房间号码为: "<<room[n].number<<endl;
                    room[n].state=1;
                    customer[i]->set_room_number(room[n].number);
                    break;
                }
            }
            break;
        case 3: {
            cout<<"住房费用总共为: "<<day*300<<" 元"<<endl;
            for(n=40; n<60; n++) {
                if(room[n].state==0) {
                    cout<<"预订成功   房间号码为: "<<room[n].number<<endl;
                    room[n].state=1;
                    customer[i]->set_room_number(room[n].number);
                    break;
                }
            }
            break;
        }
        default:
            cout<<"选择有误"<<endl;
            break;
    }
    i++;  //住房的顾客数加1
}
//入住
void function::go_in() {
    char name1[10],id1[19];
    int q,prepaid;
    cout<<"该顾客是否已订房 (1. 已订   2. 没订) "<<endl;
    cin>>q;
    if(q==1) {
        cout<<"请输入顾客的姓名:"<<endl;
        cin>>name1;
        cout<<"请输入顾客的身份证号码:"<<endl;
        cin>>id1;
        //i:顾客人数
        for(int j=0; j<=i; j++) {
            if((strcmp(customer[j]->get_name(),name1)==0)&&(strcmp(customer[j]->get_ID(),id1)==0)) {
                int num=customer[j]->get_room_number();
                cout<<"顾客"<<name1<<"入住  房间号码为: "<<num<<endl;
                switch(num/100) {
                    case 6:
                        prepaid=customer[j]->get_day()*100;
                        customer[j]->set_prepaid(prepaid);
                        cout<<"请收费用 "<<prepaid<<"元"<<endl;
                        room[num%100-1].state=2;                  //修改房间状态为入住状态
                        break;
                    case 7:
                        prepaid=customer[j]->get_day()*200;
                        customer[j]->set_prepaid(prepaid);
                        cout<<"请收费用 "<<prepaid<<"元"<<endl;
                        room[19+num%100].state=2;
                        break;
                    case 8:
                        prepaid=customer[j]->get_day()*300;
                        customer[j]->set_prepaid(prepaid);
                        cout<<"请收费用 "<<prepaid<<"元"<<endl;
                        room[39+num%100].state=2;
                        break;
                }
                break;
            }
        }
    } else {
        customer[i]=new Customer;
        int roomkind;
        int day;
        cout<<"请输入要预定的天数:"<<endl;
        cout<<"1.单人间/天/100元\n2.双人间/天/200元\n3.标准间/天/300元"<<endl;
        cin>>roomkind;
        cout<<"请输入住宿天数:"<<endl;
        cin>>day;
        customer[i]->set_day(day);
        switch(roomkind) {
                int n;
            case 1:
                prepaid=day*100;
                customer[i]->set_prepaid(prepaid);
                cout<<"请收费用 "<<prepaid<<"元"<<endl;
                for(n=0; n<20; n++) {
                    if(room[n].state==0) {
                        cout<<"入住房间号码为: "<<room[n].number<<endl;
                        room[n].state=2;
                        customer[i]->set_room_number(room[n].number);
                        break;
                    }
                }
                break;
            case 2:
                prepaid=day*200;
                customer[i]->set_prepaid(prepaid);
                cout<<"请收费用 "<<prepaid<<"元"<<endl;
                for(n=20; n<40; n++) {
                    if(room[n].state==0) {
                        cout<<"入住房间号为: "<<room[n].number<<endl;
                        room[n].state=2;
                        customer[i]->set_room_number(room[n].number);
                        break;
                    }
                }
                break;
            case 3:
                prepaid=day*300;
                customer[i]->set_prepaid(prepaid);
                cout<<"请收费用 "<<prepaid<<"元"<<endl;
                for(n=40; n<60; n++) {
                    if(room[n].state==0) {
                        cout<<"入住房间号为: "<<room[n].number<<endl;
                        room[n].state=2;
                        customer[i]->set_room_number(room[n].number);
                        break;
                    }
                }
                break;
        }
        i++;
    }
}
//退房
void function::go_out() {
    char name2[10],id2[19];
    int room_number;
    int day;//多或少天数
    cout<<"请输入要退房的顾客姓名和身份证号码:"<<endl;
    cin>>name2;
    cin>>id2;
    cout<<"请输入该顾客实际所住天数:"<<endl;
    int day2;
    cin>>day2;
    int j;
    for(j=0; j<i; j++) {
        if((strcmp(customer[j]->get_name(),name2)==0)&&(strcmp(customer[j]->get_ID(),id2)==0)) {
            room_number=customer[j]->get_room_number();
            int w;
            w=room_number/100;
            int day1;
            day1=customer[j]->get_day();
            day=day1-day2;
            switch(w) {
                case 1:
                    cout<<"顾客的房间号是"<<room_number<<" :为单人间,每天100元"<<endl;
                    cout<<"该顾客预付了房费 "<<customer[j]->get_prepaid()<<"元, 实际消费 "<<day2*100<<"元"<<endl;
                    cout<<endl;
                    if(day>0)
                        cout<<"请退给该顾客 "<<day*100<<" 元"<<endl;
                    if(day<0)
                        cout<<"请补收该顾客住房费 "<<-day*100<<" 元"<<endl;
                    break;
                case 2:
                    cout<<"顾客的房间号是"<<room_number<<" :为双人间,每天200元"<<endl;
                    cout<<"该顾客预付了房费 "<<customer[j]->get_prepaid()<<"元, 实际消费 "<<day2*200<<"元"<<endl;
                    cout<<endl;
                    if(day>0)
                        cout<<"请退给该顾客 "<<day*200<<" 元"<<endl;
                    if(day<0)
                        cout<<"请补收该顾客住房费 "<<-day*200<<" 元"<<endl;
                    break;
                case 3:
                    cout<<"顾客的房间号是"<<room_number<<"   :为标准间,每天300元"<<endl;
                    cout<<"该顾客预付了房费 "<<customer[j]->get_prepaid()<<"元, 实际消费 "<<day2*300<<"元"<<endl;
                    cout<<endl;
                    if(day>0)
                        cout<<"请退给该顾客 "<<day*300<<" 元"<<endl;
                    if(day<0)
                        cout<<"请补收该顾客住房费 "<<-day*300<<" 元"<<endl;
                    break;
            }
            cout<<endl;
            cout<<"确认退房,请按1: "<<endl;
            char v;
            cin>>v;
            if(v=='1') {
                for(int k=0; k<60; k++) {
                    if(room[k].number==customer[j]->get_room_number())
                        room[k].state=0;
                }
                i--;
                for(; j<i; j++) {
                    customer[j]=customer[j+1];
                }
                delete customer[i];
            }
        }
        else
        {
            cout<<"无此顾客信息"<<endl;
            break;
        }
    }
}
//查询
void function::inquire() {
    char option;
    cout<<"1.房间信息查询, 2.顾客信息查询: "<<endl;
    cin>>option;
    if(option=='1') {
        int j;
        int k=0;
        cout<<endl;
        cout<<"空房间:"<<endl;
        for(j=0; j<60; j++) {
            if(room[j].state==0) {
                if(k%10==0) cout<<endl;//一行十个
                cout<<room[j].number<<'\t';
                k++;
            }
        }
        cout<<endl;
        cout<<endl;
        k=0;
        cout<<"已预订房间:"<<endl;
        for(j=0; j<60; j++) {
            if(room[j].state==1) {
                if(k%10==0) cout<<endl;
                cout<<room[j].number<<'\t';
                k++;
            }
        }
        k=0;
        cout<<endl;
        cout<<endl;
        cout<<"已入住房间:"<<endl;
        for(j=0; j<60; j++) {
            if(room[j].state==2) {
                if(k%10==0) cout<<endl;
                cout<<room[j].number<<'\t';
                k++;
            }
        }
        cout<<endl;
        cout<<endl;
    } else if(option=='2') {
        cout<<"1.按姓名查询, 2.按身份证查询: "<<endl;
        char option;
        cin>>option;
        if(option=='1') {
            char name3[10];
            cout<<"请输入顾客的姓名: ";
            cin>>name3;
            for(int j=0; j<=i; j++) {
                if(strcmp(customer[j]->get_name(),name3)==0) {
                    cout<<name3<<"的信息如下:"<<endl;
                    cout<<"\t"<<"房间号: "<<customer[j]->get_room_number()<<endl;
                    cout<<"\t"<<"预付费用: "<<customer[j]->get_prepaid()<<endl;
                    break; 
                }
                else
                {
                    cout<<"无此顾客信息"<<endl;
                    break;
                }
            }
        }
        if(option=='2') {
            char id3[10];
            cout<<"请输入顾客的身份证号码: "<<endl;
            cin>>id3;
            for(int j=0; j<=i; j++) {
                if(strcmp(customer[j]->get_ID(),id3)==0) {
                    cout<<customer[j]->get_name()<<"的房间信息:"<<endl;
                    cout<<"\t"<<"房间号: "<<customer[j]->get_room_number()<<endl;
                    cout<<"\t"<<"预付房费: "<<customer[j]->get_prepaid()<<endl;
                    break;
                }
                else
                {
                    cout<<"无此顾客信息"<<endl;
                    break;
                }
            }
        }
    }
}
//初始化
void function::initial_room() {
    int j;
    int k=101;
    for(j=0; j<20; j++) {
        room[j].number=k++;
        room[j].rad=1;
        room[j].price=100;
        room[j].state=0;
    }
    k=201;
    for(j=20; j<40; j++) {
        room[j].number=k++;
        room[j].rad=2;
        room[j].price=200;
        room[j].state=0;
    }
    k=301;
    for(j=40; j<60; j++) {
        room[j].number=k++;
        room[j].rad=3;
        room[j].price=300;
        room[j].state=0;
    }
}
void function::out()
{
    return;
}

读到这里,这篇“C++如何实现旅馆住宿管理系统”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网其他教程频道。

--结束END--

本文标题: C++如何实现旅馆住宿管理系统

本文链接: https://www.lsjlt.com/news/330325.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++实现旅馆住宿管理系统
    目录一、课程设计要实现的目的二、总体设计三、详细设计过程四、课设实现本文实例为大家分享了C++实现旅馆住宿管理系统的具体代码,供大家参考,具体内容如下 一、课程设计要实现的目的 1....
    99+
    2024-04-02
  • C++如何实现旅馆住宿管理系统
    本文小编为大家详细介绍“C++如何实现旅馆住宿管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++如何实现旅馆住宿管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一:课程设计要实现的目的1.预定房...
    99+
    2023-06-30
  • C++实现学生住宿管理系统
    本文实例为大家分享了C++实现学生住宿管理系统的具体代码,供大家参考,具体内容如下 功能 (1)学生信息包括:姓名、学号、年龄、性别、学院、年级等 (2)宿舍信息包括:宿舍编号、宿舍...
    99+
    2024-04-02
  • C++实现图书馆管理系统
    本文实例为大家分享了C++实现图书馆管理系统的具体代码,供大家参考,具体内容如下 一、实验名称 图书馆管理系统 二、实验目的 利用C++语言设计开发一个小型的图书馆管理系统模拟程序,...
    99+
    2024-04-02
  • 基于C#如何实现宿舍管理系统
    本篇内容主要讲解“基于C#如何实现宿舍管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于C#如何实现宿舍管理系统”吧!一、项目创建首先通过创建C#的Windows窗体应用程序,名字可以自...
    99+
    2023-07-02
  • C语言如何实现图书馆管理系统
    这篇文章主要介绍了C语言如何实现图书馆管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。全部代码如下:#include <stdio.h>#incl...
    99+
    2023-06-20
  • C++实现宾馆房间管理系统
    本文实例为大家分享了C++实现宾馆房间管理系统的具体代码,供大家参考,具体内容如下 一、问题描述 设计一个程序实现对宾馆房间的基本管理,可以实现:客房信息的录入功能;客人入住登记、客...
    99+
    2024-04-02
  • 如何用C++实现简单图书馆管理系统
    这篇文章主要介绍“如何用C++实现简单图书馆管理系统”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用C++实现简单图书馆管理系统”文章能帮助大家解决问题。功能如下:1,添加书籍2,删除书籍(可删...
    99+
    2023-06-29
  • C++实现学生宿舍管理系统
    本文实例为大家分享了C++实现学生宿舍管理系统的具体代码,供大家参考,具体内容如下 非常简易,完成个作业够用,仅供初学者参考,不喜勿喷。 #include<stdio.h>...
    99+
    2024-04-02
  • C++实现宿舍管理查询系统
    本文实例为大家分享了C++实现宿舍管理查询系统的具体代码,供大家参考,具体内容如下 C++使用IO流关联.txt文件 各模块之间的调用关系如下: 函数的调用关系反映了演示程序的层次...
    99+
    2024-04-02
  • 基于C#实现宿舍管理系统
    目录前言一、项目创建二、主页面设计三、主页面代码1.登录按钮2.退出按钮3.注册按钮4.SQL配置5.主页总体代码前言 本次项目主要是因为我们的大作业要求要求,因为网上C#的资源不太...
    99+
    2024-04-02
  • C语言实现宿舍管理系统
    本文实例为大家分享了C语言实现宿舍管理系统的具体代码,供大家参考,具体内容如下 本次大一课设的作品,从空项目开始写的,全部在txt文件中增改删。变量命名太土了,代码格式还有待优化,望...
    99+
    2024-04-02
  • C++实现简易图书馆管理系统
    本文实例为大家分享了C++实现简易图书馆管理系统的具体代码,供大家参考,具体内容如下 思路 在本程序中共有四个类: book类:此类有书的基本信息:书名,编号,作者,价格等,和基本的...
    99+
    2024-04-02
  • 如何使用C++实现学生宿舍管理系统
    这篇文章给大家分享的是有关如何使用C++实现学生宿舍管理系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下非常简易,完成个作业够用,仅供初学者参考,不喜勿喷。#include<stdio.h&g...
    99+
    2023-06-29
  • C语言实现图书馆管理系统
    本文实例为大家分享了C语言实现图书馆管理系统的具体代码,供大家参考,具体内容如下 全部代码如下: #include <stdio.h> #include<str...
    99+
    2024-04-02
  • C++实现图书馆管理系统源码
    本文实例为大家分享了C++实现图书馆管理系统的具体代码,供大家参考,具体内容如下 总体思想 用C++开发图书馆管理系统需要对学生和图书分别建立class,调用class中的方法实现学...
    99+
    2024-04-02
  • C++实现简单图书馆管理系统
    本文实例为大家分享了C++实现简单图书馆管理系统的具体代码,供大家参考,具体内容如下 写了一个小项目,图书馆系统,功能如下: 1,添加书籍2,删除书籍(可删除还没外借的书籍)3,读者...
    99+
    2024-04-02
  • C语言实现学生宿舍管理系统
    本文实例为大家分享了C语言实现学生宿舍管理系统的具体代码,供大家参考,具体内容如下 实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号、房间号、面积、所容纳人数、已入住人数等,系...
    99+
    2024-04-02
  • C++如何实现景区旅游信息管理系统
    这篇文章主要介绍C++如何实现景区旅游信息管理系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下1 问题描述如今生活水平提高,大家都喜欢在假期中到一个旅游景点参观,在旅游景区中经常听到游客打听从一个景点到...
    99+
    2023-06-29
  • C语言如何实现学生宿舍信息管理系统
    这篇文章主要讲解了“C语言如何实现学生宿舍信息管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言如何实现学生宿舍信息管理系统”吧!功能描述该学生宿舍信息管理系统主要实现的功能有:创...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作