酒店管理系统程序钟佳林

上传人:泽*** 文档编号:73515388 上传时间:2022-04-11 格式:DOC 页数:15 大小:415KB
收藏 版权申诉 举报 下载
酒店管理系统程序钟佳林_第1页
第1页 / 共15页
酒店管理系统程序钟佳林_第2页
第2页 / 共15页
酒店管理系统程序钟佳林_第3页
第3页 / 共15页
资源描述:

《酒店管理系统程序钟佳林》由会员分享,可在线阅读,更多相关《酒店管理系统程序钟佳林(15页珍藏版)》请在装配图网上搜索。

1、江西理工大学软件学院面向对象程技术课程设计报告2011 2012 学年第二学期课程名称面向对象技术设计题目酒店管理系统专业班级11 软件工管( 2)班姓名钟佳林学号11241243指导教师杨老师2012年6 月 23日1.031 所示。1. 课题简介客房管理系统是根据某酒店对客房管理的实际情况进行编写的, 主要目的是为了方便酒店对客房的实际情况进行集中的查询与管理工作, 以提高整个酒店的工作。经过电脑及生活中的调查研究,根据客人的经济水平和生活理念,客房的类型已趋向于多样化,有标准房,单人房, VIP 间,甚至总统套房。而初步设定通过客房的编号、类型、价格来定位一个客房的管理系统。客房是一个对

2、外服务的内容,为了客人的住宿要求,所以系统需要实现客房信息的录入、修改和删除功能。客人对剩余客房需要进行选择, 系统必须实现相应的查询、 排序和输出功能,使客人择优而居。本次课程设计需要实现的是客房管理系统的链表实现。主要实现的功能包括:客房信息的录入、修改、删除、剩余客房信息查询、排序、输出。客房信息可写入文件,也可从文件中读取。客房信息涉及的数据有客房编号、客房类型、定房日期、客房内容(设施) 、定房有效期等。2. 设计方案 042 设计方案按照需求分析所得,客房信息系统有以下几个功能模块:1添加录入信息模块;编写指针摸板,定义临时的客房间数,包括其各项类的成员,编号,类型,定房日期,价格

3、,客房内容,入住天数。3修改客房信息模块;读取保存的客房信息数据, 根据客房编号查找所需修改的客房信息, 然后根据具体所需,修改成员参数,并保存。4删除客房信息模块;从保存中的文件中读取信息,删除需要删除的信息,完善现在的客房运作。5查询剩余客房函数;分按编号、类型、价格查询,这样可以更具有人性化来选择所剩余的客房,从而进行日常安排。6排序剩余客房模块;根据具体所需排序, 可以是编号、 价格或者类型, 本系统中根据的是客房入住的天数来排序。7输出剩余客房函数;输出根据系统所需排序后的客房信息, 本系统中是根据了客人入住的有效期即天数来及时了解空出的房间。由上述需求分析可得,系统的功能模块图如图

4、客房的信息管理系统录保修删查排输退入存改除询序出出客客客客剩剩剩系房房房房余余余统信信信信客客客息息息息房房房信信信息息息3. 具体设计及截屏图 053. 具体设计及截屏图1、类的设计根据上述需求分析,有客房类和链表类。( 1)客房类系统研究客房 cGuestroom 类中成员: IDSIZE 是客房编号, TypeSIZE 是客房类型, BookSIZE 是定房日期, PriceSIZE 是每间客房的价格, StayTimeSIZE 是定房的有效期, FunctionSIZE 是客房的主要内容(如浴室、卫生间、网线等设施),标志 flag 和构造函数 cGuestroom()。客房类的 UM

5、L图如(图 2)所示:classcGuestroom+ IDBUFSIZE:char/ 客房编号+ TypeBUFSIZE:char/ 客房类型+ BookBUFSIZE:char/ 定房日期+ FunctionBUFSIZE:char/ 客房内容+StayTime :int/ 定房有效期+ flay :bool/ 标志+ cGuestroom()/ 构图造函2数初始化(2)链表类在 tList类中,有成员:构造函数tList(),创建链表 Create() ,判断链表是否为空的函数 Empty() const ,从尾部插入一个元素的函数Insert(constT e) ,返回第i个节点的函数

