c宾馆住宿管理系统课程设计

上传人:栀**** 文档编号:60217396 上传时间:2022-03-07 格式:DOC 页数:42 大小:865KB
收藏 版权申诉 举报 下载
c宾馆住宿管理系统课程设计_第1页
第1页 / 共42页
c宾馆住宿管理系统课程设计_第2页
第2页 / 共42页
c宾馆住宿管理系统课程设计_第3页
第3页 / 共42页
资源描述:

《c宾馆住宿管理系统课程设计》由会员分享,可在线阅读,更多相关《c宾馆住宿管理系统课程设计(42页珍藏版)》请在装配图网上搜索。

1、一、课程设计的目的1) 学习综合运用 C 高级语言课程和其他先修课程的知识, 提高分析和解决实际问题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。2) 全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。3) 掌握程序设计中的常用算法和 C 语言的编程技巧和上机调试程序的方法。4) 在参与一系列子项目的实践过程中, 提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。二、课程设计的任务按照如下要求,运用 C

2、+语言,编写一套可用的较为完善的宾馆住宿管理系统软件(两人分模块合作)1)对宾馆基本信息【房间数量、房间类别(标间、单间、套房)、收费标准等】在1适当范围内自行规定。2) 能够实现预定登记、入住登记、退房结算等功能;房间状态(空房、入住、预定)能够以一定方式直观地表现。3) 能够录入住宿人员信息、计算客户消费总额并生成账单 , 账单信息存入到磁盘文件当中去。4) 能够相对灵活地查询房间状态、 入住情况、空房情况、预订情况等内容。5) 能够产生各类报表,如房间信息、入住信息、消费表单等在磁盘文件当中可以查看它们的信息。三、系统设计方案3.1 系统详细描述系统设计背景随着人民生活水平的提高,旅游出

3、行的人越来越多,宾馆的客流量不断增加,普通的手写登记太过复杂经常出现信息丢失, 也不适合现在的节约型社会的发展, 宾馆在正常运营中需要对客房资源、 顾客信息、退房信息等进行管理, 利用客房管理系统及时了解各个环节中信息的变更,有利于提高管理的效率。 本项目作为 c+课程设计的训练项目提出, 目的是为了提高同学们系统的开发, 则提高大家的实践能力。 所以开发一个符合自身宾馆实际情况的工作平台是十分必要的。系统设计详细信息系统使用对象设定为百康宾馆。百康宾馆是一家乡镇中小型宾馆,三层建筑,拥有各类房间共 20 间。其中一层均为单人间,共 9 间,房号 101-109;二层为均双人间,共 6 间,房

4、号 201-206;三层均为豪华套房,共 5 间,房号 301-305 。2各类房间均设有电视、橱柜、内网电话、风扇、暖气等基础设施,24 小时热水供应,可淋浴。一层前台处设有便捷商店,当时结算,不计入住宿账单。可通过内网电话购买,免费送至房间。A、收费标准:有按天计费和按小时计费两种收费标准。按天计费,标准为单人间170 元 / 天,双人间 280 元/ 天,豪华套房 500 元/ 天。按小时计费 , 标准为单人间20 元 / 小时,双人间 30 元/ 小时,豪华套房50 元 / 小时。B、计时标准:按天计费时,从0 时至次日 0 时计一天,不满一天按一天计算;按小时计费时,不满一小时按一小

5、时计费。 (特殊情形的优惠政策不在本设计考虑范围之内)C、定金标准:入住定金按(预计入住时间* 其单日房费 +500 元)收取,退房时充作房费和房屋设施折损费(抵偿损坏的房内设施),多退少补。预定定金(按预计订房时间 * 对应房间按天计算住宿价格*40%)收取,若到时不入住且不续订, 则不再退还;若到时入住,充作入住定金,多退少补。电话预定无需缴纳定金,但不确保届时有空房间。注:定金数额可在以上标准数额之上,退房结算时多退少补。退房时,室内设施经确认无损坏情况,则不收取房屋设施折损费。3.2 功能模块划分功能模块描述根据任务内容要求及宾馆相关情况等信息,百康宾馆住宿管理系统需要实现查询功能(包

6、括客房总体使用情况查询、已入住客房查询、已预订客房查询、闲置房间信息查询等查询方式),订房登记,入住登记,退房结算等四大基本功能。系统应实现对各类信息的灵活查找, 客户信息的录入、 保存与调用,自动结算并生成账单等操作。33.1 所示:为了简化前台人员操作并提高其工作效率,还应实现开始前初始化询问,订房或入住登记时自动显示当前闲置房间,入住前询问是否已预订, 输入错误信息时进行提醒等人性化功能。由以上分析,将系统主要分为以下四大功能模块,如图1) 客房查询:包括查询客房总体使用情况、查询当前闲置房间信息、查询已入住房间信息、查询已预定房间信息等查询功能;2) 订房登记:包括显示当前闲置房间信息

