基于pb的宾馆客房管理系统论文内容摘要:

其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库中至存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。 用户可以用 SQL 语言对视图和基本表进行查询。 在用户眼中,视图和基本表都是关系,而存储文件对用户是透明的。 SQL 视图 1 视图 2 基本表 1 基本表 2 基本表 3 基本表 4 存储文件 2 存储文件 1 9 第 3 章 系统需求分析 随着改革开发的步伐,宾馆酒店等住宿服务迅速发展。 由于宾馆酒店增加,竞争也更加激烈,同时住宿的客人也迅猛地增加,给一些宾馆酒店也带来了很大的服务、管理方面的压力。 如何能提高服务质量、降低服 务成本,更好地进行管理,为客人提供更好的服务,在激烈的竞争中立于不败之地,是很多宾馆的迫切要求。 本章开发一个可以应用于宾馆酒店的客房管理系统。 通过使用本系统,宾馆酒店可以实现对客人的入住、结帐等过程的电子化、规范化操作,可以方便的进行各种经营统计。 主要数据流程图 在采用人工进行客房管理的宾馆酒店,一般的工作流程是这样的: 一、客人来到宾馆,需要进行入住登记 首先,客人对前天服务员说出住宿的一些要求。 前台服务员根据顾客的要求,查找客房资源,看是否有符合客人要求的客房。 如果没有,向客人说明情况,给客 人推荐其他客房。 如果有合适的客房,客人进行住宿登记。 住宿登记包括客人情况登记,住房记录登记,押金收取,开押金证明。 最后,发放房间钥匙或入房凭证。 其流程图如图 31 所示。 二、客人不再住宿时,要执行退房的房间检查和退房登记。 退房时房间检查的一般步骤如下。 ( 1) 首先客人打电话给前台服务员或楼层服务员,告知要退房,前台服务员告知楼层服务员某房间要退房。 ( 2) 楼层服务员接到客人或前台服务员打的退房电话后,到要退房的房间,在客人允许的情况下执行退房的房间检查。 ( 3) 当房间检查完毕,没有房间设置损坏后,楼层服务员给客人出具无物品 损坏证明或直接给前台服务员打电话,告知无物品损坏。 ( 4) 在拿到无物品损坏证明或楼层服务员给前台打完无物品损坏的电话后,客人就可以拿着押金证明、房间钥匙或住房凭证到前台进行退房登记。 ( 5) 在前台,客人向前台退还房间钥匙或者住房凭证,出示无物品损坏证明或 10 前台接到楼层服务员打的无物品损坏电话后, 对 进行客人退房登记、结算住宿费用,收取押金凭证,退还押金,开具发票 等操作。 其流程图如图 32所示。 图 31 入住登记流程图 客人来到前台提出住宿要求 开始 结束 服务员查询是否有符合条件的客房 住宿登记,押金收取,开押金证明,发放钥匙或住宿证明等 向客人推荐房间 客人是否同意 11 图 32 房间检查和退房流程图 客人给前台或楼层打电话提出退房要求 楼层服务员检查房间 开始 房间内是否有物品损坏 楼层服务员出具无损怀证明或给前台打电话 客人拿着押金证明、房间钥匙 或住房凭证到前台 是否有无物品损坏证明 结算住宿费用,收取押金凭证,退还押金,开具发票 结束 宾馆与客人交涉 等待 12 数据结构设计 系统数据库 ER 图 客房管理系统主要是管理宾馆酒店的日常客人入住登记、退房结帐。 所以,从数据库设计的角度来讲,涉及到两个实体:客人和客房;管理的是两个实体以及他们之间的关系:入住退房关系。 客人实体有姓名、性别、证件号码等属性;客房实体有房间号、床位数等属性。 入住退房关系有客人名称、客房名称、入住时间、退房时间等属性。 其 ER 图如 33 所示。 图 33 客房管 理系统的 ER 图 系统数据表结构 由于本客房管理系统要求有较高的安全性:不是系统用户的人员不能登录系统,系统的不同用户拥有不同的操作权限,所以系统需要有一个存储用户名、密码和权限的表 ——用户表。 依据上面的 ER 图和分析,可以设计 4 张逻辑表:客人表、客房表、入住表和系统用户表,各逻辑表的结构见表 31。 客人 客房 入库 证件号码 出生日期 押金 入住时间 计划天数 实际天数 发放钥匙 收回钥匙 床位数目 事由 籍 贯 性别 姓名 备注 类型 入住 房间号 13 表 31 客房管理系统各逻辑表结构 客人表字段名 客房表字段名 入住表字段名 系统用户表字段名 姓名 房间号 姓名 用户名 性别 入住 事由 密码 籍贯 类型 房间号 权限级别 出生日期 床位数目 入住日期 证件名称 备注 入住时间 证件号码 计划天数 工作单位 实际天数 押金 发放钥匙 收回钥匙 退房日期 退房时间 住宿费用 损坏物品 赔偿金额 系统功能模块框架图 该系统的功能模块框架图如图 34 所示。 图 34 系统功能模块框架图 客房管理系统 登 录 模 块 入 住 登 记 模 块 退 房 结 帐 模 块 综 合 管 理 模 块 系 统 维 护 模 块 14 第 4 章 系统详细设计 系统模块设计 登录模块的设计 实现安全登录功能, 界面如图 41 所示。 让用户输入用户名和密码,通过用户输入的用户名和密码,判断用户是否合法,是否允许用户登录系统。 如果连续 3次输入用户名、密码错误,系统自动关闭。 如果用户输入的用户名、密码正确,则打开主窗口。 登录模块实现安全登录功能。 负责验证输入的用户名、密码的正确性,只涉及到 Sysuser 一个表。 主要功能如下: 1)用户输入用户名和密码,系统依据用户名和密码查找 Sysuser 表。 2)对能查到的记录情况,即用户提供的用户名和密码是正确的,读取 Sysuser表中该用户的权限,进行权限设置。 3)对在 Sysuser 表中查不到记录的情况,即用户提供的用户名和密码是错误的,记录错误次数,并当错误次数达到三次时,自动关闭系统,起到保护系统的作用。 4)如果用户取消登录,则终止应用程序。 图 41 登录模块 在 cb_login 的 clicked()事件中,编写以下代码: string ls_username,ls_pw ls_username=trim() ls_pw=trim() select level into :gi_level from sysuser where (name=:ls_username) and 15 (pw=:ls_pw) using sqlca。 if (not (=0)) then ii_errortime+=1 if ii_errortime=3 then messagebox(登录错误 ,错误次数太多, ~n 系统自动退出。 ) close(parent) else messagebox(登录错误 ,用户名或密码错误。 ) end if else if gi_level=0 then messagebox(警告。 ,用户已被锁定。 ~n 请找管理员解锁。 ) halt else open(w_main) close(parent) end if end if (详细程序请见附录 “程序 1”) 主窗口模块的程序设计 系统的主窗口,登录后显示, MDI 主窗口模式。 界面如图 42 所示。 从系统主要窗口可以打开入住登记窗口、退 房结帐窗口、综合操作窗口和系统维护窗口。 然后可以查看和修改相应的窗口内容。 主窗口是本系统的基本窗口,系统的所有其他操作窗口界面都要通过主窗口打开。 主窗口采用 MDI 类型窗口。 由于 MDI 类型窗口必须要有一个菜单,所以先要建立一个菜单 ,这样将显的整个软件方便很多。 16 图 42 主窗口模块 菜单项的 clicked( )事件进行编码 ( 1)在 “m_入住登记 i”菜单项的 clicked( )事件中,编写如下代码: opensheet(w_in,w_main,2,Layered!) ( 2)在 “m_退房结帐 o” 菜单 项的 clicked( )事件中,编写如下代码: opensheet(w_out,w_main,2,Layered!) ( 3)在 “m_综合操作 m” 菜单项的 clicked( )事件中,编写如下代码: opensheet(w_op,w_main,2,Layered! ) ( 4)在 “m_系统维护 s” 菜单项的 clicked( )事件中,编写如下代码: opensheet(w_sysuser,w_main,2,Layered!) ( 5)在 “m_退出 x” 菜单项的 clicked( )事件中, 编写如下代码: close(parentwindow) (详细程序请见附录 “程序 2”) 入住登记模块的程序设计 实现系统的入住登记功能,界面如图 43 所示。 可以依据客人提出的住宿要求查找相应的客房,登记客人的基本资料,对老客人可以显示以前登记的基本资料,登记入住记录,实收押金数目,钥匙或住房凭证发放情况等。 入住登记模块主要 17 涉及到 guest 表、 room 表和 lodging 表。 主要功能如下: 1)把系统当前的日期和时间设置为入住信息中的入住日期和入住时间。 2)用户在客人信息部分中输入客人名称和客人出 生日期。 3)入住登记模块从 guest 表中查询记录,如果能查到记录,则显示客人记录,如果查不到记录,即认为这是一个新客人,要在最后向 guest 表中插入数据。 在查询客人记录的时候将客人的编号和姓名设置到入住信息中。 4)用户在房间要求部分输入对房间的要求,入住登记模块依据提供的房间要求查询 room 表,显示符合要求的客房记录,如果查不到符合要求的房间,提示是否查看所有房间的记录。 如果用户在房间记录中选择某个房间记录,则将该记录信息自动显示到入住信息中。 5)用户向输入记录中填入一些必要的信息。 6)最后将入住记 录提交到数据库,并对 room 表的入住数目进行相应的修改。 图 43 入住登记模块 在 cb_guestquery(查询)的 clicked( )事件中编写以下代码: string ls_name date ld_borndate ls_name=trim((1,姓名 )) ld_borndate=( 1,出生日期 ) (ls_name,ld_borndate) 18 if ( )=0 then ( (0)) ( 1,姓名 ,ls_name) ( 1,出生日期 ,ld_borndate) end if (详细程序请见附录 “程序 3”) 退房结帐模块的程序设计 实现系统的退房结帐功能,界面如图 44 所示。 可以查询入住记录,退房时间,入宿费用,退还押金情况,钥匙或凭证退还情况,物品损坏情况 及赔偿情况。 退房结帐模块通过输入的客人的姓名和房间。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。