c++酒店管理系统课程设计报告_第1页
c++酒店管理系统课程设计报告_第2页
c++酒店管理系统课程设计报告_第3页
c++酒店管理系统课程设计报告_第4页
c++酒店管理系统课程设计报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.PAGE1面向对象程序设计II课程设计指导书题目:宾馆管理系统学院:计算机科学与工程学院专业:软件工程班级:133301**:201335032013349020133482:王帅俊甘雨指导老师:旭明一、课程设计的目的学习综合运用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功能模块结构图3.2.2输入项以下输入项均为键盘输入:num——房间号,intkong*ian——房间是否空闲,intname[20]——名字定义,charname[20]ID[20]——号(18位阿拉伯数字),charID[20]lian*ifangshi[15]——联系方式(11位阿拉伯数字), charlian*ifangshi[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房间类型, charlei*ing[10]价格(元/天),int价格(元/小时),int是否空闲,int客人,charname[20],charID[20]联系方式,charlian*ifangshi[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].kong*ian=0; strcpy(hotel[k].lian*ifangshi,"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].lei*ing,"单人间");break;} case2:{hotel[k].jiage=28030;strcpy(hotel[k].lei*ing,"双人间");break;} case3:{hotel[k].jiage=50050;strcpy(hotel[k].lei*ing,"套房");break;} } if(k==8) i[0]++,i[2]=0; if(k==14) i[0]++,i[2]=0; i[2]++; } fstream*ieru("宾馆房间信息.t*t",ios::out); *ieru<<"房间号类型价格是否空闲号联系方式押金预定日期入住时间天数截止日期"<<endl;for(int*=0;*<20;*++) {*ieru<<hotel[*].num<<''<<hotel[*].lei*ing<<''<<hotel[*].jiage<<''<<hotel[*].kong*ian<<''<<hotel[*].name <<''<<hotel[*].ID<<''<<hotel[*].lian*ifangshi<<''<<hotel[*].yajin<<''<<hotel[*].yudingriqi<<''<<hotel[*].ruzhushijian <<''<<hotel[*].tianshu<<''<<hotel[*].jiezhiriqi<<endl; } *ieru.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:e*it(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; e*it(0); } }}4.1.3主菜单模块测试主菜单界面中显示客房管理系统的功能选项模块如图4.2所示:图4.2主菜单4.2入住登记模块实现4.2.1入住登记流程图图4.3入住登记流程图4.2.2入住登记代码voidruzhudengji(){ inta,b=0; stringname; ifstreamliulan("宾馆房间信息.t*t",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].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>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].lei*ing<<setw(9)<<hotel[i].jiage/100<<setw(14)<<hotel[i].jiage%100<<setw(13) <<hotel[i].kong*ian;//输出所有房间信息 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].kong*ian==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].lian*ifangshi; cout<<"押金:"; cin>>hotel[i].yajin; cout<<"天数:"; cin>>hotel[i].tianshu; cout<<"入住日期:"; cin>>hotel[i].ruzhushijian; hotel[i].kong*ian=2; } } ofstream*ieru("宾馆房间信息.t*t",ios::out);//写回文件 *ieru<<"房间号类型价格是否空闲号联系方式押金预定日期入住时间天数截止日期"<<endl; for(i=0;i<20;i++) *ieru<<hotel[i].num<<''<<hotel[i].lei*ing<<''<<hotel[i].jiage<<''<<hotel[i].kong*ian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lian*ifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; *ieru.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("宾馆房间信息.t*t",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].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>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<<"(注:日期输入格式年月日例如20120101)"<<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; } fstreamjs**("结算信息.t*t",ios::out);js**<<"消费信息为:"<<endl; js**<<":"<<hotel[b].name<<endl<<"押金(元):"<<hotel[b].yajin<<endl<<"入住时间:"<<hotel[b].ruzhushijian<<endl<<"结算时间:"<<d<<endl;if(t==2) js**<<"计费方式:按天数计费"<<endl; else js**<<"计费方式:按小时计费"<<endl;js**<<"总消费金额为:"<<hotel[b].yajin-fei<<"元"<<endl; js**<<"押金足够应返还给您:"<<fei<<"元"<<endl; js**.close(); hotel[b].kong*ian=0;//房间结算后初始化房间信息 strcpy(hotel[b].name,"0"); strcpy(hotel[b].ID,"0"); strcpy(hotel[b].lian*ifangshi,"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; fstream*ieru("宾馆房间信息.t*t",ios::out);//生成文件 *ieru<<"房间号类型价格是否空闲号联系方式押金预定日期入住时间天数截止日期"<<endl; for(i=0;i<20;i++) { *ieru<<hotel[i].num<<''<<hotel[i].lei*ing<<''<<hotel[i].jiage<<''<<hotel[i].kong*ian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lian*ifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; } *ieru.close(); system("pause");}4.3.3退房结算模块测试选择退房功能输入房间号则会显示出客人的基本信息如图4.10所示;根据系统提示输入结算日期并选择结算方式则“结算结束”如图4.11和图4.12所示。账单信息存入到磁盘文件当中去,如图4.13所示。图4.10退房结算输入结算房间号后界面图图4.11退房结算输入日期界面图4.12退房结算完成界面图4.13退房结算信息文件五、附录:程序代码*include<iostream>*include<iomanip>//输出流控制*include<string>*include<fstream>//输入输出文件流usingnamespacestd;voidsearch_message();voiddingfangdengji();voidruzhudengji();voidtuifang();voidall_message();voidempty_message();voidruzhi*in*i();voiddingfang*in*i();structhotel//定义结构体{ intnum; charlei*ing[10]; intjiage; intkong*ian; charname[20]; charID[20]; charlian*ifangshi[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].kong*ian=0; strcpy(hotel[k].lian*ifangshi,"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].lei*ing,"单人间");break;} case2:{hotel[k].jiage=28030;strcpy(hotel[k].lei*ing,"双人间");break;} case3:{hotel[k].jiage=50050;strcpy(hotel[k].lei*ing,"套房");break;} } if(k==8) i[0]++,i[2]=0; if(k==14) i[0]++,i[2]=0; i[2]++; } fstream*ieru("宾馆房间信息.t*t",ios::out); *ieru<<"房间号类型价格是否空闲号联系方式押金预定日期入住时间天数截止日期"<<endl;for(int*=0;*<20;*++) {*ieru<<hotel[*].num<<''<<hotel[*].lei*ing<<''<<hotel[*].jiage<<''<<hotel[*].kong*ian<<''<<hotel[*].name<<''<<hotel[*].ID<<''<<hotel[*].lian*ifangshi<<''<<hotel[*].yajin<<''<<hotel[*].yudingriqi<<''<<hotel[*].ruzhushijian <<''<<hotel[*].tianshu<<''<<hotel[*].jiezhiriqi<<endl; } *ieru.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:e*it(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; e*it(0); } }}voidruzhudengji(){ inta,b=0; stringname; ifstreamliulan("宾馆房间信息.t*t",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].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>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].lei*ing<<setw(9)<<hotel[i].jiage/100<<setw(14)<<hotel[i].jiage%100<<setw(13) <<hotel[i].kong*ian;//输出所有房间信息 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].kong*ian==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].lian*ifangshi; cout<<"押金:"; cin>>hotel[i].yajin; cout<<"天数:"; cin>>hotel[i].tianshu; cout<<"入住日期:"; cin>>hotel[i].ruzhushijian; hotel[i].kong*ian=2; } } ofstream*ieru("宾馆房间信息.t*t",ios::out);//写回文件 *ieru<<"房间号类型价格是否空闲号联系方式押金预定日期入住时间天数截止日期"<<endl; for(i=0;i<20;i++) *ieru<<hotel[i].num<<''<<hotel[i].lei*ing<<''<<hotel[i].jiage<<''<<hotel[i].kong*ian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lian*ifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; *ieru.close(); cout<<"登记成功"<<endl;}voidtuifang(){inta,b; ifstreamfin("宾馆房间信息.t*t",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].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>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<<"(注:日期输入格式年月日例如20120101)"<<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; } fstreamjs**("结算信息.t*t",ios::out);js**<<"消费信息为:"<<endl; js**<<":"<<hotel[b].name<<endl<<"押金(元):"<<hotel[b].yajin<<endl<<"入住时间:"<<hotel[b].ruzhushijian<<endl<<"结算时间:"<<d<<endl;if(t==2) js**<<"计费方式:按天数计费"<<endl; else js**<<"计费方式:按小时计费"<<endl;js**<<"总消费金额为:"<<hotel[b].yajin-fei<<"元"<<endl; js**<<"押金足够应返还给您:"<<fei<<"元"<<endl; js**.close(); hotel[b].kong*ian=0;//房间结算后初始化房间信息 strcpy(hotel[b].name,"0"); strcpy(hotel[b].ID,"0"); strcpy(hotel[b].lian*ifangshi,"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; fstream*ieru("宾馆房间信息.t*t",ios::out);//生成文件 *ieru<<"房间号类型价格是否空闲号联系方式押金预定日期入住时间天数截止日期"<<endl; for(i=0;i<20;i++) { *ieru<<hotel[i].num<<''<<hotel[i].lei*ing<<''<<hotel[i].jiage<<''<<hotel[i].kong*ian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lian*ifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; } *ieru.close(); system("pause");}voidsearch_message()//对房间信息进行查询的函数{ voidall_message(); voidempty_message(); voidruzhu*in*i(); voiddingfang*in*i(); 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:ruzhu*in*i();break; case4:dingfang*in*i();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("宾馆房间信息.t*t",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].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>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].lei*ing<<setw(10)<<hotel[i].jiage/100<<setw(10)<<hotel[i].jiage%100<<setw(13) <<hotel[i].kong*ian;//用setw()进行界面排版 cout<<endl; i++; } system("pause"); liulan.close();}//关闭文件voidempty_message()//显示空房间信息{ ifstreamaa("宾馆房间信息.t*t",ios::in); inti=0; cout<<"房间号类型房间价格(元/天)元/小时"<<endl; aa.seekg(117,ios::beg); while(i<20) { aa>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; if(hotel[i].kong*ian==0) cout<<setw(4)<<hotel[i].num<<setw(13)<<hotel[i].lei*ing<<setw(10)<<hotel[i].jiage/100<<setw(12)<<hotel[i].jiage%100<<endl; i++; } aa.close();}voidruzhu*in*i(){ ifstreamfin("宾馆房间信息.t*t",ios::in); inti=0; fin.seekg(117,ios::beg); while(i<20) { fin>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; i++; } fin.close(); i=0; cout<<"入住信息表:"<<endl; cout<<"房间号类型号联系方式押金入住日期天数截止日期"<<endl; while(i<20) { if(hotel[i].jiezhiriqi!=0) cout<<setw(4)<<hotel[i].num<<setw(8)<<hotel[i].lei*ing<<setw(10)<<hotel[i].name<<setw(20) <<hotel[i].ID<<setw(13)<<hotel[i].lian*ifangshi<<setw(8)<<hotel[i].yajin <<setw(12)<<hotel[i].ruzhushijian<<setw(10)<<hotel[i].tianshu<<setw(10)<<hotel[i].jiezhiriqi<<endl; i++; } cout<<"显示完毕"<<endl; system("pause");}voiddingfang*in*i(){ ifstreamfin("宾馆房间信息.t*t",ios::in); inti=0; fin.seekg(117,ios::beg); while(i<20) { fin>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>ho

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论