酒店管理系统的设计与开发.doc_第1页
酒店管理系统的设计与开发.doc_第2页
酒店管理系统的设计与开发.doc_第3页
酒店管理系统的设计与开发.doc_第4页
酒店管理系统的设计与开发.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

I Ia分类号 密级 UDC 编号 计算机科学与技术专 业毕业论文 题题 目目 基于基于 MSSQLMSSQL SERVERSERVER 20002000 及及 PB9.0PB9.0 的酒店管理系统设计与开发的酒店管理系统设计与开发 学院(所、中心) 信息学院 专 业 名 称 计算机科学与技术 研究生姓名 XX 学号 0308210XX 导 师 姓名 XX 2007 年 12 月 II 摘要摘要 此论文主要讨论和介绍了酒店管理系统的需求分析、功能设计、数据库设 计和编码实现等几个重要过程,开发主要是基于瀑布模式,后端数据库采用 MSSQLSERVER 2000,开发工具采用 PowerBuilder 9.0。酒店管理系统主要包 含前台接待、前台收银、客户账户管理、夜审管理功能。另外,文中还介绍了 所采用的开发平台的相关特点,展示了酒店管理系统的几个主要功能介面。最 后附有相关的实现代码以及存储过程示例。 文中介绍的酒店管理系统的后续版本已经在云南大理 XX 酒店进行实际应 用,使得其管理与服务水平提升到一个新的台阶,获得用户的好评;但是,我 们还会根据用户的需求及其业务管理变化进一步的完善。 由于水平问题,文中定有不完善及遗漏之处,请各老师给予指正。 III 目目 录录 第一章引言1 1.1系统用背景1 1.2论文包含的主要内容2 1.3论文组织2 第二章需求分析3 2.1 酒店管理的业务流程3 2.2 用户需求采集3 23用例设计5 24编写需求规格说明书7 第三章系统设计8 3.1 概要设计8 3.2 功能设计9 3.3 功能模块详细设计10 第四章数据库结构设计13 41 E-R 图 13 42 相关数据表结构设计.14 第五章开发平台介绍17 4.1POWERBULIDER 9.0 介绍17 4.2 MSSQLSERVER 数据库介绍18 第六章系统实现19 61 系统登录.19 62 系统框架.19 63 实时房态图.20 64 客户账号管理.21 65 夜审处理.22 第七章结束语23 参考文献 .24 致谢 .24 附录一 酒店管理系统需求规格说明书样本 .25 附录二 POWERSCRIPT 代码示例.26 1 操作员登录验证代码.26 2 夜审实现函数WF_YJSH()代码 .28 附录三 存储过程示例 .30 1 夜审生成经营日报存过.30 2. 夜审生成结算日报存过31 1 第一章第一章引言引言 1.1 系统用背景系统用背景 随着信息社会的高速发展,人们生活的方方面面都已经和信息化有了千丝 万缕的联系。当人们旅游出行入住酒店时,及时了解各种相关的信息动态,享 受高效的、个性化的服务已成为必不可少的需求。尤其作为酒店的管理者,如 为客人提供方便、高速、高效、个性化的信息服务,从而提高整体服务水平与 服务质量,在激烈的行业竞争中脱颖而出,就成为酒店管理者必不可少的思考 内容。 酒店如何才能为客人提供方便、高速、高效、个性化的服务呢?首先当然 是需要一套完备的酒店管理信息系统作为支撑。使用酒店管理信息系统,将为 酒店管理带来如下好处: 1. 为销售提供全面、准确的信息数据。酒店销售以客人为中心,需要了解 客人需求,细分目标市场,适销对路。酒店销售的核心产品是客房,以合理的 价格在相应的时间将客房销售出去是使销售具有成效的关键。 2. 为客人提供快捷、细致、周到的服务。酒店业的竞争日益激烈,而竞争 的焦点越来越汇集到酒店的服务质量上。高档酒店的衡量标准首先是能否在一 个标准的住客流程(客人的入住、在住和离店三个阶段)为客人提供快捷、细 致、周到的服务 3. 为财务提供严密的账务系统 。客人在酒店内的任意消费点消费时,系 统自动提示该客人的帐上余额,对于客人超限自动报警,提示补交押金。所有 的消费单实时汇总到客人的账号上,避免跑漏帐。并提供超限客人的自动电话 语音催缴。严密的计帐规则,严格的权限控制,严格的监督机制。 4. 具有处理各种复杂情况的能力。团体、会议业务是酒店业务中最复杂的 部分,它具有人员多、信息管理工作量大、账务变化复杂的特点。酒店系统提 供从预订-入住-在住-离店结算全套解决方案。对于诸如客人不同时抵达, 会议结束后不同时离店,退房但不结算的情况可以十分方便的处理。系统还可 2 以自如的处理团队包价情况,对于团队在酒店内的活动安排可以事先预订和修 改,以便各部门提前准备。 5. 为领导的决策提供强有力支持。酒店管理系统提供了丰富的报表查询, 为决策者提供全方位的酒店业务的透视分析能力。 6. 门禁、消费“一卡通“。酒店管理系统一般都支持先进的“一卡通“功能, 可利用智能卡作为信息载体,通过与相应的计算机管理软件相结合,使持卡客 人在酒店内能够用一张卡方便的完成进出房门、消费娱乐、挂帐结算等活动, 为客人提供方便快捷的服务。“一卡通“系统简化了结账手续,控制了内部的现 金流通,严格控制房间的进入,对酒店规范服务,提高账务与保安的安全管理 水平大有益处。 7. 面向 Internet 及电子商务。随着因特网的进一步发展,各种基于网络 的应用业务也如雨后春笋地发展起来,例如网上银行、远程教育、远程医疗、 视频新闻报道等等。其中方便、快捷、高效的电子商务更以惊人的速度飞速扩 张。从 1998 年到 2002 年里,全球电子商务的发展都将超过 30%。毫无疑问, 对于酒店业而言 Internet 电子商务将成为最具经济价值和发展潜力的业务。通 过 Internet 酒店不仅可以宣传自己,提高知名度和企业形象,更重要的是可以 扩大销售渠道,使酒店有能力适应新一轮竞争,不至于被淘汰。 1.2 论文包含的主要内容论文包含的主要内容 论文首先分析了酒店管理的特点及其业务需求,进行了需求分析之后论文 讨论了系统应用的构架、系统设计的过程,然后再对数据库的相关知识及 PowerBuilder 9.0 进行了介绍,最后介绍了系统主要功能的开发与实现,展示了 系统的主要功能及介面。论文重点在于以酒店管理系统为例研究讨论一个系统 的需求分析、设计及实现过程,并熟悉和掌握数据库及 PB 开发的相关知识。 1.3 论文组织论文组织 本文主要围绕酒店管理系统的主体部份的需求分析、系统设计、数据库与 开发工具、系统部份功能的开发、系统实现的主要功能几部份进行介绍。 3 第二章第二章需求分析需求分析 2.1 酒店管理的业务流程酒店管理的业务流程 在与用户进行沟通交流,了解需求之前,开发人员应该对酒店管理的管理业 务有一定的认识,为后面的向客户了解业务需求打下必要的基础。 酒店管理业务从其业务的角度分类主要有:客房住宿、客房服务、餐饮、 娱乐、商场等;主要是以财务为核心,而行为管理主要集中于前台的业务处理, 以前台的接待,收银为核心。将住店客人的各类信息,住店期间发生的各项活 动进行及时、有效的记录、反映、分析、统计。在此基础上,又向各个不同的 管理角度提供对应的处理窗口使电讯、餐饮、财务等部门能及时获取本部门所 需的信息,方便各部门进行工作的总结和分析。使这一层的领导能总体把握整 个酒店的运行状况,经营情况和存在的问题,更有利于采取相应的决策,进行 总体协调。 酒店管理业务中可能涉及到的流程如图 2-1 所示。 2.2 用户需求采集用户需求采集 需求分析工作做得是否扎实,关系到将来开发的系统能否满足客户的需求, 是系统开发成功与否的一个关键过程。而要好系统的需求分析工作,首先就是 要用户进行面对面的交流,通过交流来了解客户的业务动作流程、了解客户业 务管理的特点,在酒店管理系统的需要调研阶段,我们分为三个步骤: 1广泛调查与资料收集 通过与酒店各部门、各岗位人员的交流了解酒店的组织结构、业务管 理流程,重点关注如何将现业务流程在管理信息系统中实现。同时收集相 关的资料,如:客房分布表、客户资料表、开房申请单、压金单据等。 4 图 2-1 业务流程图 XX 酒店的组织结构图 2-2: 总经理 前厅部 客房部 餐饮部 财力部 人力资源部 工程部 总经理助理 图 2-2 酒店组织结构图 5 2基于问题的需求讨论 在前面广泛交流的基础上,我们将重点需要明确的问题整理成为问题列 表,再组织酒店相关人员针对问题列表中的具体问题进行讨论。在酒店管理 信息系统的需分析中主要需要明确的问题有: 1)采用虚拟房间管还是采用客户账号管理问题 2)客人多项目消费的归并问题 3)多部门进行房态维护的问题 4)与电信程控交换接口实现电话计费的问题 5)如实现流程简化以方便操作的问题 通过与客户进行针对性的讨论,以上问题均得了相应的解决方案。 3基于简单用例的需求讨论 在需求分析阶段,用户提出相关的需求时,因为没有系统,也没有 参照的模型往往是想到哪里说到哪里,所提出的需求没有完整的逻辑连 续性,有些甚至前后存在矛盾,这了解决此问题,我们在前面信息采集 与讨论的基础上,建立系统的用例,此用例模型是系统基本实现流程的 抽象,同时我还列出了模型中需要重点讨论的业务点和问题。我们和用 户一起参照此模型进一步进行讨论,有了模型的参照,用户的思维也开 始逐渐清晰,我们边讨论完善修改模型,通过用例模型的逐步完善和演 化形成用户与开发人员的共识。将在下节中介绍主要的业务用例。 23用例设计用例设计 在酒店管理系统的需求分析中几个重要业务的用例如下: 1散客开房 散客开房是酒店业务中的一个重要流程,如果清晰、并简化数据流是 我们关注的重点,散户开房的简要用例图 2-3: 6 散客 前台问询 客房查询 建立客户信息 建立消费账号 入住 退房结算 收取押金 夜审处理 前台服务员 后台服务 * * * * * * 开房 * * * * * * * * 图 2-3 散客开房用例图 2客户账户管理 如何管理客户在酒店的消费信息,一直是我们与客户讨论的重点,传 统的酒店管理信息大多是以房号为准,客人的消费均记录在其房号下面, 当客人暂时退房而不结算时,就把他的消费记录转到一个虚拟房间下。经 过我们讨论,认为这种方式流程复杂、数据流不清晰,从而采用账户管理 的方式,客人入住酒店是为其建立一下唯一的账,他在酒店所有的消费项 目都可记录在此账户之下,账户还支持拆分和合并。基本用例如图 2-4 所 示: 7 客户 建立账户 收取押金 消费项目定义 住房消费 其它消费 前台服务员 系统管理 后台服务 账户拆分 账户合并 夜审 经营收入报表 * * * * * * * * * * * * * * * * * 经理 图 2-4 客户账户管理用例图 24编写需求规格说明书编写需求规格说明书 在需求采集和用例讨论的基础上,系统的需求流程得以明确,可以开始编 写需求规格说明书;需求规格说明书主要是将用户的需求文档化,变成大家一 致认同的书面规范,主要包含了用例、数据字典、需求规范描述等内容。需求 规格说明书的内容样例见附录一。 8 第三章第三章系统设计系统设计 3.1 概要设计概要设计 1系统的运行环境描述 系统主是基于 Windows 操作系统的应用,客户端与服务器的基本软硬件环 境描述如下: 客户端: 项目最低配置要求建议配置 硬件CPU:PIII 300MHZ 内存:128M 硬盘:5G CPU P4 1.0GHZ 内存:256M 硬盘:20G 软件Windows 95Windows 98/xp/2000/2003 PC 服务器: 项目最低配置要求建议配置 硬件CPU:P4 1GHZ 内存:512M 硬盘:40G XEON 双 CPU 2.4GHZ 内存:2G 硬盘:180G 软件Windows 2000 Advance Server/2003 2系统运行网络构架 在整个酒店管理系统的应用方案中,包含前台接待收银、仓库管理、人事 管理、财务管理、连锁酒店管理、经理查询、WEB 查询与网上预订等几大部份, 但是本论文讨论是主要是前台接待与收银管理部份,这部份也是一个酒店管理 系统应实现的基本功能。 系统运用的总体网络效果如图 3-1 所示。 9 图 3-1 网络效果图 3系统的主要功能分类 此酒店管理系统主要包如下几个功能分类: 1)前台问询 2)前台接待 3)前台收银 4)客房部管理 5)夜审系统 6)基础管理 3.2 功能设计功能设计 如前所述,酒店管理系统主要包含六部功能,本节主要介绍各部份应该实 现的业务处理功能。 1前台问询 主要提供房源查询、宾客资料查询、房价折扣查询等功能,以支持当客人 10 进行前台问询时查询相关信息。 2前台接待 前台接待是系统的业务核心功能,提开房、账号管理、资料登记、资料查 询,当客人进行了相关咨询并确入住后,可通过前台接待部份为客人登记资料、 创建账号、收取押金和开房。 3前台收银 前台收银主要包括账务管理和账务查询两部份,其中账务管理包括结算收 银、交纳押金、退还押金、杂费记账、冲账等,支待与前台收银有关工作。 4客房部管理 客户部管理主要包括报房管理和客房查询两部,报房管理主要是对房态的 维护,如:空房间清扫后更改为可用房等。 5夜审系统 夜审系统类似于我们常说的日结功能,夜审系统为一独立的子程序,运行 在服务后台,当到设定的时间时自动执行夜审功能,夜审功能主要实现生成经 营收入数据,冲减客人账户押,如果押金不足的提示应交纳押金。 6基础管理 定义系统使用前需初始化的相关项目,维护相关基本设置,如:操作人员 定义、权限定义、消费项目定义等。 系统相关功能模块如下图 3-2 所示。 3.3 功能模块详细设计功能模块详细设计 功能模块详细设计主要描述各个功能模块应实现的业务逻辑,应维护的相 关数据表及操作介面的考虑等,由酒店管理系统模块较多,我们在此仅以两个 模块为代表介绍其实现设计: 1房态查询 房态查询是前台业务中的一个核心模块,主要反映现在的房源情况以及房 间状态,无论是前台问询还是前台接待,都是要基于房态查询模块的基础上进 行。但是房态又是由多个部门人员进行维护(前台服务员和客房部人员等) ,所 以在维护时必须进行并发控制。 11 图 3-2 模块菜单图 房态维护流程处理:空房占用(前台服务员为客人开房后)退房(结 算后)打扫(客房部)空房(客房部) ;如果房间有问题需要维修的话工程 部可能将其改为维修状态。 介面组织的考虑:可以以多图形结构反映房态情况,如楼层分、按房间类 型等。 操作方便性考虑:对于前台操作人员来说从房态查询应可以直接进入到客 户信息登记、创建账户、收押金、开房能功能,可以采用点击房间图标后弹出 下拉菜单,然后再选择菜单进行操作。操作介面草图设计(略) 。 数据表维护:(略) ,在数据库设计章进行介绍。 2夜审处理 夜审处理可作为系统中的一个功能模块,手工调用执行,也可以作为一个 独立的程序,运行在后台服务器上,到设定时间时自动执行完成夜审操作。夜 审处理执行时系统开始统计所有夜审数据,自动过房费、城建费、电话费等自 动费用信息;自动计算生成当日的经营日报、结算日报和客房出租日报。提示 12 信息显示完毕后,可在客房部或前台模块中打印出相关的夜审报表。 夜审处理机制:通过调用存储过程,维护相关数据表,生成相关经营报表。 介面组织考虑:可以设置夜审时间,以便程序的自动执行。留有手执行按 钮,支持手工执行。 数据表维护:(略) ,在数据库设计章介绍。 13 第四章第四章数据库结构设计数据库结构设计 数据库结构设计是系统设计阶段的一个重要过程,数据库设计是否合理, 关系到系统的运行效率、可维护性、可扩展性等质量因素。在数据库设计过程 中,我们一般是先基于 UML 语言分析其静态逻辑结构,之后再根据 E-R 图的 相关对象设计系统的物理表结构,采用的工具要有:Microsoft Visio 、Rational Rose 、PowerDesinger 等。 41 数据库概念结构设计数据库概念结构设计 E-R 图(实体关系图)是系统静态结构分析的重要工具,它可以反映出系 统涉及的相关对象,以及对象之间的关系。由于酒店管理系统涉及面广,系统 复杂,本论文仅列举了前台部份涉及对象的简要分析 E-R 图,如下图 4-1 所示: 散散客客 团团体体 前前台台服服务务员员 账账号号 房房间间房房费费 其其他他消消费费 押押金金 员员工工 经经营营日日报报 客客户户服服务务员员 14 图 4-1 E-R 图 42 相关数据表结构设计相关数据表结构设计 进行了 E-R 图的分析后,我们可以基于 E-R 的对象来设计相应的物理表结 构。在设计表结构时,我们制定了表的命名规范、字段的规范以及表设计应该 达到的范式等要求,主要有以下几点: 1表的命名前两到四位以相关对象的汉语音简码开头:如:kf_ 表示 以开房相关的表的命名,后面以表数据相关英语单词命名,如: kf_room_satatus 表示房态表。 2字段以相应英语单词命名,如果过长可以采用简写。 3表的设计应该考虑数据的存储量,如果数据量较大的,可以考虑按 时段组织。 4表的设计应该充分考虑系统的可扩展性。 5表的设计应达第三范式的要求。 以下是部份表结构的物数据模型图,如图 4-2,图 4-3,反映了表具有的字 段、表与表之间的依赖关系等信息。 15 kf_room_accno roomid type price person indate outdate days countnum memo dt status account paytype paymemo ifnote char(8) char(2) money smallint datetime datetime decimal(10,1) int char(20) datetime char(1) char(12) smallint varchar(40) char(1) kf_room_old building layer roomid type bednum oldprice newprice status ifbed bedid bedstatus bedoldprice bednewprice ifuse indate outdate countnum memo ifselect paydate ifadd ifcity ifidd msgnum guest guest_kind bed_room ifroom varchar(1) varchar(2) varchar(6) varchar(2) smallint numeric(19,4) numeric(19,4) varchar(1) varchar(1) varchar(6) varchar(1) numeric(12,2) numeric(12,2) varchar(1) datetime datetime int varchar(20) varchar(1) datetime varchar(1) varchar(1) varchar(1) smallint varchar(1) varchar(1) varchar(1) varchar(1) kf_StatusRoom dt roomid type status datetime char(6) varchar(2) char(1) kf_yd_bill preno nbnum name name_py wbnum prestatus roomnum indate outdate ContactPerson ContactWay tele Email operator modoper sales cfee cardid ydlx canceldate countnum discount memo dt moddt ifroom paycode paytype paymemo source xyno indays ArrFlightNo ArrTime ArrTrans DepFlightNo DepTime DepTrans groupid int smallint char(40) char(20) smallint char(1) int datetime datetime char(20) char(2) char(20) char(40) char(10) char(10) char(10) char(20) char(20) char(1) datetime int decimal text datetime datetime char(1) char(8) tinyint varchar(40) tinyint int int char(10) datetime char(3) char(10) datetime char(3) char(20) kf_yd_cancel_reson id reson smallint char(40) t_zd_client_rep code name memo ifuse sortid char(2) char(20) char(60) char(1) int t_zd_memu id alevel keyid name code winname sortid parm parentid namepy client replimit windowtype int tinyint int char(40) char(5) char(40) tinyint char(40) int char(20) char(2) char(1) tinyint t_zd_operator code name pass ifuse memo iffirst gradeid namepy char(8) char(10) char(8) char(1) varchar(50) char(1) int varchar(10) t_zd_operator_group groupnamechar(40) t_zd_paycode code name state ifcz ifuse ifsave sortid kl_ifsave front_ifsave default_code char(8) char(20) char(1) char(1) char(1) char(1) int char(1) char(1) char(2) 图 4-2 表结构设计图 16 kf_resroom dt number type request datetime int varchar(2) int kf_room building layer roomid type bednum oldprice newprice status indate outdate days countnum memo ifuse ifselect paydate ifadd ifcity ifidd ifiddalert msgnum guest flag preno ifvip roombed flag1 flag2 flag3 flag4 flag5 account discount paytype paymemo ifnote cardno cardtimes sortid ifp char(1) char(2) char(6) char(2) smallint money money char(1) datetime datetime decimal(10,1) int char(20) char(1) char(1) datetime char(1) char(1) char(1) char(1) smallint char(1) char(1) int char(1) char(1) char(1) char(1) char(1) char(1) char(1) char(12) char(8) smallint char(40) char(1) char(20) smallint int bit kf_zd_discount id type discount newprice memo ifuse sortid code ifdefault int char(2) decimal(10,2) decimal(10,2) varchar(50) char(1) int varchar(8) char(1) kf_zd_guest_kind code name sortid char(2) char(10) int kf_zd_layer layer name building ifuse tj_layer sortID char(2) char(20) char(1) char(1) smallint int kf_zd_room_flag id memo ifuse sortid tinyint char(40) char(1) int t_main_right_client code ccode char(8) char(2) t_main_right_modular code mcode client char(8) char(20) char(2) t_zd_client code name ifuse FrontItem sortID ifcash ifkl ifkc client_kc klface ifsec ifmanage ifgxdw client_gxdw repgroup iftrunk trunktype jztype refreshtime setstatus print_up print_down print_lines print_size printcode print_type bkimage namepy ifcard char(2) varchar(20) char(1) char(2) int char(1) char(1) char(1) char(2) char(1) char(1) char(1) char(1) char(2) char(2) char(1) char(2) char(1) smallint int smallint smallint smallint smallint int char(1) varchar(50) varchar(20) char(1) kf_yd_room_detail roomid preno paytype paymemo char(8) int smallint varchar(40) kf_yd_room_type preno type roomnum price pricecode discount oldprice minnum lowlimit int char(1) int money varchar(8) decimal(10,2) money smallint smallint kf_ylj rq sjsr datetime decimal(12,2) kf_zd_building building name ifuse sortID char(1) char(10) char(1) int rep_static_month_jie mount rq hoteldt decimal(18,2) char(10) datetime rep_static_year mount rq hoteldt decimal(18,2) char(10) datetime rep_static_year_jie mount rq hoteldt decimal(18,2) char(10) datetime t_main_parm code parm memo int text varchar(200) t_main_print_log hoteldt client bills prints decimal(10) char(2) int int 图 4-3 表结构设计图 17 第五章第五章开发平台介绍开发平台介绍 酒店管理系统采用的数据库是 MSSQLSERVER 2000,系统主要采 PowerBuilder 9.0 作为开发工具。MSSQLSERVER 是主流的大型数据库之一, 是 Miscrosoft 公司的是产品,其主要特点是简单易用。Powerbuilder 是基于数据 库的主要开发工具之一,其主要特点是通过使用 DataWindow 可以快速实现基 于各种数据源的报表、数据录入等功能开发。 4.1PowerBulider 9.0 介绍介绍 PowerBuilder 是 Sybase 公司的子公司 PowerSoft 推出的一个用于设计企业 级客户/服务器应用程序的开发工具,它支持多种平台,具备跨平台开发应用程 序的能力。控件是构造 PowerBuilder 应用程序界面的基本部件,应用程序利用 控件完成输入、输出、装饰等任务。控件可以分成以下几类: 1编辑控件:编辑控件用于输入、编辑数据。 2显示输入控件:显示输入出控件用于显示输出文本、统计图、图像。 3选择操作控件:选择操作控件用于让用户从多种选项中选择一项或 多项。 4装饰控件:用于美化用户界面,将程序功能分组。 5按钮控件:按钮控件用于接收用户的操作,以完成程序指定的功能。 PowerBuilder 9.0 是 Sybase 公司新推出的专业数据库开发工具,也是该公 司的拳头产品。作为业界领先的、快捷的应用开发工具,PowerBuilder 9.0 将有 助于开发者持续创建面向客户的应用系统,可以满足此类关键任务的商业需求。 同时,该产品中新增的功能将有利于开发者进一步深入地从事网络和 N-tier 的 开发工作。该产品建立在 Sybase 公司的下一代 RAD 环境4GLplus 的基础 上,可以将设计、建模、开发、部署、管理等各项功能紧密集成,进一步提高 开发者的工作效率。而且,该产品还具有对 J2EE 和 Microsoft .Net 开发环境的 支持功能,并且与 PowerDesigner 结合得更为紧密。总之,PowerBuilder 9.0 的 18 发布预示了 4GLplus 的开端,它将会帮助开发者在更为开放、高度集成的开发 环境中运用 PowerBuilder 9.0 的强大功能来轻松工作。 4.2 MSSQLSERVER 数据库介绍数据库介绍 SQL Server 是一个关系数据库管理系统它最初是由 Microsoft Sybase 和 Ash ton-Tate 三家公司共同开发的于 1988 年推出了第一个 OS/2 版本在 Windows NT 推出后 Microsoft 与 Sybase 在 SQL Server 的开发上就分道扬镳了 Microsoft 将 S QL Server 移植到 Windows NT 。 SQL Server 2000 是 Microsoft 公司推出的 SQL Server 数据库管理系统的最 新版本该版本继承了 SQL Server 7.0 版本的优点同时又比它增加了许多更先进 的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行 Mi crosoft Windows 98 的膝上型电脑到运行 Microsoft Windows 2000 的大型多处理 器的服务器等多种平台使用 。 19 第六章第六章系统实现系统实现 经过前面的需求分析、系统设计、数据库设计之后,我们可以着手开始进 行系统的编码实现工作。经过前面的开发工具介绍,我们知道 PowerBuilder 是 一款面向对象基于事件驱动的高效开发工具,可以通过 DataWindow 连接不同 的数据源实现快速的相关开发工作。本章主要介绍几个重要功能模块的实现情 况。 61 系统登录系统登录 系统登录需要验证操作员的 ID 及口令,同时由于酒店是多班制,所以登录 是需要选择是早班、中班还是晚班,以确认是否需要交班。操作员登录验证的 实现代码见附 2.1,实现窗口如图 6-1 所示: 图 6-1 登录介面 62 系统框架系统框架 系统的框架结构如图 6-2 所示,左边是菜单,使用了一个 TreeView 控件来 实现,右边是打开的窗口区域,同时右边区也显示一个最常用的开房流程的菜 单,可以直接点击进入。 20 图 6-2 主介面图 63 实时房态图实时房态图 实时房态图是酒店管理系统中的一个重要功能,它可以多种方式进行显示 当前的房态信息,主要采用了 DataWindow 结合 Listbox 控件实现,并直接支持 相关的业务操作,如下: (1)打开前台接待散客开房,鼠标双击运行“散客开房” ,系统进入 “实时房态”窗口实时房态图上方的设置框中列出可供选择的楼区、 楼层、房型、房态及客房属性信息。 (2)根据客人选择房间的条件在设置框中进行过滤处理,直到符合客人 选房条件的房间出现 (3)在所选择的可用房图标上单击鼠标右键,在弹出的菜单上单击“开 房”操作子菜单,系统进入“客史查询”窗口 (4)输入客人名称,点击“新建”按钮进入客人基本信息窗口,在此可 以建立一个新的抵店客户信息;如果是老客户入住,可以通过输入 “中文名” 、 “名” 、 “姓”或者“拼音编码”等信息来提取老客户资料, 再进行部分信息修改即可。客人基本信息登记窗口中右边列出了老客 21 户上次入住的房间号、上次的房价、累计入住次数、累计消费金额、 累计间夜数等历史信息可供参考 (5)客人基本信息输入完毕后,点击 “确定” 按钮进入客房信息修改 窗口,在此可设置宾客账号信息和客房信息,根据客人入住的实际情 况输入其抵店时间和拟离店时间(或预住天数) ;房间的实际价格(如 果房间已做打折处理,还要输入折扣授权人信息) ;如果收取城建费, 请将“收城建费”一项设置为“收” ;如果客人有加床要求请将“加床” 一项设置为“加床” ; “付款方式”及”特殊付账”项应根据客人情 况进行处理 (6)设置完毕,确定无误后单击“确定”按钮,系统提示“确定房间信 息设置正确吗?” ,单击”是(Y)” ,系统提示“开房完毕!”信息并且 自动分配给客人一个帐号,点击“确定”后系统自动返回实时房态窗 实时房态图实现效果如图 6-3 所示: 图 6-3 房态图 64 客户账号管理客户账号管理 直接创建一个包含账号名称、账号类型、付款方式、备注等信息的账号,该 22 模块展示了使用 DataWindow 可以方便地实现录入功能的开发。如图 6-4: 图 6-4 账号管理 (1)打开前台接待账号管理,鼠标双击运行“直接创建帐号” ,系统 进入“直接创建账号”窗口 (2)输入账号名称、账号类型、付款方式、特殊付账及备注等相关信息, 确认无误后,单击“确定”按钮,系统自动生成新的账号,直接创建账号操作 完毕 65 夜审处理夜审处理 图 6-5 夜审处理 夜审是独立的应用程序,一旦系统启用后,该模块便同时启动,不能轻易 退出(建议在服务器上运行) ,夜审实现的代码见附 2.2。 (1)手工执行 应用程序启动进入“自动过房费/城建费/电话费”窗口 上方时间为最近一次夜审时间,单击“手工“按钮,系统开始统计所有夜审数 据,自动过房费、城建费、电话费等自动费用信息;自动计算生成当日的经营 日报、结算日报和客房出租日报。提示信息显示完毕后,可在客房部或前台模 块中打印出相关的夜审报表。 (2)根据酒店实际情况,设置系统自动夜审时间,通常在凌晨 2 时左右。系 统可自动完成夜间稽核的各项计算而不必人工干预。 23 第七章第七章结束语结束语 论文主要介绍了一个酒店管理系统从需求分析到系统设计再到数据库结构 设计和系统实现的过程,系统采用瀑布模式开发,前面说到的几个阶段都是一 个个重要的里程碑,每个阶段都有相应的文档产生,如需求分析阶段产生需求 分析规格说明书等。在软件开发的实际过程中,每个过程都应该经过专家小组 的评审才进入下一阶段,只是在论文中由于篇幅所限,每个过程均以部份内容 为代表进行介绍,说明该过程应该完成的工作和内容。 IT 技术总是在进行着日新月异的更新,在学好基础知识的同时,还必须不 断地了解和学习新的技术,以适应其发展。我希望在以后的工作中,以此酒店 管理系统的开发为新的起点,不断提高系统分析与设计和项目管理的能力。 24 参考文献参考文献 1 酒店及餐饮业管理 人民邮电出版社林长青 2 宾馆酒店总务管理 教育出版社赵祥 3 酒店管理经理人职责 教育出版社 4PowerBuilder 9.0 用户参考手册 国防工业出版社新世纪工作室 5SQL Server 2000 金典教程 人民邮电出版社彭林 余艳 6 URL:/ 7 URL:/hotelmanage/ 致谢致谢 春华秋实,时光易逝。转眼三年的本科阶段学习生涯已近尾声。通过这三 年的学习,使我对计算机科学与技术专业的相关基础知识有了更深该了解和认 识,这将有助于我在工作中进一步提高使用计算机的能力。 在此,衷心感谢导师何敏老师对我的精心指导,也感谢其他任课教师和班 主任孜孜不倦的教导;在平时的学习和生活中,同学们也给予了许多关心,在 次向我的同学表示感谢。 25 附录一附录一 酒店管理系统需求规格说明书样本酒店管理系统需求规格说明书样本 限于篇幅,仅列出规格说明书的目录部份:限于篇幅,仅列出规格说明书的目录部份: 目 录 1.引言 1.1. 背景 1.2. 参考资料 1.3. 假定和约束 1.4. 用户的特点 2. 功能需求 2.1. 系统范围 2.2. 系统体系结构(二层架构的系统可剪裁本小节) 2.3. 系统总体流程 2.4. 需求分析 2.4.1. XXXXXXX(功能需求名称) . 功能描述 . 业务建模 . 用例描述 . 用户界面 2.4.2. XXXXXXX(功能需求名称) 3. 非功能需求 3.1. 性能要求 3.1.1. 精度 3.1.2. 时间特性要求 3.1.3. 输人输出要求 3.2. 数据管理能力要求 3.3. 安全保密性要求 3.4. 灵活性要求 3.5. 其他专门要求 4. 运行环境规定 4.1. 设备 4.2. 支持软件 4.3. 接口 4.4. 控制 5. 需求跟踪 6. 签批单 26 附录二附录二 PowerScript 代码示例代码示例 1 操作员登录验证代码操作员登录验证代码 /工号或口令为空 apptemp.opercode=trim(sle_code.text) apptemp.operpass=trim(sle_pass.text) if isnull(apptemp.opercode) or apptemp.opercode=“ then sle_code.SetFocus() return elseif isnull(apptemp.operpass) or apptemp.operpass=“ then sle_pass.SetFocus() return end if string ls_pass,ls_s1,ls_s2 int mm,dd,li_i,li_c,li_p /计算临时口令 mm=month(today() dd=day(today() ls_s1=right(string(mm),1) ls_s2=right(string(dd),1) li_i=integer(ls_s1)+integer(ls_s2) ls_pass = string(mm*dd+6837) li_c = len(sle_code.text) li_p = len(sle_pass.text) if apptemp.opercode = SA and apptemp.operpass = ls_pass then apptemp.opername = “程序员“ goto lok end if /读取操作员名称 setnull(apptemp.opername) SELECT t_zd_ INTO :apptemp.opername FROM t_zd_operator WHERE t_zd_operator.code = :apptemp.opercode and t_zd_operator.pass = :apptemp.operpass and t_zd_operator.ifuse = Y ; 27 /没有登记该操作人员 if isnull(apptemp.opername) then t_f_ok(“对不起!n 您无权进入系统!“) sle_pass.setfocus() return else setnull(apptemp.opername) SELECT t_zd_ INTO :apptemp.opername FROM t_zd_operator WHERE t_zd_operator.code = :apptemp.opercode and len(t_zd_operator.code) = :li_c and t_zd_operator.pass = :apptemp.operpass and len(t_zd_operator.pass) = :li_p and t_zd_operator.ifuse = Y ; if isnull(apptemp.opername) then t_f_ok(“输入不正确!n 请检查输入数据的合理性!“) sle_pass.setfocus() return end if end if lok: /正确 app.opercode=apptemp.opercode app.opername=apptemp.opername app.operpass=apptemp.operpass gv.groupid = uo_1.of_getvalue() app.logindt=t_f_getsvrdt() SELECT t_zd_ INTO :app.clientname FROM t_zd_client WHERE t_zd_client.code = :app.clientcode ; gv.flag=“ok“ /写日志 gv.memo=“ t_f_event(1) closewithreturn(parent,OK) 28 2 夜审实现函数夜审实现函数 wf_yjsh()代码代码 st_note.text=“开始“ /判断狗 h_f_nightaudit() int li_rooms,li datetime dt,ldt1,ldt2 string ls,lsdt dt=t_f_getsvrdt() /判断是否

温馨提示

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

评论

0/150

提交评论