ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:120.59KB ,
资源ID:10692740      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10692740.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库客房管理系统代码.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库客房管理系统代码.docx

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

2、(空);并将客户信息保存。1.2数据分析通过进行系统调查,了解用户需求、分析应用软件系统的功能需求。总结出了系统逻辑模型,即系统业务流程图、数据流图、应用软件功能结构图和数据字典等。各流程图如下面的图所示:1.2.2 客房管理系统数据流图客房管理系统入住管理结算管理信息查询客户登记退房结算收银处理1.2.3 客房管理系统功能模块客户查询客房查询二、数据库概念结构设计 客户客户编号 客户姓名年龄性别身份证号户籍客房号 客房类型 客房价格住宿日期住宿时间离宿日期离宿时间押金 账单编号退房入住 登记客房号客房类型 客房价格客房状态 客房返回退房登记客户编号客户姓名身份证号客房号客房类型客房价格住宿日

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

4、,电话费,总额关系数据表确定后要进行数据表的逻辑结构设计,即定义关系数据表中字段名称、数据结构、是否允许为空、关键字、说明等。(1)客户入住登记表用于存放客户的入住信息,例如:客户名,房号等。表3.1 客户入住登记字段名称数据结构是否允许为空说明客户编号IntNOT NULL ,主键客户姓名Varchar(8)Not null入住客户的姓名年龄IntNot null性别CharNot null身份证号Varchar(20)Not null客户的身份证号户籍Varchar(50)Not null客户的户籍地址客房号IntNot null客房类型TextNot null客房价格MoneyNot n

5、ull住宿日期DatetimeNot null住宿时间Varchar(15)Not null离宿日期DatetimeNot null离宿时间Varchar(15)Not null押金MoneyNot null账单编号IntNot null字段名称数据结构是否允许为空说明客房号IntNOT NULL,主键唯一标识每个房间客房类型TextNOT NULL客房价格MoneyNOT NULL客房状态Varchar(2)NOT NULL(2)客房表 用于存放客房的相关信息,例如:房号,房间类型,房间状态等。表3.2 客房表(3)退房登记表退房登记表表用于存放客户消费的信息。表3.3 退房登记表字段名称数

6、据结构是否允许为空说明客户编号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 null水费MoneyNot null电话费MoneyNot null总额MoneyNot null4、数据库物理结构设计 根据代码自动生成表,其物理结构表如下1.“客房”表的物理结构“客房”表的物理结构如图

7、4.1所示,关键字为”客房号” 图4.12. “客户入住登记”表的物理结构 “客户”表的物理结构如图4.2所示,关键字为”客户编号”,利用”客房号”可与”退房登记”表和”客房号”表建立联系。 图4.23.“退房登记”表的物理结构“退房登记”表的物理结构如图4.3所示,关键字为”客户编号”。 图4.3五、数据库的实施根据以上所进行的调查、设计和进行方案,建立并实施数据库。此系统运用SQL Server 2000进行数据库的开发。1.数据库建表语句 名称: 客户入住登记 标示:客户编号建表语句如下: create table 客户入住登记 ( 客户编号 int not null, 客户姓名 var

8、char(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 null, 客房价格 money not null, 住宿日期 datetime not null, 住宿时间 varchar(15) not null, 离宿日期 datetime not null, 离宿

9、时间 varchar(15) not null, 押金 money not null, 账单编号 int not null, primary key (客户编号), foreign key (客房号) references 客房表(客房号) on delete cascade on update cascade,); 名称: 客房表“客房” 标识:客房号 建表语句如下: create table 客房表 ( 客房号 int check(客房号 between 1 and 100), 客房类型 text not null, 客房价格 money not null, 客房状态 varchar(2)

10、 check(客房状态 in(满,空), primary key (客房号);(3) 名称: 结算账单表“结算账单” 标识:客户编号建表语句如下: create table 退房登记表 ( 客户编号 int not null, 客户姓名 varchar(8) not null, 身份证号 varchar(20) not null, 客房号 int not null, 客房类型 text not null, 客房价格 money not null, 住宿日期 datetime not null, 住宿时间 varchar(15) not null, 住宿天数 int not null, 宿费 m

11、oney 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 TRIGGER 登记ON 客户入住登记FOR INSERTASdeclare id intdeclare state varchar(2)beginset id=(select 客房号 from i

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

13、(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=客房

14、价格,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 (id,name,cardId,houseNo,houseType,housePrice,convert(var

15、char(10),registerDate,101),registerTime,sumDay,payCheck,waterPay,phonePay,(waterPay+phonePay+housePrice)*sumDay)update 客房表 set 客房状态=空 where 客房号=houseNoEnd6、数据库的操作备注(1-5普通单人间,6-10豪华单人间,11-15豪华套房,16-30总统套房)-数据库设计功能调试步骤-(1) 首先创建触发器名为“登记”,然后调试插入新客户信息- 代码如下-创建触发器代码 CREATE TRIGGER 登记 ON 客户入住登记 FOR INSERT

16、AS declare id int declare state varchar(2) begin set id=(select 客房号 from inserted) set state=(select 客房状态 from 客房表 where 客房号=id) if state=空 begin update 客房表 set 客房状态=满 where 客房号=id print 登记成功 end else print 登记失败,已有人 end -插入新客户信息 则显示成功insert into 客户入住登记values (7,钱想,20,男,342690199082312311,江苏泰州,30,总统套

17、房,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 登记-如果重复分配客房号,则显示错误,因为违背完整性定义insert into 客户入住登记values (22,李二,20,男,342690199082312311,江苏泰州,30,总统套房,500,2011-1-07,conver

18、t(varchar(5),getdate(),108),2011-8-23,18:09,50,2011002)delete from 客户入住登记 where 客户编号=22-(2) 创建触发器名为“退房”,然后退房信息-创建触发器“退房”代码 CREATE TRIGGER 退房 ON 客户入住登记 FOR delete AS declare id int declare name varchar(8) declare cardId varchar(20) declare houseNo int declare houseType varchar(15) declare housePrice

19、int declare registerDate datetime declare leaveDate datetime declare registerTime varchar(15) declare sumDay int declare homePay money declare waterPay money declare phonePay money declare payCheck money begin select id=客户编号,name=客户姓名,cardId=身份证号,houseNo=客房号,houseType=客房类型,housePrice=客房价格,registerDa

20、te=住宿日期,registerTime=住宿时间,leaveDate=离宿日期,homePay=客房价格 from deleted set sumDay=abs(datediff(dd,registerDate,leaveDate) set phonePay=cast(20 as money) set waterPay=cast(10 as money) set payCheck=housePrice*sumDay insert into 退房登记表 values (id,name,cardId,houseNo,houseType,housePrice,convert(varchar (10

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1