6、GetcNode(int i),在链表中查询某个值的函数boolFind(constT e) ,析构函数 tList(),头节点 head。链表类的 UML图如(图 3)所示:tList+tList();+ Create():void+Empty() const:bool+Insert(conste:T):void+*GetcNode(i:int):cNode+Find(const e:T):bool+tList();+ *head:cNode图 32界面设计:(1) 主界面的设计主界面中显示客房管理系统的全部信息, 客房信息的录入,客房信息的保存,客房信息的修改,客房信息的删除,剩余客房的查

7、询,剩余客房的排序,剩余客房的输出,客房信息管理系统如图 4 所示。图4主界面(2)分界面:客房信息的录入的设计提示输入客房编号,客房类型,客人定房日期,客房价格,客房中的主要内容,客房定房的有效期。客房信息录入如图5 所示。图 5 录入客房信息的分界面(3)分界面:客房信息的保存的设计针对第一步客房信息的输入及以后信息的修改、 删除做一个文件保存。 客房信息保存如图 6 所示。图 6 保存客房信息的分界面(4)分界面:客房信息的修改的设计提示根据编号进行客房信息修改, 输入要修改的内容, 如不修改的项目就远洋输出。客房信息修改界面如图7 所示。图 7 修改客房信息的分界面(5)分界面:客房信

8、息的删除的设计提示进入删除截面, 根据客房编号查找所需删除的客房信息。 客房信息的删除界面如图 8 所示。图 8 删除客房信息的分界面(6)分界面:剩余客房信息的查询的设计在保存完所修改或删除的客房信息, 查询剩余的客房信息, 按提示进入剩余客房查询界面,有按编号、类型、价格查询,根据拥护自主选择。查询剩余客房的信息界面如图 9 所示。图 9 查询客房信息的分界面(7)剩余客房信息的排序的设计按提示进行剩余客房的排序, 本系统中是以客人的入住天数排序, 显示屏幕如图 10 所示。(8)分界面:剩余客房信息的输出的设计在排序完后的剩余客房中,输出所有客房的信息,以检验客房的经营情况。剩余客房信息

9、输出界面如图10 所示。图 10 输出剩余客房的信息4. 关键代码分析 104. 关键代码分析(1)系统的登录在主函数中,输出客房信息系统的各功能提示。选择需要执行功能的序号,由 switch 判断和选择所需要执行的功能。选择 1:执行客房信息的录入;选择 2:执行保存客房的信息;选择 3:执行教工基本信息的保存;选择 4:执行教工基本信息的删除;选择 5:执行教工工资按从高到低排序;选择 6:执行教工基本信息的修改;选择 7:执行教工基本信息的查询;选择 8:退出;主函数:int main()tList tListMedic;tListMedic.Create(); / 创建链表 ReadD

10、ata(&tListMedic);while(1) coutnn客房管理系统nn;cout -nn;cout1.客房信息的录入nn;cout2:客房信息保存 nn;cout3.客房信息的修改nn;cout4.客房信息的删除nn;cout5.剩余客房信息的查询nn;cout6.剩余客房信息的排序cout7.剩余客房信息的输出cout8.退出系统coutchoose;switch(choose)/ case 1:AddtheGuestroom(&tListMedic); break;/用户选择输入客房信息case 2:SaveData(&tListMedic);break;/客房信息信息保存cas

11、e 3:ModifytheGuestroom(&tListMedic); break;/修改客房信息case4:DeletetheGuestroom(&tListMedic);break;/删除客房信息case5:FindtheremainGuestroom(&tListMedic);break; /查询剩余客房信息case 6:RanktheremainGuestroom(&tListMedic); break; /排序剩余客房信息case 7:OutputtheremainGuestroom(&tListMedic); break; /输出剩余客房信息case 8:exit(0);/退出d

