酒店管理系统《面向对象程序设计》(C++)大作业项目名称:酒店管理系统班级:姓名学号:完成时间:2015年1月15日指导教师:日期:2016年1月15日酒店管理系统II目录一、系统说明…………………………………………………………………11.1问题描述………………………………………………………….11.2总体方案…………………………………………………………..1二、程序分析…………………………………………………………………22.1流程图……………………………………………………………..22.2详细说明………………………………………………………….42.2.1主系统说明……………………………………………42.2.2子系统说明………………………………………….13三、测试结果……………………………………………………………….163.1测试结果…………………………………………………………163.2测试总结…………………………………………………………20四、总结………………………………………………………………………….21附录一:参考文献………………………………………………………….22附录二:程序源代码………………………………………………………23酒店管理系统1一、系统说明1.1问题描述。酒店住宿情境Kate是单位的业务员,经常需要到外面出差,这次,他选择了A城市一个“好运来”酒店,准备住下。如是他走到酒店前台,问了一下房间的情况,服务员问他有没有预定,他说没有。于是,服务员帮他开了间标间,登记了他的个人信息,并且告诉他如果需要什么服务可以直接打前台电话。Kate很满意,对这种服务大加赞赏。对于本次设计我们主要实现的功能有:客房信息的录入set_HR_info(HotelRoom*Room),客户入住登记set_C_info(HotelRoom*Room),修改客房信息(Change_HR_info(HotelRoom*Room),退房结算Count(HotelRoom*Room),显示所有的客房信息PrintAll(HotelRoom*Room),通过房号、姓名以及空房间查询客房find_choose(HotelRoom*Room)1.2、总体方案。设置一个设置Cus基类,用于储存客户的基本信息,包括姓名(stringname)、身份证号码(stringID)、入住天数(intDay)、订金(intsubscription),并用get_C_info()函数实现Cus数据的获取。还有show_C_info()函数实现客户基本信息的显示。从Cus基类派生出一个派生类HotelRoom,用于存储客房的基本信息,包括房号(num)、房间类型(Type)、房价(Price)。还有普通的成员函数get_HR_info()、get_HR1_info()、show_HR_info()、show_HRC_info(),它们的作用是输入客房信息、输入总的信息,显示客房信息,显示总的信息。并且在HotelRoom类中含有HotelRoom无参的构造函数对客房信息进行初始化。类体系设计:对上述各个功能的函数进行声明,然后对各个函数进行定义,实现不同的功能。在主函数中用一个swtich函数,选择不同的功能Cus顾客类:包括姓名(stringname)、身份证号码(stringID)、入住天数(intDay)、订金(intsubscription)HotelRoom派生类:包括房号(intnum)、房间类型(stringType)、房价(stringPrice)酒店管理系统2二、程序分析2.1、功能图1、主系统界面其他输入7进入相应功能系统开始出现好运来酒店管理系统界面按需求选择相应功能功能1、客房信息录入功能2、顾客入住登记功能3、修改顾客信息功能4、顾客退房结算功能5、显示所有客房信息功能6、查询客房信息酒店管理系统32、子系统界面子系统:查询所有客房信息功能:通过房号、用户姓名查询客房信息,并显示所有空房间。功能1、录入客房信息初始信息。功能2、通过不同的选择,能通过房号、用户姓名查询。功能3、能够显示要查询的客房信息。输入其他4开始进入查询系统界面按需求选择(1---4)功能1、通过房号查询客房信息功能2、通过姓名查询客房信息功能3、查询所有空客房酒店管理系统42.2、详细说明2.2.1、主系统界面说明1、类名:Cus。内容:储存客户的基本信息,包括姓名(stringname)、身份证号码(stringID)、入住天数(intDay)、订金(intsubscription),并用get_C_info()函数实现Cus数据的获取。还有show_C_info()函数实现客户基本信息的显示。功能:作为下面定义派生类的基类。程序源代码:classCus//客户信息{public:stringID;stringname;intDay;intsubscription;//订金voidget_C_info();voidshow_C_info();Cus(){};};voidCus::get_C_info(){cout客户姓名:;cinname;cout客户身份证信息:;cinID;cout订金:;cinsubscription;cout入住天数;cinDay;}voidCus::show_C_info(){cout客户姓名:nameendl;;cout客户身份证信息:IDendl;cout订金:subscriptionendl;cout入住天数Dayendl;}2、类名:HotelRoom继承类型:公有继承内容:用于存储客房的基本信息,包括房号(intnum)、房间类型(stringType)、房价(intPrice)。还有成员函数get_HR_info()、get_HR1_info()、show_HR_info()、show_HRC_info(),它们的作用是输入客房信息、输入总的信息,显示客房信息,显示总的信息。并且在HotelRoom类中含有HotelRoom无参的构造函数对客房信息进行初始化。酒店管理系统5功能:基类Cus的派生,对客房信息进行储存。程序源代码:classHotelRoom:publicCus{public:intPrice;stringType;intnum;intmoney(){return(Price*Day-subscription);}//结算金额函数voidget_HR_info();voidshow_HR_info();voidshow_HRC_info();voidget_HR1_info();HotelRoom()//无参的构造函数,对数据成员进行初始化{num=0;subscription=0;Price=0;Type=空;Day=0;name=空;ID=0;}};voidHotelRoom::get_HR_info()//输入客房信息{cout房间号:;cinnum;cout房间类型:;cinType;cout房间价格:;cinPrice;}voidHotelRoom::get_HR1_info()//输入总的信息{cout房间类型:;cinType;cout房间价格:;cinPrice;}voidHotelRoom::show_HR_info()//显示客房信息{cout房间号:numendl;cout房间类型:Typeendl;cout房间价格:Priceendl;}voidHotelRoom::show_HRC_info()//显酒店管理系统6示总的信息{cout房间号:numendl;cout房间类型:Typeendl;cout房间价格:Priceendl;show_C_info();}3、主函数。函数名称:main()函数类型:int调用的函数:set_C_info(HotelRoom*Room)、set_HR_info(HotelRoom*Room)、Display_HR_info(HotelRoom*Room)、add_HR_info(HotelRoom*Room)、Change_HR_info(HotelRoom*Room)、PrintAll(HotelRoom*Room)、PrintAll(HotelRoom*Room)、Count(HotelRoom*Room)、find_HR_ByNum(HotelRoom*Room)、find_HR_ByName(HotelRoom*Room)功能:建立一个主函数,系统的主界面有这里产生。通过不同的选择实现相应的功能。程序源代码:/*主函数,系统界面,用switch语句实现功能选择*/intmain(){HotelRoomRoom[40];while(1){cout\n\n欢迎入住好运来酒店\n\n;cout*********************************************\n\n;cout**1.录入客房信息**\n\n;cout**2.客户入住登记**\n\n;cout**3.修改客房信息**\n\n;cout**4.客户退房结算**\n\n;酒店管理系统7cout**5.显示所有客房信息**\n\n;cout**6.查询客房信息**\n\n;cout**7.退出系统**\n\n;cout*********************************************\n\n;cout请选择(请输入1--7数字):;intchoose=0;cinchoose;system(cls);switch(choose){case1:set_HR_info(Room);break;/*输入客房信息*/case2:set_C_info(Room);break;/*客人入住登记*/case3:Change_HR_info(Room);break;/*修改客房信息*/case4:Count(Room);break;/*客户退房*/case5:PrintAll(Room);break;/*查询所有客房信息*/case6:find_choose(Room);break;/*查询*/case7:exit(0);/*退出*/default:break;}}return0;}4、函数名称:set_C_info(HotelRoom*Room)//客户登记函数类型:void函数变量:对录入系统的房号进行记录(intNum)、对录入的Y、N进行记录(stringp)酒店管理系统8调用基类:Cus调用派生类名称:HotelRoom功能:客户入住登记信息,通过for循环和if语句找到要入住的客房,并显示其信息。然后询问客户是否要订房,若输入Y则继续订房,并调用get_C_info()函数录入客户信息,若输入N,则取消订房,其他输入均为无效操作。通过if语句若找到的房间其入住天数不为0则证明该房间已有人住,系统提示已有人住。程序源代码:voidset_C_info(HotelRoom*Room)//********************客户登记{intNum;intt=0;cout输入房间号码:;cinNum;for(inti=0;i30;i++){if(Num==Room[i].num&&Room[i].Day==0){cout房间已找到!;cout房间类型:Room[i].Typeendl;cout房间价格:Room[i].Priceendl;cout请输入客户信息:endl;cout是否确定要订房?(Y/N);stringp;cinp;if(p==Y){Room[i].get_C_info();cout信息录入成功!endl;}elseif