




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 面向对象程序设计II 课程设计指导书 题目: 宾馆管理系统学院: 计算机科学与工程学院专业: 软件工程 班级: 133301学号: 20133503 20133490 20133482姓名:王帅 刘俊 甘雨指导老师: 韩旭明设计日期:2015。6.24-2015。6.30一、课程设计的目的1) 学习综合运用C高级语言课程和其他先修课程的知识,提高分析和解决实际问题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。2) 全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调
2、好的程序设计风格。3) 掌握程序设计中的常用算法和C语言的编程技巧和上机调试程序的方法.4) 在参与一系列子项目的实践过程中,提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。2、 课程设计的任务按照如下要求,运用C+语言,编写一套可用的较为完善的宾馆住宿管理系统软件(两人分模块合作)1) 对宾馆基本信息【房间数量、房间类别(标间、单间、套房)、收费标准等】在适当范围内自行规定.2) 能够实现预定登记、入住登记、退房结算等功能;房间状态(空房、入住、预定)能够以一定方式直观地表现。3) 能够录入住宿人员信息、计算客户消费总额并生成账单,账单信息存入
3、到磁盘文件当中去.4) 能够相对灵活地查询房间状态、入住情况、空房情况、预订情况等内容。5) 能够产生各类报表,如房间信息、入住信息、消费表单等在磁盘文件当中可以查看它们的信息。三、系统设计方案3。1系统详细描述3。1.1系统设计背景随着人民生活水平的提高,旅游出行的人越来越多,宾馆的客流量不断增加,普通的手写登记太过复杂经常出现信息丢失,也不适合现在的节约型社会的发展,宾馆在正常运营中需要对客房资源、顾客信息、退房信息等进行管理,利用客房管理系统及时了解各个环节中信息的变更,有利于提高管理的效率. 本项目作为c+课程设计的训练项目提出,目的是为了提高同学们系统的开发,则提高大家的实践能力.所
4、以开发一个符合自身宾馆实际情况的工作平台是十分必要的。3。1。2系统设计详细信息系统使用对象设定为百康宾馆。百康酒店是一家乡镇中小型宾馆,三层建筑,拥有各类房间共20间。其中一层均为单人间,共9间,房号101-109;二层为均双人间,共6间,房号201-206;三层均为豪华套房,共5间,房号301-305。各类房间均设有电视、橱柜、内网电话、风扇、暖气等基础设施,24小时热水供应,可淋浴.一层前台处设有便捷商店,当时结算,不计入住宿账单。可通过内网电话购买,免费送至房间。A、收费标准:有按天计费和按小时计费两种收费标准。按天计费,标准为单人间 170元/天,双人间280元/天,豪华套房500元
5、/天。按小时计费,标准为单人间20元/小时,双人间30元/小时,豪华套房50元/小时。B、计时标准:按天计费时,从0时至次日0时计一天,不满一天按一天计算;按小时计费时,不满一小时按一小时计费。(特殊情形的优惠政策不在本设计考虑范围之内)C、定金标准:入住定金按(预计入住时间其单日房费+500元)收取,退房时充作房费和房屋设施折损费(抵偿损坏的房内设施),多退少补。预定定金(按预计订房时间对应房间按天计算住宿价格40%)收取,若到时不入住且不续订,则不再退还;若到时入住,充作入住定金,多退少补。电话预定无需缴纳定金,但不确保届时有空房间。注:定金数额可在以上标准数额之上,退房结算时多退少补。
6、退房时,室内设施经确认无损坏情况,则不收取房屋设施折损费.3。2功能模块划分3.2。1功能模块描述根据任务内容要求及宾馆相关情况等信息,百康宾馆住宿管理系统需要实现查询功能(包括客房总体使用情况查询、已入住客房查询、已预订客房查询、闲置房间信息查询等查询方式),订房登记,入住登记,退房结算等四大基本功能。系统应实现对各类信息的灵活查找,客户信息的录入、保存与调用,自动结算并生成账单等操作。为了简化前台人员操作并提高其工作效率,还应实现开始前初始化询问,订房或入住登记时自动显示当前闲置房间,入住前询问是否已预订,输入错误信息时进行提醒等人性化功能。由以上分析,将系统主要分为以下四大功能模块,如图
7、3.1所示:1) 客房查询:包括查询客房总体使用情况、查询当前闲置房间信息、查询已入住房间信息、查询已预定房间信息等查询功能;2) 订房登记:包括显示当前闲置房间信息、登记预定信息等功能;3) 入住登记:包括显示当前房间总体使用情况、询问是否预定过房间、登记入住人信息等功能;4) 退房结算:包括选择结算方式、输入结算时间、计算住宿费用等功能。百康宾馆住宿管理系订房登记入住登记客房查询退房结算客房总体信息查询已预订房间信息查询已入住房间信息查询闲置房间信息查询图3.1功能模块结构图3.2.2输入项以下输入项均为键盘输入:num-房间号 ,intkongxian房间是否空闲 ,int name20
8、-名字定义, char name20 ID20-身份证号(18位阿拉伯数字),char ID20lianxifangshi15-联系方式(11位阿拉伯数字),char lianxifangshi15yajin押金, int yudingriqi预定日期(日期均为8位阿拉伯数字,格式为年月日), long ruzhushijian入住日期 ,long tianshu预计天数, int jiezhiriqi-截止日期 ,long p是否初始化(0或1), intchose选择主菜单(1,2,3,4或5), intt计费方式(1或2), inti-子菜单选择(1,2,3,4或5)(不同模块可能定义不
9、同), inta-是否预定过房间(在ruzhudengji()定义的),int3。2。3输出项房间号, int房间类型 ,char leixing10价格(元/天), int价格(元/小时) ,int是否空闲 ,int客人姓名,char name20身份证,char ID20联系方式 ,charlianxifangshi15押金(元), int预定日期 ,long入住时间 ,long预计天数, int截止日期, long四、系统实现与测试4.1主菜单模块实现4。1.1主菜单流程图图4。1主菜单流程图4.1。2主菜单代码void Menu_Display()system("cls”);
10、cout<"tt#"<endl;cout<<"tt# 欢迎使用百康宾馆管理系统 ”endl;cout<<"tt 请输入您所需要的功能: #"<endl;cout"tt 1。客房查询 2.订房登记 "endl;cout<<”tt 3。入住登记 4.退 房 #"<endl;cout<”tt 5. 退 出 #"<endl;cout<"tt 感 * 谢 您 的 使 * 用 #”<endl;cout<"tt
11、#”endl;void chushihua()int i3=1,0,1,k=0;for(;k<20;k+)hotelk。num=i0*100+i110+i2;strcpy(hotelk。ID,”0");hotelk。jiezhiriqi=0;hotelk.kongxian=0;strcpy(hotelk。lianxifangshi,"0");strcpy(,"0");hotelk。ruzhushijian=0;hotelk.tianshu=0;hotelk.yudingriqi=0;switch(i0)case 1:
12、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+;fstream xieru("宾馆房间信息.txt”,ios:out);xieru<"房间号 类型 价格 是否空闲 姓名 身份证号
13、 联系方式 押金 预定日期 入住时间 天数 截止日期 ”<<endl; for(int x=0;x20;x+) xieruhotelx.num<' <<hotelx.leixing' '<hotelx。jiage<' '<hotelx。kongxian' '<<' <hotelx。ID<< hotelx.lianxifangshi<<' <hotelx。yajin<' <<hote
14、lx.yudingriqi<' <hotelx.ruzhushijian <hotelx.tianshu< hotelx。jiezhiriqi<endl; xieru.close();void main()int p=0;cout<"是否要初始化房间信息?";cout<”(是请输入1,否请输入0)”<endl;cin>p;if(p=1)chushihua();int chose;Menu_Display();cout"请输入选项:";cinchose;while(chose!=0) switc
15、h(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; /提示错误命令 cout”tt#"<endl;cout<<”tt 欢迎使用百康宾馆管理系统 #”<endl;cout<<&qu
16、ot;tt 请输入您所需要的功能: #”<endl;cout"tt# 1.客房查询 2.订房登记 #"<endl;cout"tt# 3.入住登记 4.退 房 #"<endl;cout<"tt 5。 退 出 "endl;cout<<"tt# 感 谢 您 * 的 * 使 * 用 #"<<endl;cout”tt#"<<endl;cout<<”请输入选项:”;cin>chose;while(chose=0)cout<"
17、输入错误,按任意键退出程序:”<endl;exit(0);4。1。3主菜单模块测试主菜单界面中显示客房管理系统的功能选项模块如图4.2所示:图4.2主菜单4。2入住登记模块实现4。2.1入住登记流程图图4。3入住登记流程图4。2。2入住登记代码void ruzhudengji()int a,b=0;string name;ifstream liulan(”宾馆房间信息。txt”,ios::in); /定义输入文件流对象,以输入方式打开磁盘文件旅信if(!liulan) /判断文件是否打开成功cerr<<"文件不能读。"endl;return;elseliu
18、lan.seekg(117,ios:beg);/在输入文件开头以参照位置为基础移动若干字节(beg=begin)int i=0; /存放空闲房间的号码 cout”房间号 类型 价格(元/天) 价格(元/小时) 空闲 "<endl;while (i<20)liulan>>hoteli。num>hoteli。leixing>>hoteli.IDhoteli.lianxifangshi>hoteli.yajin>hoteli。yudingriqi>hote
19、li.ruzhushijian>hoteli.tianshu>hoteli。jiezhiriqi;coutsetw(4)<<hoteli。num<<setw(8)<hoteli.leixing<<setw(9)<<hoteli.jiage/100<setw(14)hoteli。jiage100setw(13)<hoteli。kongxian; /输出所有房间信息i+,cout<endl;liulan.close(); /关闭文件cout<”(注:0表示空房间、1表示房间已入住、2表示房间已预订)"
20、;<<endl;cout"是否预订过房间?"<endl;cout<"是,请输入1,否,请输入2”<endl;cin>a;if(a=1)cout<”请输入房间号:"<endl;cinb;for(i=0;i<20;i+)if(hoteli。num=b)if(hoteli.yudingriqi!=0)cout<”请输入入住日期:";cinhoteli。ruzhushijian;cout<"请输入截止日期:”;cin>hoteli.jiezhiriqi;hoteli.yu
21、dingriqi=0;elsecout<”该房没有被预订过"<endl;system(”pause");elsecout”空房间有:"<endl;for(int k=0;k<20;k+)if(hotelk。kongxian=0)cout<hotelk.num<<" ”;cout<<endl;cout<"请输入房间号:";cinb;for(i=0;i<20;i+)if(hoteli.num=b)cout”请依次输入以下信息并加以核对 (日期格式:年月日 例如 199205
22、03 )”<endl;cout”姓 名:”;;cout<<”身份证号:”;cin>>hoteli.ID;cout”联系方式:”;cin>>hoteli。lianxifangshi;cout<"押金:”;cinhoteli。yajin;cout<"天 数:"cinhoteli。tianshu;cout<”入住日期:";cin>>hoteli。ruzhushijian;hoteli。kongxian=2;ofstream xieru("宾馆房间信息。
23、txt",ios::out); /写回文件xieru<<"房间号 类型 价格 是否空闲 姓名 身份证号 联系方式 押金 预定日期 入住时间 天数 截止日期 "<endl;for(i=0;i<20;i+)xieru<hoteli.num< <hoteli.leixing' hoteli.jiage<< hoteli.kongxian< <<< <hoteli。ID<< <hoteli。lianxifangshi' '&l
24、t;hoteli.yajin<' '<<hoteli.yudingriqi< <hoteli.ruzhushijian 'hoteli。tianshu<' '<hoteli.jiezhiriqi<endl; xieru.close();cout"登记成功”<<endl;4。2.3入住登记模块测入住登记界面显示了房间使用情况以及提示以前是否预订过房间如图4.4所示:图4。4入住登记界面如果客人预定过房间,则选择“1”,然后输入预订房间号如图4。5所示。输入入住日期和截止日期则“登记成功”
25、如图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退房结算代码void tuifang() int a,b;ifstream fin(”宾馆房间信息。txt”,ios::in);cout"请输入房号:";cin>>a;int c=0,i=0;fin.seekg(
26、117,ios:beg);/在输入文件开头以参照位置为基础移动若干字节(beg=begin)while(i20)fin>hoteli.numhoteli。leixing>>hoteli.jiage>hoteli。kongxian>>>hoteli。IDhoteli.lianxifangshihoteli.yajin>>hoteli。yudingriqi>>hoteli.ruzhushijianhoteli。tianshu>>hoteli.jiezhiriqi;if(hoteli。num=a) /
27、查询客人房间b=i;i+;fin。close();cout"房间信息为:"<<endl;cout<” 姓名: 押金(元): 入住时间: ”<<endl;coutsetw(6)<setw(8)<hotelb。yajinsetw(20)<hotelb。ruzhushijian<endl;cout"(注:日期输入格式 年月日 例如 20120101 )”<endl;cout<<”请输结算入日期:”;int d;cind;hotelb。jiezhiriqi=d;int fei;c
28、out"按小时/天数计费(小时输入1,天数输入2):";int t;cin>>t;if(t=2)fei=hotelb。yajin-((hotelb.jiezhiriqihotelb.ruzhushijian)*(hotelb。jiage/100); /结算函数,押金(结算时间-入住时间)*价格elsefei=hotelb.yajin((hotelb.jiezhiriqi-hotelb.ruzhushijian)*(hotelb。jiage100)); /按小时计算if(fei0)fei=-fei;cout<"应付费用为:"<fei
29、<<”元"<<endl;elsecout<<"总消费金额为:"<<hotelb.yajin-fei<"元”<endl;cout<<"押金足够 应返还给您:"<fei<”元"<<endl;fstream jsxx("结算信息。txt”,ios::out); jsxx”消费信息为:"<endl;jsxx"姓名:"<<endl<"押金(元):
30、"<hotelb.yajin<endl"入住时间:”<hotelb.ruzhushijian<<endl<”结算时间:”<<dendl; if(t=2)jsxx<"计费方式:按天数计费”<endl;elsejsxx<<”计费方式:按小时计费"<<endl; jsxx”总消费金额为:”<<hotelb.yajin-fei<”元"endl;jsxx”押金足够 应返还给您:”<fei”元"<endl;jsxx.close();h
31、otelb。kongxian=0; /房间结算后初始化房间信息strcpy(,"0");strcpy(hotelb.ID,"0");strcpy(hotelb.lianxifangshi,"0");hotelb。yudingriqi=0;hotelb。ruzhushijian=0;hotelb.jiezhiriqi=0;hotelb。yajin=0;hotelb.tianshu=0;hotelb。jiezhiriqi=0;fstream xieru(”宾馆房间信息。txt",ios:out);/生成文件
32、xieru<<”房间号 类型 价格 是否空闲 姓名 身份证号 联系方式 押金 预定日期 入住时间 天数 截止日期 "endl;for(i=0;i20;i+)xieru<hoteli。num<' <hoteli。leixing<< '<hoteli.jiage '<<hoteli.kongxian<<' << <hoteli。ID<' hoteli.lianxifangshi 'hoteli。yajin<< &
33、lt;hoteli.yudingriqi< '<hoteli。ruzhushijian<<' 'hoteli。tianshu< '<hoteli。jiezhiriqi<endl; xieru.close();system(”pause");4.3。3退房结算模块测试选择退房功能输入房间号则会显示出客人的基本信息如图4.10所示;根据系统提示输入结算日期并选择结算方式则“结算结束”如图4.11和图4。12所示。账单信息存入到磁盘文件当中去,如图4。13所示。图4.10退房结算输入结算房间号后界面图图4。11退房结
34、算输入日期界面图4。12退房结算完成界面图4.13退房结算信息文件五、附录:程序代码#includeiostreamincludeiomanip> /输出流控制#include<string>#include<fstream /输入输出文件流using namespace std;void search_message();void dingfangdengji();void ruzhudengji();void tuifang();void all_message();void empty_message();void ruzhixinxi();void dingfa
35、ngxinxi();struct hotel /定义结构体int num;char leixing10;int 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”);cout<"tt#”<<endl;cout”tt 欢迎使用百康宾馆管理系统 #”<<endl;co
36、ut<<”tt 请输入您所需要的功能: #"<endl;cout<”tt# 1。客房查询 2。订房登记 "endl;cout<<”tt 3。入住登记 4.退 房 ”<endl;cout<”tt 5。 退 出 #”<endl;cout<”tt 感 * 谢 * 您 的 * 使 用 ”endl;cout<”tt#”<endl;void chushihua()int i3=1,0,1,k=0;for(;k20;k+)hotelk.num=i0100+i110+i2;strcpy(hotelk。ID,"
37、0”);hotelk.jiezhiriqi=0;hotelk。kongxian=0;strcpy(hotelk.lianxifangshi,”0");strcpy(,"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,”双人
38、间”);break;case 3:hotelk。jiage=50050;strcpy(hotelk.leixing,”套房");break;if(k=8)i0+,i2=0;if(k=14)i0+,i2=0;i2+;fstream xieru(”宾馆房间信息.txt”,ios:out);xieru”房间号 类型 价格 是否空闲 姓名 身份证号 联系方式 押金 预定日期 入住时间 天数 截止日期 "<endl; for(int x=0;x20;x+) xieru<hotelx。num< <hotelx。leixing<' '<
39、hotelx。jiage< <hotelx。kongxian<<' <' '<hotelx.ID<' <hotelx。lianxifangshi< <hotelx.yajin<' 'hotelx。yudingriqi<< 'hotelx.ruzhushijian< <<hotelx。tianshu<' '<hotelx.jiezhiriqi<endl; xieru。close();void
40、 main()int p=0;cout<"是否要初始化房间信息?"cout<”(是请输入1,否请输入0)”endl;cin>p;if(p=1)chushihua();int chose;Menu_Display();cout"请输入选项:”;cin>chose;while(chose!=0) switch(chose)/用switch语句判断选择菜单的功能case 1:search_message();break; /客房查询case 2:dingfangdengji();break;/订房间case 3:ruzhudengji();bre
41、ak;/入住房间case 4:tuifang();break;/退房case 5:exit(0); default:cout<”输入错误,请重新输入"<endl; /提示错误命令 cout"tt#"<endl;cout<"tt# 欢迎使用百康宾馆管理系统 #”endl;cout<<”tt 请输入您所需要的功能: #"endl;cout<<”tt# 1.客房查询 2.订房登记 "endl;cout<"tt 3。入住登记 4。退 房 #”endl;cout<<”t
42、t 5。 退 出 ”<endl;cout”tt# 感 谢 您 * 的 使 * 用 ”<endl;cout<”tt#"<<endl;cout"请输入选项:"cin>>chose;while(chose=0)cout"输入错误,按任意键退出程序:”<endl;exit(0);void ruzhudengji()int a,b=0;string name;ifstream liulan("宾馆房间信息.txt",ios::in); /定义输入文件流对象,以输入方式打开磁盘文件旅信if(!liulan) /判断文件是否打开成功cerr<<"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业名称可持续发展报告2020-2025年实践报告放射治疗器械
- 国际贸易合同常见条款及范本
- 小学数学各年级重点知识点对比分析
- 员工离职率分析报告与改善措施
- 初中数学几何专题思维拓展训练题
- 电子商务客户满意度提升方案集
- 五年级数学下册应用题专项训练解析
- 电子银行系统操作安全规范
- 小学二年级数学课程教学日志
- 企业员工安全培训教育资料包
- 桩基冲击钻机施工方案
- 基金考试题库大全及答案
- 2025至2030中国生物基化学品行业产业运行态势及投资规划深度研究报告
- 雾化吸入课件
- 航海船舶运输管理总结
- 2025年注册安全工程师实务《其他安全》试题+答案
- 采购战略合作协议范本5篇
- 安徽省六校联考2025-2026学年高三上学期开学检测语文试题(解析版)
- 财务部安全生产培训报告课件
- 会计毕业论文烟草专业
- 年产5万吨电熔锆刚玉新材料扩建项目环境影响报告表
评论
0/150
提交评论