c++酒店管理系统课程设计.pdf
《c++酒店管理系统课程设计.pdf》由会员分享,可在线阅读,更多相关《c++酒店管理系统课程设计.pdf(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.面向对象程序设计面向对象程序设计 II II课程设计指导书课程设计指导书题目:题目:宾馆管理系统宾馆管理系统学院:学院:计算机科学与工程学院计算机科学与工程学院专业:专业:软件工程软件工程班级:班级:133301133301学号:学号:201335032013350320133490 2013348220133490 20133482:王帅:王帅俊俊甘雨甘雨指导老师:指导老师:旭明旭明Word专业资料.设计日期:设计日期:2015.6.24-2015.6.302015.6.24-2015.6.30一、课程设计的目的一、课程设计的目的1)学习综合运用 C 高级语言课程和其他先修课程的知识,提高
2、分析和解决实际问题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。3)掌握程序设计中的常用算法和 C 语言的编程技巧和上机调试程序的方法。4)在参与一系列子项目的实践过程中,提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。二、课程设计的任务按照如下要求,运用 C+语言,编写一套可用的较为完善的宾馆住宿管理系统软件(两人分模块合作)1)对宾馆基本信息【
3、房间数量、房间类别(标间、单间、套房)、收费标准等】在适当围自行规定。2)能够实现预定登记、入住登记、退房结算等功能;房间状态(空房、入住、预定)能够以一定方式直观地表现。Word专业资料.3)能够录入住宿人员信息、计算客户消费总额并生成账单,账单信息存入到磁盘文件当中去。4)能够相对灵活地查询房间状态、入住情况、空房情况、预订情况等容。5)能够产生各类报表,如房间信息、入住信息、消费表单等在磁盘文件当中可以查看它们的信息。三、系统设计方案3.1 系统详细描述3.1.1 系统设计背景随着人民生活水平的提高,旅游出行的人越来越多,宾馆的客流量不断增加,普通的手写登记太过复杂经常出现信息丢失,也不
4、适合现在的节约型社会的发展,宾馆在正常运营中需要对客房资源、顾客信息、退房信息等进行管理,利用客房管理系统及时了解各个环节息的变更,有利于提高管理的效率。本项目作为 c+课程设计的训练项目提出,目的是为了提高同学们系统的开发,则提高大家的实践能力。所以开发一个符合自身宾馆实际情况的工作平台是十分必要的。3.1.2 系统设计详细信息系统使用对象设定为百康宾馆。百康酒店是一家乡镇中小型宾馆,三层建筑,拥有各类房间共 20 间。其中一层均为单人间,共 9 间,房号 101-109;二层为均双人间,共 6 间,房号 201-206;三层均为豪华套房,共 5 间,房号 301-305。Word专业资料.
5、各类房间均设有电视、橱柜、网、风扇、暖气等基础设施,24 小时热水供应,可淋浴。一层前台处设有便捷商店,当时结算,不计入住宿账单。可通过网购买,免费送至房间。A、收费标准:有按天计费和按小时计费两种收费标准。按天计费,标准为单人间 170 元/天,双人间 280 元/天,豪华套房 500 元/天。按小时计费,标准为单人间 20 元/小时,双人间30 元/小时,豪华套房50 元/小时。B、计时标准:按天计费时,从0 时至次日 0 时计一天,不满一天按一天计算;按小时计费时,不满一小时按一小时计费。(特殊情形的优惠政策不在本设计考虑围之)C、定金标准:入住定金按(预计入住时间*其单日房费+500
6、元)收取,退房时充作房费和房屋设施折损费(抵偿损坏的房设施),多退少补。预定定金(按预计订房时间*对应房间按天计算住宿价格*40%)收取,若到时不入住且不续订,则不再退还;若到时入住,充作入住定金,多退少补。预定无需缴纳定金,但不确保届时有空房间。注:定金数额可在以上标准数额之上,退房结算时多退少补。退房时,室设施经确认无损坏情况,则不收取房屋设施折损费。Word专业资料.3.2 功能模块划分3.2.1 功能模块描述根据任务容要求及宾馆相关情况等信息,百康宾馆住宿管理系统需要实现查询功能(包括客房总体使用情况查询、已入住客房查询、已预订客房查询、闲置房间信息查询等查询方式),订房登记,入住登记
7、,退房结算等四大基本功能。系统应实现对各类信息的灵活查找,客户信息的录入、保存与调用,自动结算并生成账单等操作。为了简化前台人员操作并提高其工作效率,还应实现开始前初始化询问,订房或入住登记时自动显示当前闲置房间,入住前询问是否已预订,输入错误信息时进行提醒等人性化功能。由以上分析,将系统主要分为以下四大功能模块,如图 3.1 所示:1)客房查询:包括查询客房总体使用情况、查询当前闲置房间信息、查询已入住房间信息、查询已预定房间信息等查询功能;2)订房登记:包括显示当前闲置房间信息、登记预定信息等功能;3)入住登记:包括显示当前房间总体使用情况、询问是否预定过房间、登记入住人信息等功能;4)退
8、房结算:包括选择结算方式、输入结算时间、计算住宿费用等功能。Word专业资料.百康宾馆住宿管理系订房登记入住登记客房查询退房结算客房总体信息查询已预订房间信息查询已入住房间信息查询闲置房间信息查询图 3.1 功能模块结构图3.2.2 输入项以下输入项均为键盘输入:num房间号,intkongxian房间是否空闲,intname20名字定义,char name20ID20号(18 位阿拉伯数字),char ID20lianxifangshi15联系方式(11 位阿拉伯数字),char lianxifangshi15yajin押金,intyudingriqi预定日期(日期均为 8 位阿拉伯数字,格
9、式为年月日),longWord专业资料.ruzhushijian入住日期,longtianshu预计天数,intjiezhiriqi截止日期,longp是否初始化(0 或 1),intchose选择主菜单(1,2,3,4 或 5),intt计费方式(1 或 2),inti子菜单选择(1,2,3,4 或 5)(不同模块可能定义不同),a是否预定过房间(在 ruzhudengji()定义的),int3.2.3 输出项房间号,int房间类型,char leixing10价格(元/天),int价格(元/小时),int是否空闲,int客人,char name20,char ID20联系方式,charli
10、anxifangshi15押金(元),int预定日期,long入住时间,longWord专业资料int.预计天数,int截止日期,long四、系统实现与测试4.1 主菜单模块实现Word专业资料.4.1.1 主菜单流程图开始输出“提示”输入“p值”NP是否为1Y调用chushihua()调用Menu_Display()函数输出“提示”输入chose值Y是否为“1”N调用订房登记函数Y是否为“2”N调用入住登记函数Y是否为“3”N调用退房结算函数Y是否为“4”输入“按任意键”输出“提示”调用房间查询函数YChose!=0NN输出“提示”N是否为“5”Y结束Word专业资料.图 4.1 主菜单流程
11、图4.1.2 主菜单代码void Menu_Display()void chushihua()system(cls);couttt#endl;couttt#欢迎使用百康宾馆管理系统#endl;couttt#请输入您所需要的功能:#endl;couttt#1.客房查询2.订房登记#endl;couttt#3.入住登记4.退房#endl;couttt#5.退出#endl;couttt#感*您*的*使*用#endl;couttt#endl;Word专业资料.int i3=1,0,1,k=0;for(;k20;k+)hotelk.num=i0*100+i1*10+i2;strcpy(hotelk.ID
12、,0);hotelk.jiezhiriqi=0;hotelk.kongxian=0;strcpy(hotelk.lianxifangshi,0);strcpy(hotelk.name,0);hotelk.ruzhushijian=0;hotelk.tianshu=0;hotelk.yudingriqi=0;switch(i0)case 1:hotelk.jiage=17020;strcpy(hotelk.leixing,单人间);break;case 2:hotelk.jiage=28030;strcpy(hotelk.leixing,双人间);break;case 3:hotelk.jiag
13、e=50050;strcpy(hotelk.leixing,套房);break;if(k=8)i0+,i2=0;if(k=14)Word专业资料.i0+,i2=0;i2+;fstreamxieru(宾馆房间信息.txt,ios:out);xieru房间号类型价格是否空闲号联系方式押金预定日期入住时间天数截止日期 endl;for(int x=0;x20;x+)hotelx.leixinghotelx.jiagexieruhotelx.numhotelx.kongxian hotelx.namehotelx.ID hotelx.lianxifangshi hotelx.yajinhotelx.y
14、udingriqi hotelx.ruzhushijianvoid main()int p=0;cout是否要初始化房间信息?;xieru.close();hotelx.tianshu hotelx.jiezhiriqiendl;Word专业资料.cout(是请输入 1,否请输入 0)p;if(p=1)chushihua();int chose;Menu_Display();coutchose;while(chose!=0)switch(chose)/用 switch 语句判断选择菜单的功能case 1:search_message();break;/客房查询case 2:dingfangde
15、ngji();break;/订房间case 3:ruzhudengji();break;/入住房间case 4:tuifang();break;/退房case 5:exit(0);default:cout输入错误,请重新输入endl;/提示错误命令couttt#endl;couttt#欢迎使用百康宾馆管理系统#endl;Word专业资料.couttt#请输入您所需要的功能:#endl;couttt#1.客房查询2.订房登记#endl;couttt#3.入住登记4.退房#endl;couttt#5.退出#endl;couttt#感*您*的*使*用#endl;couttt#endl;while(c
16、hose=0)cout输入错误,按任意键退出程序:endl;exit(0);coutchose;Word专业资料.4.1.3 主菜单模块测试主菜单界面中显示客房管理系统的功能选项模块如图 4.2 所示:Word专业资料.图 4.2 主菜单4.2 入住登记模块实现Word专业资料.4.2.1 入住登记流程图开始输出“房间使用情况”输出“提示”输入“a值”a=1NY输出“提示”输出“房间信息”输出“提示”输入“房间号”输入“房间号”Nhoteli.num=bY预订房客人信息输出“提示”输出“提示”输出“提示”输入客人的基本信息输入“所要填写的信息”信息存储到磁盘文件中登记成功结束Word专业资料.
17、图 4.3 入住登记流程图4.2.2 入住登记代码void ruzhudengji()int a,b=0;string name;ifstream liulan(宾馆房间信息.txt,ios:in);/定义输入文件流对象,以输入方式打开磁盘文件旅信if(!liulan)/判断文件是否打开成功elseliulan.seekg(117,ios:beg);/在输入文件开头以参照位置为基础移动若干cerr文件不能读.endl;return;字节(beg=begin)int i=0;/存放空闲房间的cout 房间号类型价格(元/天)价格(元/小 时)空闲endl;while(ihoteli.numhot
18、eli.leixinghoteli.jiagehoteli.kongxianhoteli.namehoteli.IDhoteli.lianxifangshihoteli.yajinhoteli.yudingriqihoteli.ruzhushijiancoutsetw(4)hoteli.numsetw(8)hoteli.leixingsetw(9)hoteli.tianshuhoteli.jiezhiriqi;oteli.jiage/100setw(14)hoteli.jiage%100setw(13)liulan.close();/关闭文件cout(注:0 表示空房间、1 表示房间已入住、2
19、 表示房间已预订)endl;cout是否预订过房间?endl;cout是,请输入 1,否,请输入 2a;if(a=1)hoteli.kongxian;/输出所有房间信息i+,coutendl;Word专业资料.cout请输入房间号:b;for(i=0;i20;i+)if(hoteli.num=b)elseWord专业资料if(hoteli.yudingriqi!=0)couthoteli.ruzhushijian;couthoteli.jiezhiriqi;hoteli.yudingriqi=0;elsecout该房没有被预订过endl;system(pause);.cout空房间有:endl
20、;for(int k=0;k20;k+)if(hotelk.kongxian=0)couthotelk.num;coutendl;coutb;for(i=0;i20;i+)if(hoteli.num=b)cout请依次输入以下信息并加以核对19920503)endl;couthoteli.name;couthoteli.ID;couthoteli.lianxifangshi;Word专业资料(日期格式:年月日 例如.couthoteli.yajin;couthoteli.tianshu;couthoteli.ruzhushijian;hoteli.kongxian=2;ofstream xie
21、ru(宾馆房间信息.txt,ios:out);/写回文件xieru房间号 类型价格 是否空闲号联系方式押金预定日期入住时间天数截止日期 endl;for(i=0;i20;i+)xieruhoteli.numhoteli.leixinghoteli.jiagehoteli.kongxian hoteli.namehoteli.IDhoteli.lianxifangshihoteli.yajin hoteli.yudingriqi hoteli.ruzhushijian hoteli.tianshu hoteli.jiezhiriqiendl;xieru.close();cout登记成功hotel
22、i.numhoteli.leixinghoteli.jiagehoteli.kongxianhoteli.nifstreamfin(宾馆房间信息.txt,ios:in);couta;int c=0,i=0;fin.seekg(117,ios:beg);/在输入文件开头以参照位置为基础移动若干字节(beg=begin)while(ihoteli.IDhoteli.lianxifangshihoteli.yajinhoteli.yudingriqihoteli.ruzhushijianhoteli.tianshuhoteli.jiezhiriqi;if(hoteli.num=a)/查询客人房间Wo
23、rd专业资料.b=i;i+;fin.close();cout房间信息为:endl;cout:押金(元):入住时间:endl;coutsetw(6)hotelb.namesetw(8)hotelb.yajinsetw(20)hotelb.ruzhushijianendl;cout(注:日期输入格式 年月日 例如 20120101)endl;coutd;hotelb.jiezhiriqi=d;int fei;coutt;if(t=2)Word专业资料.fei=hotelb.yajin-(hotelb.jiezhiriqi-hotelb.ruzhushijian)*(hotelb.jiage/100
24、);/结算函数,押金(结算时间-入住时间)*价格fei=hotelb.yajin-(hotelb.jiezhiriqi-hotelb.ruzhushijian)*(hotelb.jiage%100);else/按小时计算if(fei0)elsefstream jsxx(结算信息.txt,ios:out);cout总消费金额为:hotelb.yajin-fei元endl;cout押金足够 应返还给您:fei元endl;fei=-fei;cout应付费用为:fei元endl;jsxx消费信息为:endl;jsxx:hotelb.nameendl押金(元):hotelb.yajinendl入住时间:
25、hotelb.ruzhushijianendl结算时间:dendl;if(t=2)Word专业资料.jsxx计费方式:按天数计费endl;elsejsxx计费方式:按小时计费endl;jsxx总消费金额为:hotelb.yajin-fei元endl;jsxx押金足够 应返还给您:fei元endl;jsxx.close();hotelb.kongxian=0;化房间信息strcpy(hotelb.name,0);strcpy(hotelb.ID,0);strcpy(hotelb.lianxifangshi,0);hotelb.yudingriqi=0;hotelb.ruzhushijian=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 酒店 管理 系统 课程设计
限制150内