7、、 登记预定信息等功能;3) 入住登记:包括显示当前房间总体使用情况、询问是否预定过房间、登记入住人信息等功能;4) 退房结算:包括选择结算方式、 输入结算时间、 计算住宿费用等功能。百康宾馆住宿管理系订房登记入住登记客房查询退房结算客已已闲房预入置总订住房体房房间信间间信息信信息查息息查询查查询询询4图 3.1 功能模块结构图注:我与网络工程专业 102001 班王维康同学合作,共同完成本次有关于宾馆住宿管理系统的程序设计, 我负责实现入住登记模块、 退房结算模; 王维康同学负责编写客房查询和订房登记两个模块的相关内容。输入项以下输入项均为键盘输入:num房间号,intkongxian 房间

8、是否空闲,intname20 名字定义,char name20ID20 身份证号( 18 位阿拉伯数字),char ID20lianxifangshi15联系方式( 11 位阿拉伯数字), char lianxifangshi15yajin 押金, int5yudingriqi预定日期(日期均为8 位阿拉伯数字,格式为年月日) , longruzhushijian入住日期,longtianshu 预计天数,intjiezhiriqi截止日期,longp是否初始化( 0 或 1), intchose选择主菜单( 1,2,3,4或 5), intt 计费方式( 1 或 2), inti 子菜单选择

9、( 1,2,3,4或 5)(不同模块可能定义不同) , inta是否预定过房间(在ruzhudengji()定义的),int输出项房间号, int房间类型,char leixing10价格 ( 元/ 天) , int价格 ( 元/ 小时 ),int是否空闲, int客人姓名, char name20身份证, char ID20联系方式, charlianxifangshi15押金 ( 元) , int预定日期, long入住时间, long预计天数, int截止日期, long6四、系统实现与测试4.1 主菜单模块实现7主菜单流程图Y调用房间是否为“ 1”查询函数NY调用订房是否为“ 2”登记

10、函数NY调用入住是否为“ 3”登记函数N调用退房Y是否为“ 4”结算函数开始输出“提示”输入“ p值”P是否为 1Y调用 chushihua ()调用 Menu_Display()函数输出“提示”输入 chose值YChose! =0N输出“提示”输入“按任意键”结束N输出“提示”NN是否为“ 5”Y8图 4.1 主菜单流程图主菜单代码void Menu_Display()system(cls);couttt#endl;couttt#欢迎使用百康宾馆管理系统#endl;couttt#请输入您所需要的功能:#endl;couttt#1.客房查询2.订房登记#endl;couttt#3.入住登记4

11、.退房#endl;couttt#5. 退出#endl;couttt#感* 谢* 您 *的* 使* 用#endl;couttt#endl;void chushihua()int i3=1,0,1,k=0;for(;k20;k+)hotelk.num=i0*100+i1*10+i2;strcpy(hotelk.ID,0);hotelk.jiezhiriqi=0;hotelk.kongxian=0;strcpy(hotelk.lianxifangshi,0);strcpy(hotelk.name,0);hotelk.ruzhushijian=0;hotelk.tianshu=0;hotelk.yud

12、ingriqi=0;switch(i0)case 1:hotelk.jiage=17020;strcpy(hotelk.leixing, 单人间 );break; case 2:hotelk.jiage=28030;strcpy(hotelk.leixing, 双人间 );break; case 3:hotelk.jiage=50050;strcpy(hotelk.leixing, 套房 );break; if(k=8)i0+,i2=0;9if(k=14)i0+,i2=0;i2+;fstreamxieru( 宾馆房间信息.txt,ios:out);xieru 房间号类型价格是否空闲姓名身份证号

