当前位置:文档之家› 酒店管理系统设计 毕业设计

酒店管理系统设计 毕业设计

酒店管理系统设计张平(德州学院物理系,山东德州253023)摘要本论文针对酒店管理系统的简单的功能进行设计,以求达到对酒店的简单管理。

共分为三章。

第一章主要阐述了该应用系统的设计思路,其中包括系统的功能目标、功能模块的设计图以及应用系统的开发工具;第二章主要讲述数据库设计过程,包括数据库的需求分析、概念结构设计以及逻辑结构设计;第三章是整个论文的主体部分,主要介绍各个主体模块的功能实现以及源程序代码。

本论文的设计过程中,应用了图形界面的应用程序开发环境Power Builder 9.0以及SQL Server 7 作为后台数据库支持,通过PB9.0 与数据库的连接完成了对数据库现存数据的操作,从而实现了对整个酒店系统的管理。

关键词酒店管理系统;功能模块;数据库; Power Builder 9.0; SQL; Server 7绪论在科技高速发展的今天,一切的商业行为都能跟计算机搭上边。

这不仅仅是为了不落后于时代,不被主流所淘汰,更是为了更好的借助于计算机来实现更大的商业利益。

随着更多的人接受电子商务,以及年轻一代享受电脑带来的方便、迅速,酒店行业也不例外的加入了电子商务时代的行列。

现代化的酒店是集客房、餐饮、通讯、娱乐,商务文化及其他各种服务与设施为一体化的消费场所。

酒店在正常的运营中需要对客房资源、顾客信息、结算信息等进行管理,但是酒店组织庞大,服务项目多,信息量大,要想提高效率,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。

酒店管理系统正是为此而设计的。

1 系统的功能框架设计1.1 功能目标该酒店管理系统主要有两大功能模块,即:客房部管理和餐饮部管理。

1.1.1 客房管理该模块主要用来实现客户登记,并打印入住单。

根据客人的需求查询房间,进而选定房间,并填写客人信息,完成登记,最后打印入住单。

要求实现查询客房状态(占用或空房)、显示客房类型(标准间、单人间、豪华间等)和查看已入住客户信息等功能。

1.1.2 餐饮管理餐饮管理分菜单、点菜、结帐、报表、菜谱编辑等。

下面列举一些最主要的功能:菜单:列出常用菜名称、编号、所属类别、定价等内容。

点菜:记录点菜单、定价、台号、就餐人数、就餐人员类别、就餐时间、服务员等。

结帐:记录结算信息。

1.1.3 系统维护该功能模块为用户提供维护、设置功能。

在相应的设置模块中用户可以自行设置系统的数据,设置完成以后该设置立刻会在系统中生效,并在下一次的使用中反映出来。

在这里,数据维护非常重要的,它的作用是将系统中用户选择的数据进行初始化,一旦操作完成,系统中原有的数据将会被全部删除,所以需慎重使用。

1.2 功能模块图酒店管理系统的功能模块如图1-1。

图1-1 酒店管理系统功能模块图1.3 开发工具选择1.3.1 前台开发工具的选择该酒店管理系统前端开发工具为PowerBuilder9.0,PowerBuilder是一个图形界面的应用程序开发环境。

在Client/Server结构的应用中,PowerBuilder具有描述多个数据库连接与检索的前端能力。

尤其是PowerBuilder能从大多数流行的RDBMS中存取数据,且不管数据存放在什么地方。

另外,各种应用程序又可以独立于RDBMS,因为PowerBuilder 可以与数据库的标准操纵语言SQL(结构化查询语言)进行通信。

PowerBuilder相对于其他应用程序开发环境来说,可使开发人员的工作更快、成本更低、质量更高、功能更强。

PowerBuilder为应用开发提供了全面支持,可以概括为如下五点。

➢事件驱动应用程序➢PowerScript 语言与函数➢面向对象的编程➢跨平台开发➢与数据库的连接性1.3.2 数据库OS平台的选择该酒店管理系统选用sql server7作为后台数据库支持。

2 数据库设计2.1 数据库需求分析根据对客房部的功能需求分析,画出系统的数据流图,如图2-1。

图2-1 客房部数据流图通过对酒店客房部管理的内容和数据流程分析,设计的数据项和数据结构如下:客房信息:包括的数据项有房间号、房间类型、房间状态。

客房登记信息:包含数据项有姓名、性别、职业、工作单位、联系电话、证件名称、证件号码、住址、国籍、房间号、登记时间、预付金、折扣、备注。

客房结帐信息:包含数据项有房间号、姓名、性别、证件名称、证件号、国籍、退房时间、住宿天数、预付金、住宿费、其他费用、总费用、折扣、收银员、备注。

客房预定信息:包含数据项有房间号、预定人姓名、证件名称、证件号码、押金、联系电话、操作员、备注。

根据对餐饮部的功能需求分析,画出系统的数据流图,如图2-1。

图2-2 客房部数据流图餐桌信息:桌号、状态。

菜单信息:包括的数据项有菜名、所属类别、所属子类、价格、折扣、实收价格、备注。

菜统计:菜名、份数、金额、桌号、就餐时间、是否结帐。

就餐结帐:桌号、就餐人数、就餐时间、结帐时间、服务员名、就餐费、其他费用、总费用、支付方式、收银员、备注。

