1、太原理工大学毕业设计(论文)用纸太原理工大学毕业设计(论文)任务书毕业设计(论文)题目:基于Qt的酒店管理系统的设计与实现毕业设计(论文)要求及原始数据(资料):综述国内外各个大型酒店的自动化管理现状;深入了解酒店管理规章制度;熟练掌握QT开发平台的应用,训练编写界面程序的能力;设计并实现酒店管理系统对酒店的半自动化管理;深入分析研究酒店管理系统的的关键技术与编写语言;训练工程项目的开发过程;掌握对软件的编码及测试能力;训练检索文献资料和利用文献资料的能力;训练撰写技术文档与学位论文的能力。毕业设计(论文)主要内容:综述酒店管理系统在酒店的广泛应用;综述研究酒店管理系统的背景,目的及意义;熟
3、北京:电子工业出版社,2008.82丁林松,黄丽琴,Qt4图形设计与嵌入式开发,北京:人民邮电出版社,2009.43霍亚飞,Qtcreator快速入门,北京:北京航空航天大学出版社,2012.54萨师煊,王珊数据库系统概念M,北京:高等教育出版社,19975薛华成管理信息系统M,北京:清华大学出版社,19966AbrahamSilberschatzDATABASESYSTEMCONCEPTS(FourthEdition)M,北京:高等教育出版社,20027李普曼,拉茹瓦,C+Primer中文版(第四版)北京:清华大学出版社,20088面向对象程序设计基础,高等教育出版社;第2
4、版(2005年3月1日)9史济民软件工程原理、方法与应用M,北京:高等教育出版社,200210邓丽,孙凤栋数据库原理与应用M,沈阳:东北大学出版社,20073.11董洪春,星级酒店经理安全管理案头手册,化学工业出版社,2010.112文通,新编现代酒店规范管理实务大全,中国纺织出版社,2008.613王大悟,刘耿大,酒店管理180个案例品析,中国旅游出版社2007.614赵祥,宾馆酒店总务管理教育出版社15KennethC.Laudon,MANAGEMENTINFORMATIONSYSTEMS(SixthEdition),200216URL:HYPERLINK/hotelman
5、age/hotelmanage17URL:HYPERLINK//18URL:HYPERLINK19URL:HYPERLINK/forum.php/forum.php专业班级软件1026班学生要求设计(论文)工作起止日期2014年3月17日2014年6月27日指导教师签字日期2014年3月17日教研室主任审查签字日期系主任批准签字日期绪论1.1论文研究背景随着经济全球化的快速发展,人们的经济水平的得到了相当大得高,人们出门更加方便,旅游业的发展,酒店、餐饮娱乐行业日趋发达,酒店在日常生活中的重要性就越来越突出了,成为社会发展的必然趋势,同时,引入全方位的电脑服务和电脑管理日
6、益流行。国家建设部已于最近做出明确规定:凡星级酒店在项目审批时,其设计方案必须包括电脑管理系统,否则不予立项。酒店管理电脑化势在必行。传统酒店管理手工记账,会有现金流失,记录混乱等状况,使用软件来管理宾馆业务,结账既准确,速度又快,因此,要想使酒店的工作质量和效率提高,对酒店的各个细节能够安全,稳定,高效的进行分配,以极其细微的服务方式,实现酒店管理的高质量高标准的功能,使管理者能够在顾客住房的舒适度上投入更多的关心。采用先进的计算机网络通信技术改变酒店业务模式,实现酒店业务管理的自动化已经成为一种必然。1.2论文研究的目的及意义经济发展促进了酒店业的快速发展,酒店管理工作变得也越来越复杂
7、,酒店管理的智能化,信息化已经成为酒店竞争的主要方面,为了提高酒店的综合水平,开发酒店管理系统,对酒店管理的不足进行针对性、系统性的解决与完善。一个酒店的经营状况,服务水平决定酒店的整体水平,而利用先进的管理手段来提高酒店的管理水平成为酒店在日趋激烈的竞争中能够脱颖而出的关键。面对当今世界的迅猛发展,信息时代充满了机遇和挑战,利用科技手段来提高酒店的管理水平是一条高效的捷径。充分利用计算机的高效、便捷对酒店管理系统发挥最大的作用,大大提高酒店的管理水平,同时,实现人机交互,使得管理更加的透明化,完整化,使得工作的衔接更加的流畅,帮助酒店管理好业务,提高了效率,以最小的代价获得最大的经济利益。1
8、.3国内外现状对于酒店而言,标准化是基础,个性化是趋势。标准化服务,科学化、规范化、制度化、程序化是标准化服务的核心。目前中国酒店的服务质量管理处于推销不力;员工缺乏纪律,经常三五成群聊天;浴池太小;楼面服务可以取消。领导人“不求有功但求无过”意识浓厚;.有章不循,员工过于散漫;形式主义,许多改革走过场。基本上属于情绪化服务,其弊端是服务质量的一致性差,波动大。服务科学化、规范化、制度化、程序化的标准化管理是克服情绪服务的良方。标准化意味着用数据说话,依规矩才能成方圆。要求制定操作规范,服务程序,服务标准与奖惩规则,标准应尽量具体化,使之易于考核与评判,员工依据标准行事。中国酒店业无法跳越标
10、政命令的驱动力。在过去的数十年间,欧美等国的酒店集团始终在集团化进程中扮演着领跑和助动的角色。而国内的酒店集团则基本上都是在扮演着模仿或陪练的角色。1.4论文研究的主要内容本酒店管理系统是基于Qt进行基础性设计及开发。应用系统为windows。通过程序运行可以方便的对酒店日常运营进行管理。其中程序主要包括:客房入住管理,客房查询,退房管理,VIP客户管理,酒店管理人员信息管理,具体完成入住、退房、查找,VIP客户入住、退房、查找,VIP客户优惠、VIP客户管理、全部房间视图(视图能够通过不同图标可以显示出房间处于入住或者空闲状态),以及数据库的建立、查找、更新、修改或删除数据等功能的实现。
12、的为开发软件的数据库服务程序。(3)参考资料:Qt4图形设计与嵌入式开发丁松林,黄丽琴编著北京:人民邮电出版社,2009.4QtCreator快速入门霍亚飞编著北京:北京航空航天大学出版社,2012.5C+GUIQt4编程JasmnBlanchett,MarkSumrfield著闫锋欣译北京:电子工业出版社,200可行性研究的前提(1)要求主要功能:为酒店提供方便自动化的管理服务,方便管理员的管理工作,提高管理部门的服务质量和效率。性能要求:酒店管理的信息必须及时对酒店住户的信息进行录入等操作。对服务器上的数据必须进行及时正确的刷新。输出要求:数据完整,详实
13、。输入要求:简介,快速,实时。安全与保密要求:服务器的后台管理员拥有对系统的信息修改。管理员只享有对客户信息的修改。完成期限:预计一个月,截至2014.5.15(2)目标:系统实现后,大大提高了酒店管理前台的服务效率。降低传统服务中的错误发生率及现金的流失,减少信息交流繁琐过程及其带来的开销。(3)条件,假定和限制建议软件寿命:5年。硬件条件:服务器酒店管理工作站,终端PC机。运行环境:Windows数据库:MySql(4)决定可行性的主要因素成本/效益分析结果,效益成本。技术可行,现有技术可完全承担开发任务。操作可行,软件能被原有人员快速接受。2.1.3技术可行性分析
14、(1)系统简要描述在酒店的前台安装了windows7的PC机,主要目的是想服务器传递数据。当酒店管理员在PC机上进行操作时,终端向服务器发出相应请求,服务器根据信息库的实时数据,向终端发出数据,显示在终端的屏幕上。(2)处理流程和数据流程图2.1系统总体数据流程2.2功能需求该酒店管理系统主要功能在于实现对酒店内部的信息进行管理,系统的用户是负责管理酒店的管理人员,系统应该具有信息查询,入住登记,退房登记,收入查询,vip信息管理,管理人员信息管理等主要功能。(1)用例分析用例图主要用来图示化系统的流程,描述系统应该具有的功能模块和各个模块之间的调用关系。图2.2系统总体用例图图2.
17、东西。(1)QtCreatorQtCreator是一个用于Qt开发的轻量级HYPERLINK/view/469855.htmt_blank跨平台HYPERLINK/view/14867.htmt_blank集成开发环境。QtCreator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境(IDE),并确保首次接触Qt框架的开发人员能迅速上手和操作。即使不开发Qt应用程序,QtCreator也是一个简单易用且功能强大的IDE。QtCreator包含了一套用于创建和测试基于Qt应用程序的高效工具,包括:一个高级的C+代码编辑器上下文感知帮助系统
18、可视化调试器源代码管理项目和构建管理工具。(2)QtLinguistQtLinguist被称为Qt语言家。它的主要任务只是读取翻译文件、为翻译人员提供友好的翻译界面,它是用于界面国际化的重要工具。3.1.2优势(1)优良的跨平台特性Qt支持下列操作系统:MicrosoftWindows95/98,MicrosoftWindowsNT,Linux,Solaris,SunOS,HP-UX,DigitalUNIX(OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX等等。(2)面向对象Qt的良好封装
19、机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。(3)丰富的APIQt包括多达250个以上的C+类,还提供基于模板的collections,serialization,file,I/Odevice,directorymanagement,date/time类。甚至还包括正则表达式的处理功能。(4)支持2D/3D图形渲染,支持OpenGL(5)大量的开发文档(6)XML支持(7)用户自定义控件
21、执行一些基本的任务,比如图形的润色,比一般的基于平台的代码要快。Qt是基于Xlib,而不依赖Motif工具包。(10)优越的绘画功能Qt的绘画工具Qpainter类,在任意一个绘画设备上都可以润色图形。绘图设备包括组件、像素映射、图形文件和打印机,相同的代码可以用在4种不同类型的设备上。Qpainter类支持复杂的同等系统的转换,很容易在所有平台上画旋转文本和像素映像。(11)绘制2D/3D图形功能Qt提供了QGLWidget类,使用该类能够绘制2D/3D图形。用就像用一个Qt组件一样方便。这比纯粹的OpenGL做的3D图形更好使用。3.2Mysql数据库简介MySQL是一个HYPERLI
22、NK/view/394804.htmt_blank开放源码的小型关联式数据库管理HYPERLINK/view/25302.htmt_blank系统,开发者为HYPERLINK/view/14445.htmt_blank瑞典HYPERLINK/view/2270659.htmt_blankMySQLAB公司。MySQL被广泛地HYPERLINK/view/220910.htmt_blank应用在HYPERLINK/view/11165.htmt_blankInternet上的中小型网站中。由于其HYPERLINK/view/2744
23、17.htmt_blank体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站HYPERLINK/view/1088.htmt_blank数据库。MySql的特性:1使用HYPERLINK/view/10075.htmt_blankC和HYPERLINK/view/824.htmt_blankC+编写,并使用了多种HYPERLINK/view/487018.htmt_blank编译器进行测试,保证HYPERLINK/view/60376.htmt_blank源代码的可移植
24、性。2支持HYPERLINK/view/349664.htmt_blankAIX、HYPERLINK/view/21459.htmt_blankFreeBSD、HP-UX、HYPERLINK/view/1634.htmt_blankLinux、MacOS、HYPERLINK/view/68826.htmt_blankNovellNetware、HYPERLINK/view/337596.htmt_blankOpenBSD、OS/2Wrap、Solaris、HYPERLINK/view/4821.htmt_blankWindows等
25、多种HYPERLINK/view/880.htmt_blank操作系统。3为多种HYPERLINK/view/552871.htmt_blank编程语言提供了HYPERLINK/view/16068.htmt_blankAPI。这些编程语言包括HYPERLINK/view/10075.htmt_blankC、C+、HYPERLINK/view/21087.htmt_blankPython、HYPERLINK/view/29.htmt_blankJava、HYPERLINK/view/46614.htmt_blankPerl、
26、HYPERLINK/view/99.htmt_blankPHP、Eiffel、HYPERLINK/view/45135.htmt_blankRuby和Tcl等。4支持HYPERLINK/view/65706.htmt_blank多线程,充分利用CPU资源。5优化的HYPERLINK/view/34.htmt_blankSQL查询算法,有效地提高查询速度。6既能够作为一个单独的HYPERLINK/view/330120.htmt_blank应用程序应用在HYPERLINK/view/3028815.htmt_blank客户端服务器网络环
29、安排系统具有容错性,并且对操作人员要进行系统的培训。在系统中,数据色输入量往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。、数据的一致性与完整性由于系统的数据是共享的,所以如何保证这些数据的一致性,时系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入出控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。(2)系统数据流图图4.1系统总体数据流图图4.2入住登记流程图4.3退房登记流程图4.4vip管理登记流程图4.5管理员管理登记流程图4.6房间信息
30、管理登记流程(3)数据字典数据字典是关于数据的信息的集合,也就是对数据中包含的所有元素的定义的集合,它为软件开发人员提供数据库设计的参考,并为用户了解系统时作为一个必有工具。以下是部分数据字典的内容:*名字:入住事务别名:入住登记描述:酒店管理员进行酒店入住登记人员管理的特定事件定义:入住事务=预定房间|即是入住位置:顾客表*名字:退房信息别名:退房登记描述:酒店管理员进行酒店退房人员管理的特定事件定义:退房事务=余额结算|退房位置:员工表*名字:VIP管理别名:会员管理描述:酒店的VIP客户的信息的描述定义:VIP事务=添加VIP|查询VIP|
31、删除VIP位置:VIP表*名字:管理员信息管理别名:员工信息管理描述:对酒店管理人员的描述定义:管理员信息=信息查询|密码修改位置:管理员表*名字:房间信息管理别名:房间信息管理描述:对酒店的房间的信息进行描述定义:房间信息=房间类型|房间价格位置:房间类型表4.1.3功能需求(1)客户端子系统客户端子系统负责将管理员在客户端输入的信息,入住或退房,进行有效性验证之后,将申请数据打包,发送到服务器端,并接收从服务器返回的信息,根据返回的信息对顾客信息进行处理。(2)服务器端子系统服务端子系统负责接收客户端子系统发送的数据,解包后判断是何种操作,执行相
33、要实现这一点,应通过系统的开放性来完成,系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统硬件。通过软件的修补、替换完成系统的升级和更新换代。(3)系统的易用性和易维护性酒店管理系统是直接面对使用人员的,而使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。(4)系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。在开发中使用的操作系统、网络系统、开发工具都符合通
35、数据库管理系统:Mysql客户端子系统的运行要求:系统软件:Windows硬件要求:Pentium133以上,32MRAM4.2概要设计概要设计的目的是主要解决了实现该系统需求的程序模块设计问题。如何把该系统化分成若干各模块,决定各个模块之间的接口,模块之间传递的信息,以及数据结构,模块结构的设计等。4.2.1系统结构系统的大致结构如下:在C/S结构下的该酒店管理系统大致可以划分为以下模块:(见下页)图4.7系统结构图在整体设计中,将酒店管理系统分为五个大的模块:入住登记模块、退房管理模块、VIP管理模块、管理员管理模块、房间信息模块、每个模块将实现不同的功能。下面将具体进行
39、否否(3)房间状态表主要存放的是房间的入住状态,status为0表示为空房,1表示该房间已入住,2表示已预订。表3为该表的详细信息。表3房间状态表(roomstatus)字段名描述数据类型数据长度是否允许为空主键roomnum房间号int11否是roomtype房间类型varchar10否否status房间状态int11否否(4)房间价格表对房间的价格进行登记,用来计算住房金额。表4为该表的详细信息。表4房间价格表(roomprice)字段名描述数据类型数据长度是否允许为空主键single单人间int11是否sd标准间int11是否bb自主大床房int11是否st标准三人间int
41、n收益double否否4.2.3运行设计(1)运行模块的组合客户基础现在有输入时启动接收数据的模块,通过各模块之间的调用,读入进行格式化。在接收数据模块得到充分的数据时,将调用网络传输模块。将数据通过网络送到服务器,并等待接受服务返回的信息。接收到返回信息后随即调用数据输出模块,对信息进行处理,产生想要的输出。服务器程序的接受网络数据模块必须始终处于活动状态。接收到数据后,调用数据处理查询模块对数据库进行访问,完成后调研网络发送模块,将信息返回给客户机。(2)运行控制运行控制将严格按照各模块间函数调运关系来实现。在各事务中心模块中,需要对运行控制进行正确判断,选择正确的运行控制路径。在网络
46、,并以不同的颜色表示,在每次进行入住或者退房之后需要进行房间状态的更新。酒店管在右下角点击“更新房态”按钮可以进行房态更新,并且连接数据库,查看房间信息roomstatus表,取得全部记录的数据,即房间的状态。通过读取数据库中房间状态的信息,改变不同的房间的颜色,房间显示颜色的不同,反应房间的不同状态。(4)房价更改酒店管理系统主界面的左侧一栏,用来显示不同类型房间的价格,也可以输入新的价格,点击“房价更改”按钮进行价格调整,如图4.11所示为价格更改成功的提示信息,如图4.12所示,表示因为输入的房价有误,即非数字,而提示的信息。图4.11价格更改成功提示图图4.12价格更改失败提示图(
55、();/查询相应的编号和密码QSqlQueryquery;query.prepare(select*frommanagerwhereid=:idandpassword=:password);query.bindValue(:id,user);query.bindValue(:password,pwd);query.exec();if(query.next()/显示主界面this-close();management*manage=newmanagement;manage-show();manage-on_updateButton_clicked(
56、);else/错误信息提示QMessageBox:information(this,tr(错误),tr(用户名或密码错误,请重新输入),tr(返回);return;this-db.close();/关闭数据库(2)入住登记:voidroom:on_submitButton_clicked()/连接数据库this-db=QSqlDatabase:addDatabase(QMYSQL);this-db.setHostName(localhost);this-db.setDatabaseName(hotelmanagement);this-db.setUserName(root);
57、this-db.setPassword(asdsaz123);this-db.open();/获取输入的信息QStringname=ui-nameEdit-text();QStringid=ui-indentyIdEdit-text();QStringphone=ui-phoneEdit-text();QStringintime=ui-dateEdit-text();QStringaddress=ui-addressEdit-toPlainText();QStringcash=ui-cashEdit-text();QStringgender=ui-maleBu
58、tton-text();if(ui-femaleButton-isChecked()gender=ui-femaleButton-text();QStringroomtype=ui-twoRadioButton-text();if(ui-oneradioButton-isChecked()roomtype=ui-oneradioButton-text();if(ui-threeRadioButton-isChecked()roomtype=ui-threeRadioButton-text();if(ui-bigBedRadioButton-isChecked()roomty
59、pe=ui-bigBedRadioButton-text();if(ui-bigTwoRadioButton-isChecked()roomtype=ui-bigTwoRadioButton-text();if(ui-oneradioButton-isChecked()roomtype=ui-oneradioButton-text();if(ui-bigThreeRadioButton-isChecked()roomtype=ui-bigThreeRadioButton-text();introomnum=ui-roomNumEdit-text().toInt();ints
60、taytime=ui-dayEdit-text().toInt();/查询想要入住的房间的状态QSqlQueryquery3;query3.prepare(select*fromroomstatuswhereroomnum=:roomnum);query3.bindValue(:roomnum,roomnum);query3.exec();inta=1;while(query3.next()a=query3.value(2).toInt();if(a=0)/空房,进行入住登记,添加顾客信息QSqlQueryquery;query.prepare(ins