13、联系方式押金预定日期入住时间天数截止日期endl;for(int x=0;x20;x+)xieruhotelx.num hotelx.leixing hotelx.jiage hotelx.kongxian hotelx.name hotelx.ID hotelx.lianxifangshi hotelx.yajin hotelx.yudingriqi hotelx.ruzhushijian hotelx.tianshu hotelx.jiezhiriqiendl;xieru.close();void main()int p=0;cout 是否要初始化房间信息?;cout( 是请输入1,否请输

14、入0)p;if(p=1)chushihua();int chose;Menu_Display();coutchose;while(chose!=0)switch(chose)/ 用 switch 语句判断选择菜单的功能case 1:search_message();break; /客房查询case 2:dingfangdengji();break;/ 订房间case 3:ruzhudengji();break;/ 入住房间case 4:tuifang();break;/ 退房case 5:exit(0);default:cout 输入错误,请重新输入endl; / 提示错误命令10couttt

15、#endl;couttt#欢迎使用百康宾馆管理系统#endl;couttt#请输入您所需要的功能:#endl;couttt#1.客房查询2.订房登记#endl;couttt#3.入住登记4.退房#endl;couttt#5. 退出#endl;couttt#感 * 谢* 您 *的* 使* 用#endl;couttt#endl;coutchose;while(chose=0)cout 输入错误,按任意键退出程序:endl;exit(0);主菜单模块测试主菜单界面中显示客房管理系统的功能选项模块如图4.2 所示:图 4.2 主菜单114.2 入住登记模块实现12入住登记流程图开始输出“房间使用情况”

16、输出“提示”输入“ a值”a= =1Y输出“提示”N输出“房间信息”输出“提示”输入“房间号”输入N“房间号”hoteli.num= =bY输出“提示”预订房客人信息输出“提示”输出“提示”输入“所要填写的信息”信息存储到磁盘文件中登记成功结束图 4.3 入住登记流程图输入客人的基本信息13入住登记代码void ruzhudengji()int a,b=0;string name;ifstream liulan( 宾馆房间信息 .txt,ios:in);/定义输入文件流对象, 以输入方式打开磁盘文件旅信if(!liulan)/判断文件是否打开成功cerr文件不能读 .endl;return;e

