c宾馆住宿管理系统课程设计.docx
- 文档编号:5879158
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:37
- 大小:408.21KB
c宾馆住宿管理系统课程设计.docx
《c宾馆住宿管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《c宾馆住宿管理系统课程设计.docx(37页珍藏版)》请在冰点文库上搜索。
c宾馆住宿管理系统课程设计
c宾馆住宿管理系统课程设计
学习综合运用C高级语言课程和其他先修课程的知识,提升分析和解决实际咨询题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加大结构化程序设计的思想,加深对高级语言差不多语言要素和操纵结构的明白得。
全面系统的学习面向对象程序设计的差不多概念、差不多语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
把握程序设计中的常用算法和C语言的编程技巧和上机调试程序的方法。
在参与一系列子项目的实践过程中,提升如何综合运用所学知识解决实际咨询题的能力,以及获得有关项目治理和团队合作等众多方面的具体体会。
课程设计的任务
按照如下要求,运用C++语言,编写一套可用的较为完善的宾馆住宿治理系统软件(两人分模块合作)
对宾馆差不多信息【房间数量、房间类不(标间、单间、套房)、收费标准等】在适当范畴内自行规定。
能够实现预定登记、入住登记、退房结算等功能;房间状态(空房、入住、预定)能够以一定方式直观地表现。
能够录入住宿人员信息、运算客户消费总额并生成账单,账单信息存入到磁盘文件当中去。
能够相对灵活地查询房间状态、入住情形、空房情形、预订情形等内容。
能够产生各类报表,如房间信息、入住信息、消费表单等在磁盘文件当中能够查看它们的信息。
三、系统设计方案
3.1系统详细描述
3.1.1系统设计背景
随着人民生活水平的提升,旅行出行的人越来越多,宾馆的客流量持续增加,一般的手写登记太过复杂经常显现信息丢失,也不适合现在的节约型社会的进展,宾馆在正常运营中需要对客房资源、顾客信息、退房信息等进行治理,利用客房治理系统及时了解各个环节中信息的变更,有利于提升治理的效率。
本项目作为c++课程设计的训练项目提出,目的是为了提升同学们系统的开发,则提升大伙儿的实践能力。
因此开发一个符合自身宾馆实际情形的工作平台是十分必要的。
3.1.2系统设计详细信息
系统使用对象设定为百康宾馆。
百康宾馆是一家乡镇中小型宾馆,三层建筑,拥有各类房间共20间。
其中一层均为单人间,共9间,房号101-109;二层为均双人间,共6间,房号201-206;三层均为豪华套房,共5间,房号301-305。
各类房间均设有电视、橱柜、内网电话、风扇、暖气等基础设施,24小时热水供应,可淋浴。
一层前台处设有便利商店,当时结算,不计入住宿账单。
可通过内网电话购买,免费送至房间。
按天计费,标准为单人间170元/天,双人间280元/天,豪华套房500元/天。
按小时计费,标准为单人间20元/小时,双人间30元/小时,豪华套房50元/小时。
注:
定金数额可在以上标准数额之上,退房结算时多退少补。
退房时,室内设施经确认无损坏情形,则不收取房屋设施折损费。
3.2功能模块划分
3.2.1功能模块描述
按照任务内容要求及宾馆有关情形等信息,百康宾馆住宿治理系统需要实现查询功能(包括客房总体使用情形查询、已入住客房查询、已预订客房查询、闲置房间信息查询等查询方式),订房登记,入住登记,退房结算等四大差不多功能。
系统应实现对各类信息的灵活查找,客户信息的录入、储存与调用,自动结算并生成账单等操作。
为了简化前台人员操作并提升其工作效率,还应实现开始前初始化询咨询,订房或入住登记时自动显示当前闲置房间,入住前询咨询是否已预订,输入错误信息时进行提醒等人性化功能。
由以上分析,将系统要紧分为以下四大功能模块,如图3.1所示:
客房查询:
包括查询客房总体使用情形、查询当前闲置房间信息、查询已入住房间信息、查询已预定房间信息等查询功能;
订房登记:
包括显示当前闲置房间信息、登记预定信息等功能;
入住登记:
包括显示当前房间总体使用情形、询咨询是否预定过房间、登记入住人信息等功能;
退房结算:
包括选择结算方式、输入结算时刻、运算住宿费用等功能。
图3.1功能模块结构图
注:
我与网络工程专业102001班王维康同学合作,共同完成此次有关于宾馆住宿治理系统的程序设计,我负责实现入住登记模块、退房结算模;王维康同学负责编写客房查询和订房登记两个模块的有关内容。
3.2.2输入项
以下输入项均为键盘输入:
num——房间号,int
kongxian——房间是否闲暇,int
name[20]——名字定义,charname[20]
ID[20]——身份证号(18位阿拉伯数字),charID[20]
lianxifangshi[15]——联系方式(11位阿拉伯数字),charlianxifangshi[15]
yajin——押金,int
yudingriqi——预定日期(日期均为8位阿拉伯数字,格式为年月日),long
ruzhushijian——入住日期,long
tianshu——估量天数,int
jiezhiriqi——截止日期,long
p——是否初始化(0或1),int
chose——选择主菜单(1,2,3,4或5),int
t——计费方式(1或2),int
i——子菜单选择(1,2,3,4或5)(不同模块可能定义不同),int
a——是否预定过房间(在ruzhudengji()定义的),int
3.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###########################################"< cout<<"\t\t#@欢迎使用百康宾馆治理系统@#"< cout<<"\t\t#请输入您所需要的功能: #"< cout<<"\t\t#1.客房查询2.订房登记#"< cout<<"\t\t#3.入住登记4.退房#"< cout<<"\t\t#5.退出#"< cout<<"\t\t#感*谢*您*的*使*用#"< cout<<"\t\t###########################################"< } voidchushihua() { inti[3]={1,0,1},k=0; for(;k<20;k++) { switch(i[0]) { } if(k==8) i[0]++,i[2]=0; if(k==14) i[0]++,i[2]=0; i[2]++; } fstreamxieru("宾馆房间信息.txt",ios: : out); xieru<<"房间号类型价格是否闲暇姓名身份证号联系方式押金预定日期入住时刻天数截止日期"< for(intx=0;x<20;x++) { } xieru.close(); } voidmain() { intp=0; cout<<"是否要初始化房间信息? "; cout<<"(是请输入1,否请输入0)"< 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<<"输入错误,请重新输入"< } cout<<"\t\t###########################################"< cout<<"\t\t#@欢迎使用百康宾馆治理系统@#"< cout<<"\t\t#请输入您所需要的功能: #"< cout<<"\t\t#1.客房查询2.订房登记#"< cout<<"\t\t#3.入住登记4.退房#"< cout<<"\t\t#5.退出#"< cout<<"\t\t#感*谢*您*的*使*用#"< cout<<"\t\t###########################################"< cout<<"请输入选项: "; cin>>chose; while(chose==0) { cout<<"输入错误,按任意键退出程序: "< 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<<"文件不能读."< } else liulan.seekg(117,ios: : beg);//在输入文件开头以参照位置为基础移动若干字节(beg=begin) inti=0;//存放闲暇房间的号码 cout<<"房间号类型价格(元/天)价格(元/小时)闲暇"< while(i<20) { i++,cout< } liulan.close();//关闭文件 cout<<"(注: 0表示空房间、1表示房间已入住、2表示房间已预订)"< cout<<"是否预订过房间? "< cout<<"是,请输入1,否,请输入2"< cin>>a; if(a==1) { cout<<"请输入房间号: "< cin>>b; for(i=0;i<20;i++) { { cout<<"请输入入住日期: "; cout<<"请输入截止日期: "; } else { cout<<"该房没有被预订过"< system("pause"); } } } else { cout<<"空房间有: "< for(intk=0;k<20;k++) { } cout< cout<<"请输入房间号: "; cin>>b; for(i=0;i<20;i++) { cout<<"请依次输入以下信息并加以核对(日期格式: 年月日例如19920503)"< cout<<"姓名: "; cout<<"身份证号: "; cout<<"联系方式: "; cout<<"押金: "; cout<<"天数: "; cout<<"入住日期: "; } } ofstreamxieru("宾馆房间信息.txt",ios: : out);//写回文件 xieru<<"房间号类型价格是否闲暇姓名身份证号联系方式押金预定日期入住时刻天数截止日期"< for(i=0;i<20;i++) xieru.close(); cout<<"登记成功"< }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) { b=i; i++; } fin.close(); cout<<"房间信息为: "< cout<<"姓名: 押金(元): 入住时刻: "< cout<<"(注: 日期输入格式年月日例如20120101)"< cout<<"请输结算入日期: "; intd; cin>>d; intfei; cout<<"按小时/天数计费(小时输入1,天数输入2): "; intt; cin>>t; if(t==2) else if(fei<0) { fei=-fei; cout<<"应对费用为: "< } else { cout<<"押金足够应返还给您: "< } fstreamjsxx("结算信息.txt",ios: : out); jsxx<<"消费信息为: "< if(t==2) jsxx<<"计费方式: 按天数计费"< else jsxx<<"计费方式: 按小时计费"< jsxx<<"押金足够应返还给您: "< jsxx.close(); fstreamxieru("宾馆房间信息.txt",ios: : out);//生成文件 xieru<<"房间号类型价格是否闲暇姓名身份证号联系方式押金预定日期入住时刻天数截止日期"< for(i=0;i<20;i++) { } 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++程序设计.北京: 清华大学出版社.2011 [2]郑莉.C++程序设计(第三版).北京: 清华大学出版社.2005 [3]钞票能.C++程序设计教程.北京: 清华大学出版社.2004 [4]武俊亮.visualc++课程设计与系统开发案例.北京: 清华出版社 [5]黄维通.VisualC++程序设计教程.北京: 清华大学出版社.2005 七、附录: 程序代码 #include #include #include #include usingnamespacestd; voidsearch_message(); voiddingfangdengji(); voidruzhudengji(); voidtuifang(); voidall_message(); voidempty_message(); voidruzhixinxi(); voiddingfangxinxi(); { intnum; charleixing[10]; intjiage; intkongxian; charname[20]; charID[20]; charlianxifangshi[15]; intyajin; longyudingriqi; longruzhushijian; inttianshu; longjiezhiriqi; } voidMenu_Display() { system("cls"); cout<<"\t\t###########################################"< cout<<"\t\t#@欢迎使用百康宾馆治理系统@#"< cout<<"\t\t#请输入您所需要的功能: #"< cout<<"\t\t#1.客房查询2.订房登记#"< cout<<"\t\t#3.入住登记4.退房#"< cout<<"\t\t#5.退出#"< cout<<"\t\t#感*谢*您*的*使*用#"< cout<<"\t\t###########################################"< } voidchushihua() { inti[3]={1,0,1},k=0; for(;k<20;k++) { switch(i[0]) { } if(k==8) i[0]++,i[2]=0; if(k==14) i[0]++,i[2]=0; i[2]++; } fstreamxieru("宾馆房间信息.txt",ios: : out); xieru<<"房间号类型价格是否闲暇姓名身份证号联系方式押金预定日期入住时刻天数截止日期"< for(intx=0;x<20;x++) { } xieru.close(); } voidmain() { intp=0; cout<<"是否要初始化房间信息? "; cout<<"(是请输入1,否请输入0)"< 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<<"输入错误,请重新输入"< } cout<<"\t\t###########################################"< cout<<"\t\t#@欢迎使用百康宾馆治理系统@#"< cout<<"\t\t#请输入您所需要的功能: #"< cout<<"\t\t#1.客房查询2.订房登记#"< cout<<"\t\t#3.入住登记4.退房#"< cout<<"\t\t#5.退出#"< cout<<"\t\t#感*谢*您*的*使*用#"< cout<<"\t\t###########################################"< cout<<"请输入选项: "; cin>>chose; while(chose==0) { cout<<"输入错误,按任意键退出程序: "< exit(0); } } } voidruzhudengji() { inta,b=0; stringname; ifstreamliulan("宾馆房间信息.txt",ios: : in);//定义输入文件流对象,以输入方式打开磁盘文件旅信 if(! liulan)//判定文件是否打开成功 { cerr<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 住宿 管理 系统 课程设计