12、efault : break;return 0; 在读取数据库中, 可以从以有的文件中读取数据到程序中,复输入数据,有利于后面的信息修改、删除等功能。读取数据库:避免了程序的重void ReadData(tList *tListMedic)/读取数据库char bufBUFSIZE;ifstream ifile(Guestroom.txt,ios_base:in);/ 创建一个输出文件流对象if (!ifile)cerr 读取时打开文件出错! Insert(Guestroom);cout读取数据成功!nn;ifile.close();/关闭文件return;(2)信息的添加客房信息的录入,创建

13、cGuestroom 类和 tempGuestroom 对象,调用构造函数,输入客房的房间编号、房间类型、定房日期、房间价格、房间内容及个人的入住有效期,通过 Insert 函数实现。void AddtheGuestroom(tListcGuestroom tempGuestroom;*tListMedic)/输入客房函数定义临时客房coutcouttempGuestroom.ID;/读入客房编号couttempGuestroom.Type;/读入客房类型couttempGuestroom.Book;/读入定房日期couttempGuestroom.Price;/读入价格couttempGue

14、stroom.Function;/读入主要内容couttempGuestroom.StayTime;/读入入住有效期tempGuestroom.flag=true;tListMedic-Insert(tempGuestroom);cout 添加成功! n;system(pause);system(cls);(3)信息的删除删除客房信息, 按要求提示输入要删除客房的房间编号, 定义一个指向链表第一个节点的指针 p。如果指针创建成功,开始用 while 和 if 语句实现 p 指向的节点的客房编号与存在的客房编号的比较。 如果相同,输出该客房的信息并删除;如果没有相同的,提示没有所查询的房间。vo

15、idDeletetheGuestroom(tList*tListMedic)/删除客房信息char idBUFSIZE;coutid;/;读取客房编号bool flag=false;int count=0;cNode *p;p=tListMedic-head-next;while(p) if(strcmp(p-data.ID,id)=0 & p-data.flag) count+;flag=true;break;p=p-next;if(flag=false)cout对不起,你所查找的客房延长了住房日期!n;/ 如果不能删else/如果能删count-;cout 找到了,该客房的原始信息是:n;

16、coutnn客房编号:data).IDt客房类型 :data).Typentt定房日期 :data).Bookntt价格 :data).Price;coutntt客房的主要内容 :data).Functionntt入住有效期 :data).StayTime;coutdata).flag=false;cout 该客房的信息删除成功 !n;coutendl;system(pause);system(cls);return;(4)信息的修改按提示输入要修改的客房的客房编号, 定义一个指向链表第一个节点的指针p。如果指针创建成功, 开始用 while 和 if 语句实现 p 指向的节点的客房编号与存在

17、的客房编号的比较。如果相同,提示输入房间的各个信息;如果没有相同,提示没有所查询的客房。void ModifytheGuestroom(tList *tListMedic)/修改客房信息 char idBUFSIZE;coutid;/读取客房编号bool flag=false;cNode *p;p=tListMedic-head-next;while(p) if(strcmp(p-data.ID,id)=0 & p-data.flag) flag=true;break;p=p-next;if(flag=true)cout找到了,该客房的原始信息是:n;coutnn客房编号:data).IDt客

18、房类型 :data).Typentt定房日期 :data).Bookntt价格:data).Price;coutntt客房的主要内容 :data).Functionntt入住有效期 :data).StayTime;coutn下面开始修改该客房的信息:n;cGuestroom tempGuestroom;/定义临时客房couttempGuestroom.ID;/读入客房编号couttempGuestroom.Type;/读入客房类型couttempGuestroom.Book;/读入定房日期couttempGuestroom.Price;/读入价格couttempGuestroom.Functi

19、on;/读入客房的主要内容couttempGuestroom.StayTime;:;/读入入住有效期tempGuestroom.flag=true;p-data=tempGuestroom;cout 修改成功 !;coutendl;system(pause);system(cls);return;5. 测试 155.测试程序测试是将编制的程序投入实际运行前, 用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。原程序:void RanktheremainGuestroom(tList *tListMedic)/排序剩余客房cNode *p,*q;cGuestroom remainGu

