计算机09-2朱海曦.doc_第1页
计算机09-2朱海曦.doc_第2页
计算机09-2朱海曦.doc_第3页
计算机09-2朱海曦.doc_第4页
计算机09-2朱海曦.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大 连 科 技 学 院软件工程课程设计(B)题 目 酒店客房管理系统 学生姓名 朱海曦 专业班级 计算机09-2 指导教师 王立娟 职 称讲 师 所在单位 信息科学系软件工程教研室 教学部主任 王立娟 完成日期 2012年9月28日课程设计报告单学号0901020220姓名朱海曦专业班级计算机09-2考 核 项 目评分备注1平时工作态度及遵守纪律情况(10分)2掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平(10分)3独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度(20分)4完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)(60分)总评成绩综 合 评 定:(优、良、中、及格、不及格) 指导教师签字:2012年9月28日目录1、需求分析12、概要设计23、详细设计与实现33.1类的设计33.2界面设计43.3系统的登录的实现43.4信息的添加的实现63.5信息的删除的实现73.6信息的修改的实现84、系统测试10参考文献12附录 部分代码131、需求分析近年来,宾馆业迅猛发展,市场的竞争日趋激烈,全面提高宾馆的软件管理水准,已成为宾馆业发展的当务之急。尤其是对于星级宾馆,既需要完成前台的一些服务工作,还需要完成后台的管理工作。然而,传统的人工管理模式已经远远不能满足有效、快捷地处理经营中产生的大量信息数据的需要,从而使得企业决策层无法及时、准确地掌握一线资料,继而影响对市场进行正确地分析和预测。像沿海城市三星级以上宾馆引进外方管理,使小部分宾馆管理水准几乎接近或达到国际水平。但对占80%以上的广大中小型宾馆来说,是难以做到的。因此,欲在竞争中甩开对手,取得优势,必须在经营、管理、产品、服务等方面具备独到之处。而对宾馆的经营状况起决定作用的是客房的管理。简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处,才能让顾客体会到宾馆服务的高标准、高质量,而准确、快速、周全往往就是最基本的成功要素。 传统的管理方法已经不能适应现代社会的需要,因此采用电脑管理业务、财务等诸多环节已成为推动宾馆业迅速发展的先决条件,宾馆客房管理信息系统是各大中小型宾馆所需要使用的一个管理系统酒店客房管理系统是根据某酒店对客房管理的实际情况进行编写的,主要目的是为了方便酒店对客房的实际情况进行集中的查询与管理工作,以提高整个酒店的工作。经过电脑及生活中的调查研究,根据客人的经济水平和生活理念,客房的类型已趋向于多样化,有标准房,单人房,VIP间,甚至总统套房。而初步设定通过客房的编号、类型、价格来定位一个客房的管理系统。客房是一个对外服务的内容,为了客人的住宿要求,所以系统需要实现客房信息的录入、修改和删除功能。客人对剩余客房需要进行选择,系统必须实现相应的查询、排序和输出功能,使客人择优而居。主要实现的功能包括:客房信息的录入、修改、删除、剩余客房信息查询、排序、输出。客房信息可写入文件,也可从文件中读取。客房信息涉及的数据有客房编号、客房类型、定房日期、客房内容(设施)、定房有效期等。2、概要设计按照需求分析所得,客房信息系统有以下几个功能模块:(1)添加录入信息模块;编写指针摸板,定义临时的客房间数,包括其各项类的成员,编号,类型,定房日期,价格,客房内容,入住天数。(2)修改客房信息模块;读取保存的客房信息数据,根据客房编号查找所需修改的客房信息,然后根据具体所需,修改成员参数,并保存。(3)删除客房信息模块;从保存中的文件中读取信息,删除需要删除的信息,完善现在的客房运作。(4)查询剩余客房函数;分按编号、类型、价格查询,这样可以更具有人性化来选择所剩余的客房,从而进行日常安排。(5)排序剩余客房模块;根据具体所需排序,可以是编号、价格或者类型,本系统中根据的是客房入住的天数来排序。(6)输出剩余客房函数;输出根据系统所需排序后的客房信息,本系统中是根据了客人入住的有效期即天数来及时了解空出的房间。由上述需求分析可得,系统的功能模块图如图1所示。 录入客房信息客房的信息管理系统查询剩余客房信息排序剩余客房信息输出剩余客房信息保存客房信息修改客房信息删除客房信息退出系统图1系统功能模块3、详细设计与实现3.1类的设计根据上述需求分析,有客房类和链表类。(1)客房类系统研究客房cGuestroom类中成员: IDSIZE是客房编号,TypeSIZE是客房类型,BookSIZE是定房日期,PriceSIZE是每间客房的价格,StayTimeSIZE是定房的有效期,FunctionSIZE是客房的主要内容(如浴室、卫生间、网线等设施),标志flag和构造函数cGuestroom()。客房类的UML图如(图2)所示:class cGuestroom+ IDBUFSIZE:char/ 客房编号+ TypeBUFSIZE:char/客房类型+ BookBUFSIZE:char/定房日期+ FunctionBUFSIZE:char/客房内容+StayTime :int/定房有效期+ flay :bool/标志+ cGuestroom()/构造函数初始化 图2(2)链表类在tList类中,有成员:构造函数tList(),创建链表Create(),判断链表是否为空的函数Empty() const,从尾部插入一个元素的函数Insert(const T e),返回第i个节点的函数GetcNode(int i),在链表中查询某个值的函数bool Find(const T 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图33.2界面设计(1)主界面的设计主界面中显示客房管理系统的全部信息,客房信息的录入,客房信息的保存,客房信息的修改,客房信息的删除,剩余客房的查询,剩余客房的排序,剩余客房的输出(2)分界面:客房信息的录入的设计提示输入客房编号,客房类型,客人定房日期,客房价格,客房中的主要内容,客房定房的有效期。(3)分界面:客房信息的保存的设计针对第一步客房信息的输入及以后信息的修改、删除做一个文件保存。(4)分界面:客房信息的修改的设计提示根据编号进行客房信息修改,输入要修改的内容,如不修改的项目就远洋输出。(5)分界面:客房信息的删除的设计提示进入删除截面,根据客房编号查找所需删除的客房信息。(6)分界面:剩余客房信息的查询的设计在保存完所修改或删除的客房信息,查询剩余的客房信息,按提示进入剩余客房查询界面,有按编号、类型、价格查询,根据拥护自主选择。(7)剩余客房信息的排序的设计按提示进行剩余客房的排序,本系统中是以客人的入住天数排序,显示屏幕如图10所示。(8)分界面:剩余客房信息的输出的设计在排序完后的剩余客房中,输出所有客房的信息,以检验客房的经营情况。3.3系统的登录的实现在主函数中,输出客房信息系统的各功能提示。选择需要执行功能的序号,由switch判断和选择所需要执行的功能。int main() tList tListMedic; tListMedic.Create(); /创建链表 ReadData(&tListMedic);while(1) coutnn 欢迎使用客房管理系统 nn; cout - nn;cout 1.客房信息的录入 nn;cout 2:客房信息保存nn;cout 3.客房信息的修改 nn;cout 4.客房信息的删除 nn;cout 5.剩余客房信息的查询 nn; cout 6.剩余客房信息的排序 nn;cout 7.剩余客房信息的输出 nn;cout 8.退 出 系 统 nn;coutchoose; switch (choose) /用户选择 case 1:AddtheGuestroom(&tListMedic); break; /输入客房信息case 2:SaveData(&tListMedic);break; /客房信息信息保存 case 3:ModifytheGuestroom(&tListMedic); break; /修改客房信息 case 4:DeletetheGuestroom(&tListMedic); break; /删除客房信息 case 5:FindtheremainGuestroom(&tListMedic); break; /查询剩余客房信息 case 6:RanktheremainGuestroom(&tListMedic); break; /排序剩余客房信息 case 7:OutputtheremainGuestroom(&tListMedic); break; /输出剩余客房信息 case 8:exit(0); /退出 default : 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;3.4信息的添加的实现客房信息的录入,创建cGuestroom类和tempGuestroom对象,调用构造函数,输入客房的房间编号、房间类型、定房日期、房间价格、房间内容及个人的入住有效期,通过Insert函数实现。void AddtheGuestroom(tList *tListMedic) / 输入客房函数 cGuestroom tempGuestroom; /定义临时客房cout下面开始添加客房信息n;couttempGuestroom.ID; /读入客房编号couttempGuestroom.Type; /读入客房类型couttempGuestroom.Book; /读入定房日期couttempGuestroom.Price; /读入价格couttempGuestroom.Function; /读入主要内容couttempGuestroom.StayTime; /读入入住有效期tempGuestroom.flag=truetListMedic-Insert(tempGuestroom);cout添加成功!n;system(pause);system(cls);3.5信息的删除的实现删除客房信息,按要求提示输入要删除客房的房间编号,定义一个指向链表第一个节点的指针p。如果指针创建成功,开始用while和if语句实现p指向的节点的客房编号与存在的客房编号的比较。如果相同,输出该客房的信息并删除;如果没有相同的,提示没有所查询的房间。void DeletetheGuestroom(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;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;3.6信息的修改的实现按提示输入要修改的客房的客房编号,定义一个指向链表第一个节点的指针p。如果指针创建成功,开始用while和if语句实现p指向的节点的客房编号与存在的客房编号的比较。如果相同,提示输入房间的各个信息;如果没有相同,提示没有所查询的客房。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客房类型:data).Typentt定房日期:data).Bookntt价格:data).Price;coutntt客房的主要内容:data).Functionntt入住有效期:data).StayTime;coutn下面开始修改该客房的信息:n;cGuestroom tempGuestroom; /定义临时客房couttempGuestroom.ID; /读入客房编号couttempGuestroom.Type; /读入客房类型couttempGuestroom.Book; /读入定房日期couttempGuestroom.Price; /读入价格couttempGuestroom.Function; /读入客房的主要内容couttempGuestroom.StayTime; /读入入住有效期tempGuestroom.flag=true;p-data=tempGuestroom;cout修改成功!;coutendl;system(pause);system(cls);return;4、系统测试本系统用户界面:图4 登陆系统输入入住的客房编号:1输入客房类型:hj输入客人的订房信息:3.4输入客房价格:108输入客人方的主要内容:yushi输入客房入住有效日期:3输入结果如图5所示:图5 录入客房信息提示根据编号进行客房信息修改,输入要修改的内容,如不修改的项目就远洋输出。客房信息修改界面如图6所示。图6 修改客房信息在保存完所修改或删除的客房信息,查询剩余的客房信息,按提示进入剩余客房查询界面,有按编号、类型、价格查询,根据拥护自主选择。图7 查询客房信息在排序完后的剩余客房中,输出所有客房的信息,以检验客房的经营情况。图10 输出剩余客房的信息参考文献1 陈维兴,林小茶.C+面向对象程序设计教程.北京.清华大学出版社2010,102 C+程序设计作者:郑莉,董渊,张瑞丰 出版社:清华大学出版社 时间:2003/12 3 数据结构作者:严蔚敏,吴伟民 出版社:清华大学出版社 时间:2006/10附录 部分代码void AddtheGuestroom(tList *tListGue)/ 输入客房函数cGuestroom tempGuestroom; /定义临时客房cout下面开始添加客房信息n;couttempGuestroom.ID; /读入客房编号couttempGuestroom.Type; /读入客房类型couttempGuestroom.Book; /读入定房日期couttempGuestroom.Price; /读入价格couttempGuestroom.Function; /读入主要内容couttempGuestroom.StayTime; /读入入住有效期tempGuestroom.flag=true;tListGue-Insert(tempGuestroom);cout添加成功!n;system(pause); /pause:停顿,终止system(cls);void SaveData(tList *tListGue) /保存数据int i=0;ofstream ofile(Guestroom.txt,ios_base:out);/创建一个输入文件流对象if (!ofile) cerr 保存时打开文件出错! endl; cNode *p;p=tListGue-head-next;while(p) /从内存中读取数据,存到外盘if(p-data.flag)ofilen;ofiledata).IDn;ofiledata).Typen;ofiledata).Bookn;ofiledata).Pricen;ofiledata).Functionn;ofiledata).StayTimenext;cout保存数据成功!n;ofile.close();system(pause);system(cls);return;void ModifytheGuestroom(tList *tListGue) /修改客房信息char idBUFSIZE;coutid; /读取客房编号bool flag=false; cNode *p;p=tListGue-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客房类型:data).Typentt定房日期:data).Bookntt价格:data).Price;coutntt客房的主要内容:data).Functionntt入住有效期:data).StayTime;coutn下面开始修改该客房的信息:n;cGuestroom tempGuestroom; /定义临时客房couttempGuestroom.ID; /读入客房编号couttempGuestroom.Type; /读入客房类型couttempGuestroom.Book; /读入定房日期couttempGuestroom.Price; /读入价格couttempGuestroom.Function; /读入客房的主要内容couttempGuestroom.StayTime; /读入入住有效期tempGuestroom.flag=true;p-data=tempGuestroom;cout修改成功!; coutendl;system(pause);system(cls);return;void DeletetheGuestroom(tList *tListGue) /删除客房信息char idBUFSIZE;coutid; /读取客房编号bool flag=false;int count=0; cNode *p;p=tListGue-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;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;void FindtheremainGuestroomById(tList *tListGue)/根据客房编号查找char idBUFSIZE;coutid; /读取客房编号bool flag=false; cNode *p;p=tListGue-head-next;while(p)if(strcmp(p-data.ID,id)=0 & p-data.flag)flag=true;break;p=p-next;if(flag=false) cout对不起,没有该标号的客房!n; /如果找不到else /如果找到了 coutn找到了,该客房的信息是:n;coutnn客房编号:data).IDt客房类型:data).Typentt定房日期:data).Bookntt价格:data).Price;coutntt主要内容:data).Functionntt入住有效期:data).StayTime; coutendl;system(pause);system(cls); /清屏return;void FindtheremainGuestroom(tList *tListGue)/查找客房system(cls);while(1)coutnnnn;cout 1:按客房编号查询nn;cout 2:按客房类型查询nn;cout 3:按价格查询nn;cout 4:退出查询nn;coutchoose;switch(choose) /根据用户选择case 1:FindtheremainGuestroomById(tListGue); /按客房编号查询break;case 2:FindtheremainGuestroomByType(tListGue); /按客房类型查询break;case 3:FindtheremainGuestroomByPrice(tListGue); /按价格查询break;case 4:system(cls);return; /退出查询default:break;return;void RanktheremainGuestroom(tList *tListGue) /排序剩余客房cNode *p,*q;cGuestroom remainGuestroom;for (p=tListGue-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(remainGuestroom.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, 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, remainGuestroom.Type);strcpy(q-data.Book, remainGuestroom.Book); q-data.StayTime = remainGuestroom.StayTime; void OutputtheremainGuestroom(tList *tListGue) /输出剩余房间函数cNode *p;p=tListGue-head-next;while(p)if(p-data.flag)coutnn客房编号:data).IDt客房类型:data).Typentt提前定房日期:data).Bookntt价格:data).Price;coutntt主要内容:data).Functionntt入住有效期:data).StayTime;p=p-next;coutendl;system(pause); /停止system(cls); /清

温馨提示

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

评论

0/150

提交评论