- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
客房管理系统设计
在当今经济和商务往来交往日益频繁的状况下,宾馆服务行业正面临客流量骤增的压力。越来越多的宾馆饭店都认识到传统的管理方法已经不能适合当今社会的需要,必须借助先进的计算机信息技术对宾馆服务进行管理。“客房管理系统”可以说是整个宾馆计算机信息管理的中心子系统,因为宾馆最主要的功能就是为旅客提供客房。设计客房管理这样一个系统,可以涉及到大多数SQL Server数据库的重要数据库对象、重要功能和特性,比如:视图、触发器和存储过程等。由此,通过这个课程设计可以加深对这些SQL Server数据库知识的学习、理解,积累在实际工程应用中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具开发数据库管理系统的基本方法。
本课程设计的主要目的是学习和练习SQL Server数据库的实际应用。
1.系统功能设计
1).数据录入功能
在本系统中提供客人信息登记功能。可以录入客人的姓名、性别、年龄、身份证号码、入住时间、预计入住天数、客房类别、客房号、离店时间以及缴纳押金金额等信息。在客人退房时,系统根据输入的离店时间及客房单价自动计算客人住宿费金额。
2).数据查询功能
系统需要提供以下查询功能:
查某类客房的入住情况及空房情况,显示所有该类客房空房数目和客房号。
根据客人姓名信息查询客人信息;根据客房号查询入住客人的信息。
查询某个客人住宿费用情况,显示客人缴纳押金金额,实际入住天数、客房价格、实际住宿费、住宿费差额及余额等信息。
查询所有入住时间达到或超过预计入住天数的客人。
3).数据统计功能
① 统计一段时间内各种客房的入住情况。
② 统计全年各月份的客房收入。
③ 统计一段时间内各类客房的入住率。
2.数据库设计
1). 数据库与数据表设计
2). 数据完整性设计
① 主键约束、非空值约束
② CHECK约束 离店时间入住时间
③ 使用缺省值 入住时间、预计入住天数
④ 惟一约束 客房类别
⑤ 外键约束
⑥ 规则 身份证长度 15 OR 18
3). 视图、触发器和存储过程设计
1、客人选择客房处理
客人来到饭店入住前要做的第一件事是选择合适的客房,客人将告知饭店服务员自己需要的客房类型,服务员在系统中选择指定的客房类型后系统将现实所有空余的该类型客房,并显示该类型客房价格供客人参考选择。这个处理过程可以通过一个存储过程来实现。
在这个存储过程中,需要的输入参数是客房类型,输出的结果集是所有这种客房类型的空房记录和价格。定义这个存储过程名为SelRoom,定义输入的参数名为RoomType,定义输出的价格参数名为RoomPrice。根据存储过程的创建语法,编写SelRoom的实现代码如下:
create procedure selroom
@roomtype char(2),
@roomPrice smallmoney output
as
select 客房号 from 客房信息
where (客房类型编号=@roomtype) and (客房状态=N)
select @roomprice=价格 from 客房类型
where 客房类型编号=@roomtype
在上面的代码中包含了两个Select语句,第一个SELECT语句从客房信息表中选择了所有客房类型为输入参数指定类型并且客房状态为“空”(N)的客房号,并将所有记录作为结果集返回;第二个SELECT语句从客房类型中取得了制定客房类型的价格,作为输出参数Roomprice返回。
2、客人入住登记处理
客人入住登记操作完成后,入住的客房状态应该及时做相应的改变,并记录客人的序号供以后查询。这一功能可以使用触发器来自动进行:因为进行客人入住登记操作是在客人信息表中添加一条新记录,所以可以为客人信息表设计一个INSERT触发器,当客人信息执行INSERT操作后自动更改客房信息相应客房记录的数据。
定义这个触发器名称为client_insert 。其实现代码如下:
create trigger client_insert on dbo.客人信息
for insert
as
update 客房信息
set 客房状态=F,客房信息.入住客人序号=B.序号
from 客房信息 AS A,inserted as B
WHERE A.客房号=b.客房号
3、客人离店退房处理
客人在离店退房时,服务员输入客人的退房时间,然后计算出客人的住宿费用,以便于客人结帐。同时,系统应该将客人所退房的状态更改为“空”,以便于再次接待下一位客人入住。这一功能也可以通过一个触发器来实现。为客人信息表设计一个名为client_update的UPDATE触发器,当系统对客人信息的离店时间进行UPDA
文档评论(0)