定餐信息:桌号、定餐人姓名、联系电话、定餐时间、就餐时间、备注。

2.2 数据库概念结构设计根据上面设计,规划出实体ER图有:客房实体、客户实体、开房登记实体、退房结帐实体。

图2-3 客房实体ER图图2-4 客户实体ER图图2-5 开房登记实体ER图图2-6 退房结帐实体ER图图2-7 菜单信息实体ER图图2-8 就餐结帐实体ER图图2-9 菜统计实体ER图图2-10 定餐信息实体ER图2.3 数据库逻辑结构设计表2-10 菜统计(cai_tongji)Fenshu Int Null份数Jine Numeric 9Null金额Zhuohao Varchar5Null桌号Jiucantime Datetime Null就餐时间shifoujiezhang varchar4Null是否结帐表2-11 就餐登记字段名字段类型字段长度可否为空说明id varchar5Not null id号zhuohao Varchar5Not null桌号Jiucanren_name Varchar10Null姓名renshu Varchar2Null人数jiucantime datetime Null就餐时间Fuwuyuan Varchar10Null服务员姓名3 系统实现3.1 客房登记模块该系统模块完成的功能主要为用户登记并打印入住单发票,是客房管理系统的重要模块之一。

展现给用户的两个界面,即两个窗口分别为w_kf_dengji和w_kf_dengji_ruzhudan 和以上窗口相关连还有三个数据窗口和四个表,分别为dw_kf_all,dw_kf_zhuangtai,dw_kf_rzxx;kf_dengjixinxi,kf_leixing,kf_xinxi,kf_jiezhang。

其实现登记功能的界面如图3-1所示。

图3-1 实现登记功能的界面该界面主要分为两大区域,即客房状态区和用户注册区。

在客房状态区的左上角的下拉列表框中显示的是所有可供选择的房间的类别,根据住客需求来选择某类房间时,在下拉菜单选项中“空房间”,即可进行检索。

检索结果在左边的下半部(数据窗口dw_1)中显示出来,其中包括房号,类别,价格。

具体实现代码如下:if ddlb_1.text='所有可供' thenddlb_1.text="所有可供"dw_1.dataobject="dw_kf_all"dw_1.settransobject(sqlca)dw_1.retrieve("空房间")dw_1.selectrow(0,false)elsedw_1.dataobject="dw_kf_zhuangtai"dw_1.settransobject(sqlca)dw_1.retrieve(ddlb_1.text,"空房间")dw_1.selectrow(0,false)end if在dw_1中双击某一行时,该行相关信息将显示在该窗口的右半部分,即用户注册区。

实现代码为:sle_1.text=dw_1.GetItemstring(dw_1.getrow(),1)sle_2.text=dw_1.GetItemstring(dw_1.getrow(),2)sle_3.text=string(dw_1.GetItemnumber(dw_1.getrow(),3))当成功的完成了用户信息的注册后,即点击cb_1按扭则具有该用户信息的空房间记录将被修改为入住房,则在下一次检索空房间记录时,此房间信息将不被显示。

该过程用insert语句将用户的信息插入到表kf_dengjixinxi和kf_jiezhang中。

具体实现代码如下:select count(id) into :num from kf_dengjixinxi;bb=string(num+1)insertintokf_dengjixinxivalues(:bb,:sle_9.text,:sle_8.text,:sle_6.text,:sle_5.text,:sle_7.text,:ddlb_2.text ,:sle_12.text,:sle_15.text,:sle_14.text,:sle_1.text,:dt,:cc,:ddlb_3.text,:dd, :mle_1.text,:sle_16.text,'否');update kf_xinxi set kf_zhuangtai='入住房' where kf_no=:sle_1.text;select count(id) into :num1 from kf_jiezhang;jz_num=string(num1+1)insertintokf_jiezhang(id,kf_no,name,sex,zhengjianname,zhengjianhao,guoji,yufujin,shouyinyuan,beizh u,shifoujiezhang)values(:jz_num,:sle_1.text,:sle_9.text,:sle_8.text,:ddlb_2.text,:sle_12.text,:sle_1 4.text,:cc,:sle_16.text,:mle_1.text,'否');commit;dw_1.dataobject="dw_kf_all"dw_1.settransobject(sqlca)dw_1.retrieve("空房间")sle_4.setfocus()sle_13.text=string(datetime(today(),now()))此窗口中用游标实现数据窗口取数据的代码为:string chint shu,iDECLARE kf_lx CURSOR FORSELECT kf_leixingFROM kf_leixing;select count(kf_leixing)into :shufrom kf_leixing;open kf_lx;for i=1 to shufetch kf_lx into :ch ;ddlb_1.additem(ch)nextclose kf_lx;ddlb_1.text="所有可供"dw_1.dataobject="dw_kf_all"dw_1.settransobject(sqlca)dw_1.retrieve("空房间")dw_1.selectrow(0,false)if dw_1.rowcount()<1 thenmessagebox("","暂时没有空房间!")cb_1.enabled=falseelsesle_4.setfocus()sle_13.text=string(datetime(today(),now()))end if当点击cb_2(代码为:open(w_kf_dengji_ruzhudan))时显示的是客房入住单的界面,如图3-2。

相关主题