17、lseliulan.seekg(117,ios:beg);/在输入文件开头以参照位置为基础移动若干字节(beg=begin)int i=0;/存放空闲房间的号码cout房间号类型价格 (元 /天)价格 (元/小时 )空闲endl;while (ihoteli.numhoteli.leixinghoteli.jiagehoteli.kongxianhoteli.n amehoteli.IDhoteli.lianxifangshihoteli.yajinhoteli.yudingriqihoteli.r uzhushijianhoteli.tianshuhoteli.jiezhiriqi;cout

18、setw(4)hoteli.numsetw(8)hoteli.leixingsetw(9)hoteli.jiage/10 0setw(14)hoteli.jiage%100setw(13)hoteli.kongxian;/输出所有房间信息i+,coutendl;liulan.close();/关闭文件cout(注: 0 表示空房间、 1 表示房间已入住、 2 表示房间已预订) endl;cout是否预订过房间? endl;cout是,请输入 1,否,请输入 2a;if(a=1)14cout请输入房间号: b;for(i=0;i20;i+)if(hoteli.num=b)if(hoteli.yu

19、dingriqi!=0)couthoteli.ruzhushijian;couthoteli.jiezhiriqi;hoteli.yudingriqi=0;elsecout该房没有被预订过 endl;system(pause);elsecout空房间有: endl;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;couth

20、oteli.ID;couthoteli.lianxifangshi;15couthoteli.yajin;couthoteli.tianshu;couthoteli.ruzhushijian;hoteli.kongxian=2;ofstream xieru(宾馆房间信息 .txt,ios:out);/写回文件xieru 房间号类型价格 是否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期endl;for(i=0;i20;i+)xieruhoteli.numhoteli.leixinghoteli.jiagehoteli.kongxian hoteli.namehoteli.IDhote

21、li.lianxifangshihoteli.yajinhoteli.yudingriqi hoteli.ruzhushijian hoteli.tianshu hoteli.jiezhiriqiendl; xieru.close();cout登记成功 endl; 入住登记模块测入住登记界面显示了房间使用情况以及提示以前是否预订过房间如图4.4 所示:16图 4.4 入住登记界面如果客人预定过房间,则选择“ 1”,然后输入预订房间号如图 4.5 所示。输入入住日期和截止日期则“登记成功”如图 4.6 所示。图 4.5 选择订过房间入住登记界面17图 4.6 订过房间入住登记界面未预订过房间则选

22、择“ 2” 则会显示出目前的空房间信息如图 4.7 所示,根据系统提示输入客人的信息则“登记成功”如图 4.8 所示。图 4.7 选择未订过房间入住登记界面18图 4.8 选择未订过房间入住登记输入信息界面4.3 退房结算模块实现退房结算流程图19开始输出“提示”输入“房间号”查找该房间信息输出该房间信息输出“提示”输入“结算日期”输出“提示”输入“t 值”YNt= =2天数计算方法小时计算方法信息存储道磁盘文件当中去输出“计算结束”结束图 4.9 退房结算流程图20退房结算代码void tuifang()int a,b;ifstreamfin( 宾馆房间信息 .txt,ios:in);cou

23、ta;int c=0,i=0;fin.seekg(117,ios:beg);/ 在输入文件开头以参照位置为基础移动若干字节( beg=begin)while(ihoteli.numhoteli.leixinghoteli.jiagehoteli.kongxianhoteli.namehoteli.IDhoteli.lianxifangshihoteli.yajinhoteli.yudingriqihoteli.ruzhushijianhoteli.tianshuhoteli.jiezhiriqi;if(hoteli.num=a)/查询客人房间b=i;i+;fin.close();cout 房间

24、信息为 :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)fei=hotelb.yajin-(hotelb.jiezhiriqi-hotelb.ruzhushijian)*(hotelb.jiage/100);/ 结 算 函21数,押金(结算时间-入住时间) * 价格el

25、sefei=hotelb.yajin-(hotelb.jiezhiriqi-hotelb.ruzhushijian)*(hotelb.jiage%100);/按小时计算if(fei0)fei=-fei;cout 应付费用为 :fei 元 endl;elsecout 总消费金额为:hotelb.yajin-fei元 endl;cout 押金足够应返还给您:fei 元endl;fstream jsxx( 结算信息 .txt,ios:out);jsxx 消费信息为 :endl;jsxx 姓名: hotelb.nameendl押金(元): hotelb.yajinendl入住时间:hotelb.ruz

26、hushijianendl 结算时间: dendl; if(t=2)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;h

27、otelb.jiezhiriqi=0;hotelb.yajin=0;hotelb.tianshu=0;hotelb.jiezhiriqi=0;fstreamxieru( 宾馆房间信息.txt,ios:out);/ 生成文件xieru 房间号类型价格是否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期endl;for(i=0;i20;i+)xieruhoteli.num hoteli.leixing hoteli.jiage hoteli.kongxian hoteli.name22hoteli.IDhoteli.lianxifangshihoteli.yajinhoteli.yudin

28、griqi hoteli.ruzhushijian hoteli.tianshu hoteli.jiezhiriqiendl;xieru.close();system(pause);退房结算模块测试选择退房功能输入房间号则会显示出客人的基本信息如图4.10 所示;根据系统提示输入结算日期并选择结算方式则“结算结束”如图4.11 和图 4.12 所示。账单信息存入到磁盘文件当中去,如图4.13 所示。图 4.10 退房结算输入结算房间号后界面图23图 4.11 退房结算输入日期界面图 4.12 退房结算完成界面图 4.13 退房结算信息文件五、程序调试中出现的问题及解决方法在调试程序过程中频繁出

29、现的问题就是分号的丢失以及书写程序中一些最基本24的字符要求没有正确的书写, 导致一个程序里出现了大量的错误, 在改错时吸取教训为后期的工作节省了很多时间, 在整个程序运行时, 由于有的函数之定义了, 而后面却没有见这个函数写完, 导致整个程序无法运行, 开始解决的时候是将此函数全部清除然后运行整个程序,后来在将函数写完整放进大的程序中去进行运行。在入住登记调试程序时, 房间信息显示出现了无限循环的情况, 经过对语句的分析 , 发 现 是 后 面 的 i+ 书 写 错 误 导 致 的 , 经 过 修 改 后 错 误 排 出 了 。有时还会出现程序成功运行后,但是在dos 界面选择一些功能时出现

30、无限循环,解决的方法是先看所写的循环语句是否出现错误, Debug/宾馆住宿管理系统 .exe : fatal error LNK1120: 1 unresolved externals,运行错误提示,也总是出现,经过上网查询找出解决方法原因是设置的参数有问题。六、参考文献1 谭浩强 .C+程序设计 . 北京:清华大学出版社 . 20112 郑莉 .C+程序设计(第三版) . 北京:清华大学出版社 . 20053 钱能 .C+程序设计教程 . 北京:清华大学出版社 . 20044 武俊亮 .visual c+课程设计与系统开发案例 . 北京:清华出版社5 黄维通 .Visual C+ 程序设计

31、教程 . 北京:清华大学出版社 . 2005七、附录:程序代码#include#include/ 输出流控制#include#include/ 输入输出文件流using namespace std;void search_message();void dingfangdengji();void ruzhudengji();void tuifang();void all_message();void empty_message();25void ruzhixinxi();void dingfangxinxi();struct hotel/定义结构体int num;char leixing10;i

32、nt jiage;int kongxian;char name20;char ID20;char lianxifangshi15;int yajin;long yudingriqi;long ruzhushijian;int tianshu;long jiezhiriqi;hotel20;void Menu_Display()system(cls);couttt#endl;couttt#欢迎使用百康宾馆管理系统#endl;couttt#请输入您所需要的功能:#endl;couttt#1.客房查询2.订房登记#endl;couttt#3.入住登记4.退房#endl;couttt#5. 退出#en

33、dl;couttt#感 * 谢* 您 *的* 使* 用#endl;couttt#endl;void chushihua()int i3=1,0,1,k=0;for(;k20;k+)hotelk.num=i0*100+i1*10+i2;strcpy(hotelk.ID,0);26hotelk.jiezhiriqi=0;hotelk.kongxian=0;strcpy(hotelk.lianxifangshi,0);strcpy(hotelk.name,0);hotelk.ruzhushijian=0;hotelk.tianshu=0;hotelk.yudingriqi=0;switch(i0)c

34、ase 1:hotelk.jiage=17020;strcpy(hotelk.leixing, 单人间 );break; case 2:hotelk.jiage=28030;strcpy(hotelk.leixing, 双人间 );break; case 3:hotelk.jiage=50050;strcpy(hotelk.leixing, 套房 );break;if(k=8)i0+,i2=0;if(k=14)i0+,i2=0;i2+;fstreamxieru( 宾馆房间信息.txt,ios:out);xieru 房间号类型价格是否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期end

35、l;for(int x=0;x20;x+)xieruhotelx.num hotelx.leixing hotelx.jiage hotelx.kongxian hotelx.name hotelx.ID hotelx.lianxifangshi hotelx.yajin hotelx.yudingriqi hotelx.ruzhushijian hotelx.tianshu hotelx.jiezhiriqiendl;xieru.close();void main()int p=0;cout 是否要初始化房间信息?;cout( 是请输入1,否请输入0)p;if(p=1)chushihua()

36、;int chose;Menu_Display();27coutchose;while(chose!=0)switch(chose)/ 用 switch 语句判断选择菜单的功能case 1:search_message();break; /客房查询case 2:dingfangdengji();break;/ 订房间case 3:ruzhudengji();break;/ 入住房间case 4:tuifang();break;/ 退房case 5:exit(0);default:cout 输入错误,请重新输入endl; / 提示错误命令couttt#endl;couttt#欢迎使用百康宾馆管理

37、系统#endl;couttt#请输入您所需要的功能:#endl;couttt#1.客房查询2.订房登记#endl;couttt#3.入住登记4.退房#endl;couttt#5. 退出#endl;couttt#感 * 谢* 您 *的* 使* 用#endl;couttt#endl;coutchose;while(chose=0)cout 输入错误,按任意键退出程序:endl;exit(0);void ruzhudengji()int a,b=0;string name;ifstream liulan( 宾馆房间信息.txt,ios:in);/定义输入文件流对象,以输入方式打开磁盘文件旅信28if(!liulan)/ 判断文件是否打开成功cerr 文件不能读 .endl;return;elseliulan.seekg(117,ios:beg);/ 在输入文件开头以参照位置为基础移动若干字节(beg=begin)int i=0;/ 存放空闲房间的号码cout 房间号类型价格 ( 元/天 )价格 (元 /小时 )空闲endl;while (ihoteli.numhoteli.leixinghoteli.jiagehoteli.kongxianhoteli.namehoteli.IDhoteli.

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!