徽州大酒店客房管理系统设计.doc

上传人:爱问知识人 文档编号:5022480 上传时间:2020-01-29 格式:DOC 页数:12 大小:2.47MB
返回 下载 相关 举报
徽州大酒店客房管理系统设计.doc_第1页
第1页 / 共12页
徽州大酒店客房管理系统设计.doc_第2页
第2页 / 共12页
徽州大酒店客房管理系统设计.doc_第3页
第3页 / 共12页
徽州大酒店客房管理系统设计.doc_第4页
第4页 / 共12页
徽州大酒店客房管理系统设计.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《徽州大酒店客房管理系统设计.doc》由会员分享,可在线阅读,更多相关《徽州大酒店客房管理系统设计.doc(12页珍藏版)》请在三一文库上搜索。

1、徽州大酒店客房管理系统设计一、 需求分析1.1 系统需求分析 “客房管理信息系统”以实现宾馆客房各种信息的系统化、规范化、自动化为目标,具体要达到以下几个基本要求:(一)客户入住管理通过该管理功能,系统可以通过计算机对客户的一些基本信息进行录入,成为客房管理信息系统查询的数据资料。(1)新客人信息的录入。(2)客人信息的修改。(3)客人信息的查询。(4)客人信息的删除。(5)客人信息的保存。(6)客房信息的查询。(二)结算管理(1)退房结算:输入客户房号,查找该客户信息、住房信息以及费用情况。(2)收银处理:确认客户总费用,并自动登记总费用帐。同时,自动将房间用房标志(占)改为(空);并将客户

2、信息保存。1.2数据分析通过进行系统调查,了解用户需求、分析应用软件系统的功能需求。总结出了系统逻辑模型,即系统业务流程图、数据流图、应用软件功能结构图和数据字典等。各流程图如下面的图所示:客房管理系统操作员客房客户操作查询返回信息1.2.1 客房管理系统业务流程图客户操作员返回结果交钱结账结账费用入住登记返回信息返回结果查询要求核对账单返回账单信息入住管理结算处理结算账单入住信息客房信息P1P2D1D2D3要求1.2.2 客房管理系统数据流图客房管理系统入住管理结算管理信息查询客户登记退房结算收银处理1.2.3 客房管理系统功能模块客户查询客房查询二、数据库概念结构设计 客户姓名客户编号经考

3、察和分析,本案例客房管理系统包括以下实体:客户实体、客房实体、操作员实体、退房实体,它们的E-R图如以下所示。年龄 客房价格性别离宿日期押金客户身份证号客户姓名客户编号退房身份证号 账单编号客房号离宿时间客房类型住宿时间户籍退房登记客房号住宿日期总额客房价格 客房类型住宿日期返回入住 登记宿费住宿时间 电费水费 住宿天数客房状态 客房客房号 客房价格客房类型三、数据库逻辑结构设计根据E-R图,将图转换为关系模型即:将实体、实体的属性和实体之间的联系转换为关系模式,然后对数据模型进行优化得到如下关系数据表。客户入住登记:客户编号,客户姓名,年龄,性别,身份证号,户籍,客房号,客房类型,客房价格,

4、住宿日期住宿时间,离宿日期,离宿时间,押金,账单编号客房表:客房号,客房类型,客房价格,房间状态退房登记表:客户编号,客户姓名,身份证号,客房号,客房类型,客房价格,住宿日期,住宿价格, 住宿天数,宿费,水费,电话费,总额关系数据表确定后要进行数据表的逻辑结构设计,即定义关系数据表中字段名称、数据结构、是否允许为空、关键字、说明等。(1)客户入住登记表用于存放客户的入住信息,例如:客户名,房号等。表3.1 客户入住登记字段名称数据结构是否允许为空说明客户编号IntNOT NULL ,主键客户姓名Varchar(8)Not null入住客户的姓名年龄IntNot null性别CharNot nu

