徽州大酒店客房管理系统设计_第1页
徽州大酒店客房管理系统设计_第2页
徽州大酒店客房管理系统设计_第3页
徽州大酒店客房管理系统设计_第4页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

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

2、用房标志(占)改为(空);并将客户信息保存。1.2 数据分析通过进行系统调查, 了解用户需求、分析应用软件系统的功能需求。总结出了系统逻辑模型, 即系统业务流程图、数据流图、应用软件功能结构图和数据字典等。各流程图如下面的图所示:客房操作查询操作员客房管理系统返回信息客户1.2.1客房管理系统业务流程图D1入住信息D3结算账单D2客房信息客户返交回钱结要结果账求操作员P1P2入住登记入住结算返回信息管理处理结账查费用询要返回结果求返回账单信息核对账单1.2.2客房管理系统数据流图客房管理系统入住管理结算管理客退收信户房银息登结处查记算理询客客户房查查询询1.2.3客房管理系统功能模块二、数据库

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

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

5、名Varchar(8)Not null入住客户的姓名年龄IntNot null性别CharNot null身份证号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( 2)客房表用于存放客房的相关信息, 例如

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

7、tetimeNot null住宿时间Varchar(15)Not null住宿天数IntNot null宿费MoneyNot null水费MoneyNot null电话费MoneyNot null总额MoneyNot null四、数据库物理结构设计根据代码自动生成表,其物理结构表如下1. “客房”表的物理结构“客房”表的物理结构如图4.1 所示 , 关键字为”客房号”图 4.12. “客户入住登记”表的物理结构“客户”表的物理结构如图 4.2 所示 , 关键字为”客户编号” , 利用”客房号”可与”退房登记”表和”客房号”表建立联系。图 4.23. “退房登记”表的物理结构“退房登记”表的物理

8、结构如图4.3 所示 , 关键字为”客户编号”。图 4.3五、数据库的实施根据以上所进行的调查、设计和进行方案 , 建立并实施数据库。此系统运用 SQL Server 2000 进行数据库的开发。1. 数据库建表语句 名称:客户入住登记标示 : 客户编号建表语句如下:create table客户入住登记(客户编号intnot null,客户姓名varchar(8)not null,年龄intconstraint C1 check(年龄 between 1 and 80),性别char(2)check(性别 in('男 ','女 '),身份证号varchar(20

9、)not null,户籍varchar(50)not null,客房号intcheck(客房号 >=1 and客房号 <=100),客房类型textnot null,客房价格住宿日期datetimenot null,住宿时间varchar(15)not null,离宿日期datetimenot null,离宿时间varchar(15)not null,押金moneynot null,账单编号intnot null,primary key (客户编号 ),foreign key (客房号 ) references客房表 ( 客房号 )on delete cascadeon updat

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

11、)not null,客房号int not null,客房类型textnot null,客房价格money not null,住宿日期datetime not null,住宿时间varchar(15)not null,住宿天数intnot null,宿费money not null,水费money not null,电话费money not null,总额money not null,primary key (客户编号 ),foreign key (客房号 ) references客房表 ( 客房号 )on delete cascadeon update cascade,)2. 数据库的建立触发

12、器语句(1) 建立触发器名“登记”CREATE TRIGGER登记ON 客户入住登记FOR INSERTASdeclare id intdeclare state varchar(2)beginset id=(select客房号 from inserted)set state=(select客房状态 from客房表if state='空'beginupdate客房表 set客房状态 =' 满 ' whereprint '登记成功 'endelseprint '登记失败,已有人'endwhere客房号客房号 =id=id)(2) 建

13、立触发器名“登记”CREATE TRIGGER退房ON 客户入住登记FOR deleteASdeclare 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

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

15、e)set phonePay=cast(20 as money)set waterPay=cast(10 as money)set payCheck=housePrice*sumDayInsert into 退 房 登 记 表 values (id,name,cardId,houseNo,houseType,housePrice,convert(varchar(10),registerDate,101),registerTime,sumDay,payCheck,waterPay,phonePay,(waterPay+ph onePay+housePrice)*sumDay)update 客房表

16、 set 客房状态 =' 空 ' where 客房号 =houseNo End六、数据库的操作备注( 1-5 普通单人间, 6-10 豪华单人间, 11-15 豪华套房, 16-30 总统套房)- 数据库设计功能调试步骤-(1)首先创建触发器名为“登记”,然后调试插入新客户信息- 代码如下- 创建触发器代码CREATE TRIGGER登记ON 客户入住登记FOR INSERTASdeclare id intdeclare state varchar(2)beginset id=(select客房号 from inserted)set state=(select客房状态from客

17、房表if state='空 'beginupdate客房表 set客房状态 =' 满 ' whereprint '登记成功 'endelseprint '登记失败,已有人'endwhere客房号 =id)客房号 =id- 插入新客户信息 则显示成功insert into客户入住登记values(7,'钱想',20,'男','342690199082312311','江苏泰州',30,'总统套房',500,'2011-1-07',conv

18、ert(varchar(5),getdate(),108),'2011-8-23','18:09',50,2011002)- 查询客户入住登记以及客房信息select * from客户入住登记where客户编号 =7- 查询客房表信息select * from客房表 where客房号 =30- 删除触发器drop TRIGGER 登记- 如果重复分配客房号,则显示错误,因为违背完整性定义insert into客户入住登记values(22,'李二',20,'男','342690199082312311','

19、江苏泰州',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 varchar(20)dec

20、lare 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=客户姓名 ,cardId= 身份证号 ,houseNo=客房号 ,houseType=客房类型 ,housePrice= 客 房 价 格 ,registerDate= 住 宿 日 期 ,registerTime= 住 宿 时 间 ,leaveDate= 离 宿 日期 ,homePay=客房价格 from deletedset sumDay=abs(datediff(dd,registerDat

温馨提示

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

评论

0/150

提交评论