20、estroom;for (p=tListMedic-head-next; p!= NULL; p=p-next) for (q=p; q!= NULL; q=q-next) if (p-data.Price q-data.Price) remainGuestroom.flag = p-data.flag;strcpy(remainGuestroom.ID, p-data.ID); strcpy(remainGuestroom.Type, p-data.Type); strcpy(remainGuestroom.Book, p-data.Book); strcpy(remainGuestroom

21、.Price, p-data.Price); strcpy(remainGuestroom.Function, p-data.Function); remainGuestroom.StayTime = p-data.StayTime; p-data.flag = q-data.flag; strcpy(p-data.Function, q-data.Function); strcpy(p-data.ID, q-data.ID); strcpy(p-data.Type, q-data.Type); strcpy(p-data.Book, q-data.Book);p-data.StayTime

22、= q-data.StayTime; q-data.flag = remainGuestroom.flag; strcpy(q-data.Function, remainGuestroom.Function); strcpy(q-data.ID, remainGuestroom.ID); strcpy(q-data.Type, remainGuestroom.Type); strcpy(q-data.Book, remainGuestroom.Book); q-data.StayTime = remainGuestroom.StayTime; 编译成功后开始运行,信息录入后,不能在文档中正确排

23、序输出,经 Debug 调试,发现,以客人的入住天数排序来及时调出空余客房为最佳选择。void RanktheremainGuestroom(tList *tListMedic)/排序剩余客房cNode *p,*q;cGuestroom remainGuestroom;for (p=tListMedic-head-next; p!= NULL; p=p-next) for (q=p; q!= NULL; q=q-next) if (p-data.StayTime q-data.StayTime) remainGuestroom.flag = p-data.flag;strcpy(remainG

24、uestroom.ID, p-data.ID); strcpy(remainGuestroom.Type, p-data.Type); strcpy(remainGuestroom.Book, p-data.Book); strcpy(remainGuestroom.Price, p-data.Price); strcpy(remainGuestroom.Function, p-data.Function); remainGuestroom.StayTime = p-data.StayTime; p-data.flag = q-data.flag; strcpy(p-data.Function

25、, q-data.Function); strcpy(p-data.ID, q-data.ID); strcpy(p-data.Type, q-data.Type); strcpy(p-data.Book, q-data.Book); p-data.StayTime = q-data.StayTime; q-data.flag = remainGuestroom.flag; strcpy(q-data.Function, remainGuestroom.Function); strcpy(q-data.ID, remainGuestroom.ID); strcpy(q-data.Type, r

26、emainGuestroom.Type); strcpy(q-data.Book, remainGuestroom.Book);q-data.StayTime = remainGuestroom.StayTime; 6. 课题总结与体会 17/*删除客户预定资料 */void del()FILE *fp;int T;char delname10,c=y;if(fp=fopen(roombook.txt,w)=NULL)coutn 信息文件打开失败!endl;return;while(c=y|c=Y)coutendl;display();/ 每次删除前遍历订房信息if(TOTAL=0)p=0;s

27、ystem(cls);cout 无效删除,系统自动返回上级:n;break;coutnn 请输入要取消的订户姓名:delname;/ 输入目标删除姓名for(int i=0;i=TOTAL;i+)T=TOTAL;if(strcmp(gestersi.name,delname)=0)addnum(gestersi);/ 运行工具函数,释放被占房间TOTAL-;for(;(gestersi.name)!=NULL;i+)for(;i=TOTAL;i+)gestersi=gestersi+1;/跳过被删除信息节点coutn 删除成功 !n;fwrite(&amt;gesters,sizeof(struct Passenger),TOTAL,fp); /刷新信息if(TOTAL=T)/ 如若总数不变 (即没被删除 )时处理 coutn 查无此顾客 !endl;coutc;fclose(fp);

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