5、ll身份证号Varchar(20)Not null客户的身份证号户籍Varchar(50)Not null客户的户籍地址客房号IntNot null客房类型TextNot null客房价格MoneyNot null住宿日期DatetimeNot null住宿时间Varchar(15)Not null离宿日期DatetimeNot null离宿时间Varchar(15)Not null押金MoneyNot null账单编号IntNot null字段名称数据结构是否允许为空说明客房号IntNOT NULL,主键唯一标识每个房间客房类型TextNOT NULL客房价格MoneyNOT NULL客房状

6、态Varchar(2)NOT NULL(2)客房表 用于存放客房的相关信息,例如:房号,房间类型,房间状态等。表3.2 客房表(3)退房登记表退房登记表表用于存放客户消费的信息。表3.3 退房登记表字段名称数据结构是否允许为空说明客户编号IntNot null唯一标示每个客户客户姓名Varchar(8)Not null身份证号Varchar(20)Not null客房号Int Not null客房类型TextNot null客房价格MoenyNot null住宿日期DatetimeNot null住宿时间Varchar(15)Not null住宿天数IntNot null宿费MoneyNot

7、null水费MoneyNot null电话费MoneyNot null总额MoneyNot null4、 数据库物理结构设计 根据代码自动生成表,其物理结构表如下1.“客房”表的物理结构“客房”表的物理结构如图4.1所示,关键字为”客房号” 图4.12. “客户入住登记”表的物理结构 “客户”表的物理结构如图4.2所示,关键字为”客户编号”,利用”客房号”可与”退房登记”表和”客房号”表建立联系。 图4.23.“退房登记”表的物理结构“退房登记”表的物理结构如图4.3所示,关键字为”客户编号”。 图4.3五、数据库的实施根据以上所进行的调查、设计和进行方案,建立并实施数据库。此系统运用SQL

