版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、课程设计目学习综合运用C高档语言课程和其她先修课程知识,提高分析和解决实际问题能力,进一步巩固、加深和拓宽所学知识;进一步加强构造化程序设计思想,加深对高档语言基本语言要素和控制构造理解。全面系统学习面向对象程序设计基本概念、基本语法和编程办法;独立完毕有一定工作量程序设计任务,同步强调好程序设计风格。掌握程序设计中惯用算法和C语言编程技巧和上机调试程序办法。在参加一系列子项目实践过程中,提高如何综合运用所学知识解决实际问题能力,以及获得有关项目管理和团队合伙等众多方面详细经验。课程设计任务按照如下规定,运用C++语言,编写一套可用较为完善宾馆住宿管理系统软件(两人分模块合伙)对宾馆基本信息【房间数量、房间类别(标间、单间、套房)、收费原则等】在恰当范畴内自行规定。可以实现预定登记、入住登记、退房结算等功能;房间状态(空房、入住、预定)可以以一定方式直观地体现。可以录入住宿人员信息、计算客户消费总额并生成账单,账单信息存入到磁盘文献当中去。可以相对灵活地查询房间状态、入住状况、空房状况、预订状况等内容。可以产生各类报表,如房间信息、入住信息、消费表单等在磁盘文献当中可以查看它们信息。三、系统设计方案3.1系统详细描述3.1.1系统设计背景随着人民生活水平提高,旅游出行人越来越多,宾馆客流量不断增长,普通手写登记太过复杂经常浮现信息丢失,也不适合当前节约型社会发展,宾馆在正常运营中需要对客房资源、顾客信息、退房信息等进行管理,运用客房管理系统及时理解各个环节中信息变更,有助于提高管理效率。本项目作为c++课程设计训练项目提出,目是为了提高同窗们系统开发,则提高人们实践能力。因此开发一种符合自身宾馆实际状况工作平台是十分必要。3.1.2系统设计详细信息系统使用对象设定为百康宾馆。百康宾馆是一故乡镇中小型宾馆,三层建筑,拥有各类房间共20间。其中一层均为单人间,共9间,房号101-109;二层为均双人间,共6间,房号201-206;三层均为豪华套房,共5间,房号301-305。各类房间均设有电视、橱柜、内网电话、电扇、暖气等基本设施,24小时热水供应,可淋浴。一层前台处设有便捷商店,当时结算,不计入住宿账单。可通过内网电话购买,免费送至房间。A、收费原则:有按天计费和按小时计费两种收费原则。按天计费,原则为单人间170元/天,双人间280元/天,豪华套房500元/天。按小时计费,原则为单人间20元/小时,双人间30元/小时,豪华套房50元/小时。B、计时原则:按天计费时,从0时至次日0时计一天,不满一天按一天计算;按小时计费时,不满一小时按一小时计费。(特殊情形优惠政策不在本设计考虑范畴之内)C、定金原则:入住定金按(预测入住时间*其单日房费+500元)收取,退房时充作房费和房屋设施折损费(抵偿损坏房内设施),多退少补。预定定金(按预测订房时间*相应房间按天计算住宿价格*40%)收取,若届时不入住且不续订,则不再退还;若届时入住,充作入住定金,多退少补。电话预定无需缴纳定金,但不保证届时有空房间。注:定金数额可在以上原则数额之上,退房结算时多退少补。退房时,室内设施经确认无损坏状况,则不收取房屋设施折损费。3.2功能模块划分3.2.1功能模块描述依照任务内容规定及宾馆有关状况等信息,百康宾馆住宿管理系统需要实现查询功能(涉及客房总体使用状况查询、已入住客房查询、已预订客房查询、闲置房间信息查询等查询方式),订房登记,入住登记,退房结算等四大基本功能。系统应实现对各类信息灵活查找,客户信息录入、保存与调用,自动结算并生成账单等操作。为了简化前台人员操作并提高其工作效率,还应实现开始前初始化询问,订房或入住登记时自动显示当前闲置房间,入住前询问与否已预订,输入错误信息时进行提示等人性化功能。由以上分析,将系统重要分为如下四大功能模块,如图3.1所示:客房查询:涉及查询客房总体使用状况、查询当前闲置房间信息、查询已入住房间信息、查询已预定房间信息等查询功能;订房登记:涉及显示当前闲置房间信息、登记预定信息等功能;入住登记:涉及显示当前房间总体使用状况、询问与否预定过房间、登记入住人信息等功能;退房结算:涉及选取结算方式、输入结算时间、计算住宿费用等功能。百康宾馆住宿管理系百康宾馆住宿管理系订房登记入住登记客房查询退房结算客房总体信息查询已预订房间信息查询已入住房间信息查询闲置房间信息查询图3.1功能模块构造图注:我与网络工程专业10班王维康同窗合伙,共同完毕本次关于于宾馆住宿管理系统程序设计,我负责实现入住登记模块、退房结算模;王维康同窗负责编写客房查询和订房登记两个模块有关内容。3.2.2输入项如下输入项均为键盘输入:num——房间号,intkongxian——房间与否空闲,intname[20]——名字定义,charname[20]ID[20]——身份证号(18位阿拉伯数字),charID[20]lianxifangshi[15]——联系方式(11位阿拉伯数字), charlianxifangshi[15]yajin——押金,intyudingriqi——预定日期(日期均为8位阿拉伯数字,格式为年月日),longruzhushijian——入住日期,longtianshu——预测天数,intjiezhiriqi——截止日期,longp——与否初始化(0或1),intchose——选取主菜单(1,2,3,4或5),intt——计费方式(1或2),inti——子菜单选取(1,2,3,4或5)(不同模块也许定义不同),inta——与否预定过房间(在ruzhudengji()定义),int3.2.3输出项房间号,int房间类型, charleixing[10]价格(元/天),int价格(元/小时),int与否空闲,int客人姓名,charname[20]身份证,charID[20]联系方式,charlianxifangshi[15]押金(元),int预定日期,long入住时间,long预测天数,int截止日期,long四、系统实现与测试4.1主菜单模块实现4.1.1主菜单流程图图4.1主菜单流程图4.1.2主菜单代码voidMenu_Display(){ system("cls"); cout<<"\t\t###########################################"<<endl; cout<<"\t\t#@欢迎使用百康宾馆管理系统@#"<<endl; cout<<"\t\t#请输入您所需要功能:#"<<endl; cout<<"\t\t#1.客房查询2.订房登记#"<<endl; cout<<"\t\t#3.入住登记4.退房#"<<endl; cout<<"\t\t#5.退出#"<<endl; cout<<"\t\t#感*谢*您**使*用#"<<endl; cout<<"\t\t###########################################"<<endl;}voidchushihua(){ inti[3]={1,0,1},k=0; for(;k<20;k++) { hotel[k].num=i[0]*100+i[1]*10+i[2]; strcpy(hotel[k].ID,"0"); hotel[k].jiezhiriqi=0; hotel[k].kongxian=0; strcpy(hotel[k].lianxifangshi,"0"); strcpy(hotel[k].name,"0"); hotel[k].ruzhushijian=0; hotel[k].tianshu=0; hotel[k].yudingriqi=0; switch(i[0]) { case1:{hotel[k].jiage=17020;strcpy(hotel[k].leixing,"单人间");break;} case2:{hotel[k].jiage=28030;strcpy(hotel[k].leixing,"双人间");break;} case3:{hotel[k].jiage=50050;strcpy(hotel[k].leixing,"套房");break;} } if(k==8) i[0]++,i[2]=0; if(k==14) i[0]++,i[2]=0; i[2]++; } fstreamxieru("宾馆房间信息.txt",ios::out); xieru<<"房间号类型价格与否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期"<<endl;for(intx=0;x<20;x++) {xieru<<hotel[x].num<<''<<hotel[x].leixing<<''<<hotel[x].jiage<<''<<hotel[x].kongxian<<''<<hotel[x].name <<''<<hotel[x].ID<<''<<hotel[x].lianxifangshi<<''<<hotel[x].yajin<<''<<hotel[x].yudingriqi<<''<<hotel[x].ruzhushijian <<''<<hotel[x].tianshu<<''<<hotel[x].jiezhiriqi<<endl; } xieru.close();}voidmain(){ intp=0; cout<<"与否要初始化房间信息?"; cout<<"(是请输入1,否请输入0)"<<endl; cin>>p; if(p==1) chushihua(); intchose; Menu_Display(); cout<<"请输入选项:"; cin>>chose; while(chose!=0) { switch(chose)//用switch语句判断选取菜单功能 { case1:search_message();break;//客房查询 case2:dingfangdengji();break;//订房间 case3:ruzhudengji();break;//入住房间 case4:tuifang();break;//退房 case5:exit(0);default:cout<<"输入错误,请重新输入"<<endl;//提示错误命令 }cout<<"\t\t###########################################"<<endl; cout<<"\t\t#@欢迎使用百康宾馆管理系统@#"<<endl; cout<<"\t\t#请输入您所需要功能:#"<<endl; cout<<"\t\t#1.客房查询2.订房登记#"<<endl; cout<<"\t\t#3.入住登记4.退房#"<<endl; cout<<"\t\t#5.退出#"<<endl; cout<<"\t\t#感*谢*您**使*用#"<<endl; cout<<"\t\t###########################################"<<endl; cout<<"请输入选项:"; cin>>chose; while(chose==0) { cout<<"输入错误,按任意键退出程序:"<<endl; exit(0); } }}4.1.3主菜单模块测试主菜单界面中显示客房管理系统功能选项模块如图4.2所示:图4.2主菜单4.2入住登记模块实现4.2.1入住登记流程图图4.3入住登记流程图4.2.2入住登记代码voidruzhudengji(){ inta,b=0; stringname; ifstreamliulan("宾馆房间信息.txt",ios::in);//定义输入文献流对象,以输入方式打开磁盘文献旅信 if(!liulan)//判断文献与否打开成功 { cerr<<"文献不能读."<<endl;return; } else liulan.seekg(117,ios::beg);//在输入文献开头以参照位置为基本移动若干字节(beg=begin) inti=0;//存储空闲房间号码cout<<"房间号类型价格(元/天)价格(元/小时)空闲"<<endl; while(i<20) { liulan>>hotel[i].num>>hotel[i].leixing>>hotel[i].jiage>>hotel[i].kongxian>>hotel[i].name >>hotel[i].ID>>hotel[i].lianxifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; cout<<setw(4)<<hotel[i].num<<setw(8)<<hotel[i].leixing<<setw(9)<<hotel[i].jiage/100<<setw(14)<<hotel[i].jiage%100<<setw(13) <<hotel[i].kongxian;//输出所有房间信息 i++,cout<<endl; } liulan.close();//关闭文献 cout<<"(注:0表达空房间、1表达房间已入住、2表达房间已预订)"<<endl; cout<<"与否预订过房间?"<<endl; cout<<"是,请输入1,否,请输入2"<<endl; cin>>a; if(a==1) { cout<<"请输入房间号:"<<endl; cin>>b; for(i=0;i<20;i++) if(hotel[i].num==b) { if(hotel[i].yudingriqi!=0) { cout<<"请输入入住日期:"; cin>>hotel[i].ruzhushijian; cout<<"请输入截止日期:"; cin>>hotel[i].jiezhiriqi; hotel[i].yudingriqi=0; } else { cout<<"该房没有被预订过"<<endl; system("pause"); } } } else { cout<<"空房间有:"<<endl; for(intk=0;k<20;k++) { if(hotel[k].kongxian==0) cout<<hotel[k].num<<""; } cout<<endl; cout<<"请输入房间号:"; cin>>b; for(i=0;i<20;i++) if(hotel[i].num==b) { cout<<"请依次输入如下信息并加以核对(日期格式:年月日例如19920503)"<<endl; cout<<"姓名:"; cin>>hotel[i].name; cout<<"身份证号:"; cin>>hotel[i].ID; cout<<"联系方式:"; cin>>hotel[i].lianxifangshi; cout<<"押金:"; cin>>hotel[i].yajin; cout<<"天数:"; cin>>hotel[i].tianshu; cout<<"入住日期:"; cin>>hotel[i].ruzhushijian; hotel[i].kongxian=2; } } ofstreamxieru("宾馆房间信息.txt",ios::out);//写回文献 xieru<<"房间号类型价格与否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期"<<endl; for(i=0;i<20;i++) xieru<<hotel[i].num<<''<<hotel[i].leixing<<''<<hotel[i].jiage<<''<<hotel[i].kongxian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lianxifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; xieru.close(); cout<<"登记成功"<<endl;}4.2.3入住登记模块测入住登记界面显示了房间使用状况以及提示此前与否预订过房间如图4.4所示:图4.4入住登记界面如果客人预定过房间,则选取“1”,然后输入预订房间号如图4.5所示。输入入住日期和截止日期则“登记成功”如图4.6所示。图4.5选取订过房间入住登记界面图4.6订过房间入住登记界面未预订过房间则选取“2”则会显示出当前空房间信息如图4.7所示,依照系统提示输入客人信息则“登记成功”如图4.8所示。图4.7选取未订过房间入住登记界面图4.8选取未订过房间入住登记输入信息界面4.3退房结算模块实现4.3.1退房结算流程图图4.9退房结算流程图4.3.2退房结算代码voidtuifang(){inta,b; ifstreamfin("宾馆房间信息.txt",ios::in); cout<<"请输入房号:"; cin>>a; intc=0,i=0; fin.seekg(117,ios::beg);//在输入文献开头以参照位置为基本移动若干字节(beg=begin) while(i<20) { fin>>hotel[i].num>>hotel[i].leixing>>hotel[i].jiage>>hotel[i].kongxian>>hotel[i].name >>hotel[i].ID>>hotel[i].lianxifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; if(hotel[i].num==a)//查询客人房间 b=i; i++; } fin.close(); cout<<"房间信息为:"<<endl; cout<<"姓名:押金(元):入住时间:"<<endl; cout<<setw(6)<<hotel[b].name<<setw(8)<<hotel[b].yajin<<setw(20)<<hotel[b].ruzhushijian<<endl; cout<<"(注:日期输入格式年月日例如)"<<endl; cout<<"请输结算入日期:"; intd; cin>>d; hotel[b].jiezhiriqi=d; intfei; cout<<"按小时/天数计费(小时输入1,天数输入2):"; intt; cin>>t; if(t==2) fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage/100));//结算函数,押金—(结算时间-入住时间)*价格 else fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage%100));//按小时计算 if(fei<0) { fei=-fei; cout<<"应付费用为:"<<fei<<"元"<<endl; } else { cout<<"总消费金额为:"<<hotel[b].yajin-fei<<"元"<<endl; cout<<"押金足够应返还给您:"<<fei<<"元"<<endl; } fstreamjsxx("结算信息.txt",ios::out);jsxx<<"消费信息为:"<<endl; jsxx<<"姓名:"<<hotel[b].name<<endl<<"押金(元):"<<hotel[b].yajin<<endl<<"入住时间:"<<hotel[b].ruzhushijian<<endl<<"结算时间:"<<d<<endl;if(t==2) jsxx<<"计费方式:按天数计费"<<endl; else jsxx<<"计费方式:按小时计费"<<endl;jsxx<<"总消费金额为:"<<hotel[b].yajin-fei<<"元"<<endl; jsxx<<"押金足够应返还给您:"<<fei<<"元"<<endl; jsxx.close(); hotel[b].kongxian=0;//房间结算后初始化房间信息 strcpy(hotel[b].name,"0"); strcpy(hotel[b].ID,"0"); strcpy(hotel[b].lianxifangshi,"0"); hotel[b].yudingriqi=0; hotel[b].ruzhushijian=0; hotel[b].jiezhiriqi=0; hotel[b].yajin=0; hotel[b].tianshu=0; hotel[b].jiezhiriqi=0; fstreamxieru("宾馆房间信息.txt",ios::out);//生成文献 xieru<<"房间号类型价格与否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期"<<endl; for(i=0;i<20;i++) { xieru<<hotel[i].num<<''<<hotel[i].leixing<<''<<hotel[i].jiage<<''<<hotel[i].kongxian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lianxifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; } xieru.close(); system("pause");}4.3.3退房结算模块测试选取退房功能输入房间号则会显示出客人基本信息如图4.10所示;依照系统提示输入结算日期并选取结算方式则“结算结束”如图4.11和图4.12所示。账单信息存入到磁盘文献当中去,如图4.13所示。图4.10退房结算输入结算房间号后界面图图4.11退房结算输入日期界面图4.12退房结算完毕界面图4.13退房结算信息文献五、程序调试中浮现问题及解决办法在调试程序过程中频繁浮现问题就是分号丢失以及书写程序中某些最基本字符规定没有对的书写,导致一种程序里浮现了大量错误,在改错时吸取教训为后期工作节约了诸多时间,在整个程序运营时,由于有函数之定义了,而背面却没有见这个函数写完,导致整个程序无法运营,开始解决时候是将此函数所有清除然后运营整个程序,日后在将函数写完整放进大程序中去进行运营。在入住登记调试程序时,房间信息显示浮现了无限循环状况,通过对语句分析,发现是背面i++书写错误导致,通过修改后错误排出了。有时还会浮现程序成功运营后,但是在dos界面选取某些功能时浮现无限循环,解决办法是先看所写循环语句与否浮现错误,Debug/宾馆住宿管理系统.exe:fatalerrorLNK1120:1unresolvedexternals,运营错误提示,也总是浮现,通过上网查询找出解决办法因素是设立参数有问题。六、参照文献[1]谭浩强.C++程序设计.北京:清华大学出版社.[2]郑莉.C++程序设计(第三版).北京:清华大学出版社.[3]钱能.C++程序设计教程.北京:清华大学出版社.[4]武俊亮.visualc++课程设计与系统开发案例.北京:清华出版社[5]黄维通.VisualC++程序设计教程.北京:清华大学出版社.七、附录:程序代码#include<iostream>#include<iomanip>//输出流控制#include<string>#include<fstream>//输入输出文献流usingnamespacestd;voidsearch_message();voiddingfangdengji();voidruzhudengji();voidtuifang();voidall_message();voidempty_message();voidruzhixinxi();voiddingfangxinxi();structhotel//定义构造体{ intnum; charleixing[10]; intjiage; intkongxian; charname[20]; charID[20]; charlianxifangshi[15]; intyajin; longyudingriqi; longruzhushijian; inttianshu; longjiezhiriqi;}hotel[20];voidMenu_Display(){ system("cls"); cout<<"\t\t###########################################"<<endl; cout<<"\t\t#@欢迎使用百康宾馆管理系统@#"<<endl; cout<<"\t\t#请输入您所需要功能:#"<<endl; cout<<"\t\t#1.客房查询2.订房登记#"<<endl; cout<<"\t\t#3.入住登记4.退房#"<<endl; cout<<"\t\t#5.退出#"<<endl; cout<<"\t\t#感*谢*您**使*用#"<<endl; cout<<"\t\t###########################################"<<endl;}voidchushihua(){ inti[3]={1,0,1},k=0; for(;k<20;k++) { hotel[k].num=i[0]*100+i[1]*10+i[2]; strcpy(hotel[k].ID,"0"); hotel[k].jiezhiriqi=0; hotel[k].kongxian=0; strcpy(hotel[k].lianxifangshi,"0"); strcpy(hotel[k].name,"0"); hotel[k].ruzhushijian=0; hotel[k].tianshu=0; hotel[k].yudingriqi=0; switch(i[0]) { case1:{hotel[k].jiage=17020;strcpy(hotel[k].leixing,"单人间");break;} case2:{hotel[k].jiage=28030;strcpy(hotel[k].leixing,"双人间");break;} case3:{hotel[k].jiage=50050;strcpy(hotel[k].leixing,"套房");break;} } if(k==8) i[0]++,i[2]=0; if(k==14) i[0]++,i[2]=0; i[2]++; } fstreamxieru("宾馆房间信息.txt",ios::out); xieru<<"房间号类型价格与否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期"<<endl;for(intx=0;x<20;x++) {xieru<<hotel[x].num<<''<<hotel[x].leixing<<''<<hotel[x].jiage<<''<<hotel[x].kongxian<<''<<hotel[x].name <<''<<hotel[x].ID<<''<<hotel[x].lianxifangshi<<''<<hotel[x].yajin<<''<<hotel[x].yudingriqi<<''<<hotel[x].ruzhushijian <<''<<hotel[x].tianshu<<''<<hotel[x].jiezhiriqi<<endl; } xieru.close();}voidmain(){ intp=0; cout<<"与否要初始化房间信息?"; cout<<"(是请输入1,否请输入0)"<<endl; cin>>p; if(p==1) chushihua(); intchose; Menu_Display(); cout<<"请输入选项:"; cin>>chose; while(chose!=0) { switch(chose)//用switch语句判断选取菜单功能 { case1:search_message();break;//客房查询 case2:dingfangdengji();break;//订房间 case3:ruzhudengji();break;//入住房间 case4:tuifang();break;//退房 case5:exit(0);default:cout<<"输入错误,请重新输入"<<endl;//提示错误命令 }cout<<"\t\t###########################################"<<endl; cout<<"\t\t#@欢迎使用百康宾馆管理系统@#"<<endl; cout<<"\t\t#请输入您所需要功能:#"<<endl; cout<<"\t\t#1.客房查询2.订房登记#"<<endl; cout<<"\t\t#3.入住登记4.退房#"<<endl; cout<<"\t\t#5.退出#"<<endl; cout<<"\t\t#感*谢*您**使*用#"<<endl; cout<<"\t\t###########################################"<<endl; cout<<"请输入选项:"; cin>>chose; while(chose==0) { cout<<"输入错误,按任意键退出程序:"<<endl; exit(0); } }}voidruzhudengji(){ inta,b=0; stringname; ifstreamliulan("宾馆房间信息.txt",ios::in);//定义输入文献流对象,以输入方式打开磁盘文献旅信 if(!liulan)//判断文献与否打开成功 { cerr<<"文献不能读."<<endl;return; } else liulan.seekg(117,ios::beg);//在输入文献开头以参照位置为基本移动若干字节(beg=begin) inti=0;//存储空闲房间号码cout<<"房间号类型价格(元/天)价格(元/小时)空闲"<<endl; while(i<20) { liulan>>hotel[i].num>>hotel[i].leixing>>hotel[i].jiage>>hotel[i].kongxian>>hotel[i].name >>hotel[i].ID>>hotel[i].lianxifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; cout<<setw(4)<<hotel[i].num<<setw(8)<<hotel[i].leixing<<setw(9)<<hotel[i].jiage/100<<setw(14)<<hotel[i].jiage%100<<setw(13) <<hotel[i].kongxian;//输出所有房间信息 i++,cout<<endl; } liulan.close();//关闭文献 cout<<"(注:0表达空房间、1表达房间已入住、2表达房间已预订)"<<endl; cout<<"与否预订过房间?"<<endl; cout<<"是,请输入1,否,请输入2"<<endl; cin>>a; if(a==1) { cout<<"请输入房间号:"<<endl; cin>>b; for(i=0;i<20;i++) if(hotel[i].num==b) { if(hotel[i].yudingriqi!=0) { cout<<"请输入入住日期:"; cin>>hotel[i].ruzhushijian; cout<<"请输入截止日期:"; cin>>hotel[i].jiezhiriqi; hotel[i].yudingriqi=0; } else { cout<<"该房没有被预订过"<<endl; system("pause"); } } } else { cout<<"空房间有:"<<endl; for(intk=0;k<20;k++) { if(hotel[k].kongxian==0) cout<<hotel[k].num<<""; } cout<<endl; cout<<"请输入房间号:"; cin>>b; for(i=0;i<20;i++) if(hotel[i].num==b) { cout<<"请依次输入如下信息并加以核对(日期格式:年月日例如19920503)"<<endl; cout<<"姓名:"; cin>>hotel[i].name; cout<<"身份证号:"; cin>>hotel[i].ID; cout<<"联系方式:"; cin>>hotel[i].lianxifangshi; cout<<"押金:"; cin>>hotel[i].yajin; cout<<"天数:"; cin>>hotel[i].tianshu; cout<<"入住日期:"; cin>>hotel[i].ruzhushijian; hotel[i].kongxian=2; } } ofstreamxieru("宾馆房间信息.txt",ios::out);//写回文献 xieru<<"房间号类型价格与否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期"<<endl; for(i=0;i<20;i++) xieru<<hotel[i].num<<''<<hotel[i].leixing<<''<<hotel[i].jiage<<''<<hotel[i].kongxian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lianxifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; xieru.close(); cout<<"登记成功"<<endl;}voidtuifang(){inta,b; ifstreamfin("宾馆房间信息.txt",ios::in); cout<<"请输入房号:"; cin>>a; intc=0,i=0; fin.seekg(117,ios::beg);//在输入文献开头以参照位置为基本移动若干字节(beg=begin) while(i<20) { fin>>hotel[i].num>>hotel[i].leixing>>hotel[i].jiage>>hotel[i].kongxian>>hotel[i].name >>hotel[i].ID>>hotel[i].lianxifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; if(hotel[i].num==a)//查询客人房间 b=i; i++; } fin.close(); cout<<"房间信息为:"<<endl; cout<<"姓名:押金(元):入住时间:"<<endl; cout<<setw(6)<<hotel[b].name<<setw(8)<<hotel[b].yajin<<setw(20)<<hotel[b].ruzhushijian<<endl; cout<<"(注:日期输入格式年月日例如)"<<endl; cout<<"请输结算入日期:"; intd; cin>>d; hotel[b].jiezhiriqi=d; intfei; cout<<"按小时/天数计费(小时输入1,天数输入2):"; intt; cin>>t; if(t==2) fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage/100));//结算函数,押金—(结算时间-入住时间)*价格 else fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage%100));//按小时计算 if(fei<0) { fei=-fei; cout<<"应付费用为:"<<fei<<"元"<<endl; } else { cout<<"总消费金额为:"<<hotel[b].yajin-fei<<"元"<<endl; cout<<"押金足够应返还给您:"<<fei<<"元"<<endl; } fstreamjsxx("结算信息.txt",ios::out);jsxx<<"消费信息为:"<<endl; jsxx<<"姓名:"<<hotel[b].name<<endl<<"押金(元):"<<hotel[b].yajin<<endl<<"入住时间:"<<hotel[b].ruzhushijian<<endl<<"结算时间:"<<d<<endl;if(t==2) jsxx<<"计费方式:按天数计费"<<endl; else jsxx<<"计费方式:按小时计费"<<endl;jsxx<<"总消费金额为:"<<hotel[b].yajin-fei<<"元"<<endl; jsxx<<"押金足够应返还给您:"<<fei<<"元"<<endl; jsxx.close(); hotel[b].kongxian=0;//房间结算后初始化房间信息 strcpy(hotel[b].name,"0"); strcpy(hotel[b].ID,"0"); strcpy(hotel[b].lianxifangshi,"0"); hotel[b].yudingriqi=0; hotel[b].ruzhushijian=0; hotel[b].jiezhiriqi=0; hotel[b].yajin=0; hotel[b].tianshu=0; hotel[b].jiezhiriqi=0; fstreamxieru("宾馆房间信息.txt",ios::out);//生成文献 xieru<<"房间号类型价格与否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期"<<endl; for(i=0;i<20;i++) { xieru<<hotel[i].num<<''<<hotel[i].leixing<<''<<hotel[i].jiage<<''<<hotel[i].kongxian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lianxifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; } xieru.close(); system("pause");}voidsearch_message()//对房间信息进行查询函数{ voidall_message(); voidempty_message(); voidruzhuxinxi(); voiddingfangxinxi(); cout<<"\t\t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl; cout<<"\t\t%@欢迎使用百康宾馆管理系统@%"<<endl; cout<<"\t\t%请输入您要选取功能%"<<endl; cout<<"\t\t%1.房间应用状况2.空房间信息%"<<endl; cout<<"\t\t%3.入住信息4.订房信息%"<<endl; cout<<"\t\t%5返回主菜单%"<<endl; cout<<"\t\t%感*谢*您**使*用%"<<endl; cout<<"\t\t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl; inti; cout<<"请输入选项:"; cin>>i; while(i!=5) { switch(i)//用switch语句判断选取查询办法 { case1:all_message();break; case2:empty_message();break; case3:ruzhuxinxi();break; case4:dingfangxinxi();break;default:cout<<"输入错误,请重新输入"<<endl;//提示错误命令 } cout<<"\t\t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl; cout<<"\t\t%@欢迎使用百康宾馆管理系统@%"<<endl; cout<<"\t\t%请输入您要选取功能%"<<endl; cout<<"\t\t%1.房间应用状况2.空房间信息%"<<endl; cout<<"\t\t%3.入住信息4.订房信息%"<<endl; cout<<"\t\t%5返回主菜单%"<<endl; cout<<"\t\t%感*谢*您**使*用%"<<endl; cout<<"\t\t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl; cout<<"请输入选项:"; cin>>i; } system("pause"); system("cls");}voidall_message(){ inti=0; ifstreamliulan("宾馆房间信息.txt",ios::in);//用输入输出流自定义信息文献 if(!liulan)//判断文献与否打开成功 { cerr<<"文献不能读."<<endl;return; } else liulan.seekg(117,ios::beg); cout<<"(注:空房间用0表达,已经入住用1表达,订房用2表达)"<<endl; cout<<"房间号类型价格(元/天)价格(元/小时)空闲"<<endl; while(i<20) { liulan>>hotel[i].num>>hotel[i].leixing>>hotel[i].jiage>>hotel[i].kongxian>>hotel[i].name >>hotel[i].ID>>hotel[i].lianxifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; cout<<setw(4)<<hotel[i].num<<setw(8)<<hotel[i].leixing<<setw(10)<<hotel[i].jiage/100<<setw(10)<<hotel[i].jiage%100<<setw(13) <<hotel[i].kongxian;//用setw()进行界面排版 cout<<endl; i++; } system("pause"); liulan.close();}//关闭文献voidempty_message()//显示空房间信息{ ifstreamaa("宾馆房间信息.txt",ios::in); inti=0; cout<<"房间号类型房间价格(元/天)元/小时"<<endl; aa.seekg(117,ios::beg); while(i<20) { aa>>hotel[i].num>>hotel[i].leixing>>hotel[i].jiage>>hotel[i].kongxian>>hotel[i].name >>hotel[i].ID>>hotel[i].lianxifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; if(hotel[i].kongxian==0) cout<<setw(4)<<hotel[i].num<<set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版环保木构建筑合作合同版B版
- 2025年度金融安全保卫劳务派遣服务合同2篇
- 2025版工业厂房买卖合同附设备安装服务3篇
- 2025年度WPS合同管理一体化解决方案集成合同3篇
- 二零二五年度oem合同范本共:化妆品代工生产合作协议2篇
- 2025年度酒吧DJ工作聘用及权益保障协议3篇
- 2024年隧道工程全面承揽协议
- 二零二五年度坂田二期消防安全评估与整改合同3篇
- 2025版企业总部办公场地租赁管理协议书2篇
- 2024版房屋院落租赁合同示例3篇
- 三年级科学上册水和空气复习课教案
- 2017数据中心设计规范
- 能源管理体系培训课件(2023年EnMS)
- 全国普通高校本科专业目录(2023版)
- 助产学导论学习通章节答案期末考试题库2023年
- 宁波大学“一页开卷”考试专用纸
- 新疆维吾尔自治区石河子市初中语文九年级期末高分通关题详细答案和解析
- 空置场地租赁协议
- 三相异步电动机的拆装
- 人教版八年级语文上册期末考试卷及答案
- 软件安全之恶意代码机理与防护-武汉大学中国大学mooc课后章节答案期末考试题库2023年
评论
0/150
提交评论