8、Server 2000进行数据库的开发。1.数据库建表语句 名称: 客户入住登记 标示:客户编号建表语句如下: create table 客户入住登记 ( 客户编号 int not null, 客户姓名 varchar(8) not null, 年龄 int constraint C1 check(年龄 between 1 and 80), 性别 char(2) check(性别 in(男,女), 身份证号 varchar(20) not null, 户籍 varchar(50) not null, 客房号 int check(客房号=1 and 客房号=100), 客房类型 text not

9、 null, 客房价格 money not null, 住宿日期 datetime not null, 住宿时间 varchar(15) not null, 离宿日期 datetime not null, 离宿时间 varchar(15) not null, 押金 money not null, 账单编号 int not null, primary key (客户编号), foreign key (客房号) references 客房表(客房号) on delete cascade on update cascade,); 名称: 客房表“客房” 标识:客房号 建表语句如下: create t

10、able 客房表 ( 客房号 int check(客房号 between 1 and 100), 客房类型 text not null, 客房价格 money not null, 客房状态 varchar(2) check(客房状态 in(满,空), primary key (客房号);(3) 名称: 结算账单表“结算账单” 标识:客户编号建表语句如下: create table 退房登记表 (客户编号 int not null, 客户姓名 varchar(8) not null, 身份证号 varchar(20) not null, 客房号 int not null, 客房类型 text n

11、ot null, 客房价格 money not null, 住宿日期 datetime not null, 住宿时间 varchar(15) not null, 住宿天数 int not null,宿费 money not null,水费 money not null,电话费 money not null,总额 money not null,primary key (客户编号),foreign key (客房号) references 客房表(客房号) on delete cascade on update cascade,)2. 数据库的建立触发器语句(1)建立触发器名“登记”CREATE

12、TRIGGER 登记ON 客户入住登记FOR INSERTASdeclare id intdeclare state varchar(2)beginset id=(select 客房号 from inserted)set state=(select 客房状态 from 客房表 where 客房号=id)if state=空 begin update 客房表 set 客房状态=满 where 客房号=id print 登记成功 endelse print 登记失败,已有人end (2)建立触发器名“登记”CREATE TRIGGER 退房ON 客户入住登记FOR deleteASdeclare

13、id intdeclare name varchar(8)declare cardId varchar(20)declare houseNo intdeclare houseType varchar(15)declare housePrice intdeclare registerDate datetimedeclare leaveDate datetimedeclare registerTime varchar(15)declare sumDay intdeclare homePay moneydeclare waterPay moneydeclare phonePay moneydecla

14、re payCheck moneybeginselect id=客户编号,name=客户姓名,cardId=身份证号,houseNo=客房号,houseType=客房类型,housePrice=客房价格,registerDate=住宿日期,registerTime=住宿时间,leaveDate=离宿日期,homePay=客房价格 from deletedset sumDay=abs(datediff(dd,registerDate,leaveDate)set phonePay=cast(20 as money)set waterPay=cast(10 as money)set payCheck

15、=housePrice*sumDayInsert into 退房登记表 values (id,name,cardId,houseNo,houseType,housePrice,convert(varchar(10),registerDate,101),registerTime,sumDay,payCheck,waterPay,phonePay,(waterPay+phonePay+housePrice)*sumDay)update 客房表 set 客房状态=空 where 客房号=houseNoEnd6、 数据库的操作备注(1-5普通单人间,6-10豪华单人间,11-15豪华套房,16-30总

16、统套房)-数据库设计功能调试步骤-(1) 首先创建触发器名为“登记”,然后调试插入新客户信息- 代码如下-创建触发器代码CREATE TRIGGER 登记ON 客户入住登记FOR INSERTASdeclare id intdeclare state varchar(2)beginset id=(select 客房号 from inserted)set state=(select 客房状态 from 客房表 where 客房号=id)if state=空 begin update 客房表 set 客房状态=满 where 客房号=id print 登记成功 endelse print 登记失败

17、,已有人end -插入新客户信息 则显示成功insert into 客户入住登记values (7,钱想,20,男,342690199082312311,江苏泰州,30,总统套房,500,2011-1-07,convert(varchar(5),getdate(),108),2011-8-23,18:09,50,2011002)-查询客户入住登记以及客房信息select * from 客户入住登记 where 客户编号=7 -查询客房表信息select * from 客房表 where 客房号=30-删除触发器drop TRIGGER 登记-如果重复分配客房号,则显示错误,因为违背完整性定义i

18、nsert into 客户入住登记values (22,李二,20,男,342690199082312311,江苏泰州,30,总统套房,500,2011-1-07,convert(varchar(5),getdate(),108),2011-8-23,18:09,50,2011002)delete from 客户入住登记 where 客户编号=22-(2) 创建触发器名为“退房”,然后退房信息-创建触发器“退房”代码CREATE TRIGGER 退房ON 客户入住登记FOR deleteASdeclare id intdeclare name varchar(8)declare cardId

19、varchar(20)declare houseNo intdeclare houseType varchar(15)declare housePrice intdeclare registerDate datetimedeclare leaveDate datetimedeclare registerTime varchar(15)declare sumDay intdeclare homePay moneydeclare waterPay moneydeclare phonePay moneydeclare payCheck moneybeginselect id=客户编号,name=客户

20、姓名,cardId=身份证号,houseNo=客房号,houseType=客房类型,housePrice=客房价格,registerDate=住宿日期,registerTime=住宿时间,leaveDate=离宿日期,homePay=客房价格 from deletedset sumDay=abs(datediff(dd,registerDate,leaveDate)set phonePay=cast(20 as money)set waterPay=cast(10 as money)set payCheck=housePrice*sumDayinsert into 退房登记表 values (

21、id,name,cardId,houseNo,houseType,housePrice,convert(varchar(10),registerDate,101),registerTime,sumDay,payCheck,waterPay,phonePay,(waterPay+phonePay+housePrice)*sumDay)update 客房表 set 客房状态=空 where 客房号=houseNoend-删除客户信息(从退房登记表中删除,则此人已经退房)delete from 退房登记表 where 客户编号=7-查询客房信息-须首先从客户入住登记中删除delete from 客户入住登记 where 客户编号=7-查询该客房号信息select * from 客房表 where 客房号=30-删除触发器“退房”drop TRIGGER 退房-(3)修改客户信息-修改客户信息update 客户入住登记set 客户姓名=钱达,身份证号=342690188002312311,客房类型=标准单人间where 客户编号=9-查询修改后的信息select * from 客户入住登记 where 客户编号=912

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1