酒店管理系统.docx

上传人:b****4 文档编号:27494042 上传时间:2023-07-02 格式:DOCX 页数:21 大小:73.46KB
下载 相关 举报
酒店管理系统.docx_第1页
第1页 / 共21页
酒店管理系统.docx_第2页
第2页 / 共21页
酒店管理系统.docx_第3页
第3页 / 共21页
酒店管理系统.docx_第4页
第4页 / 共21页
酒店管理系统.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

酒店管理系统.docx

《酒店管理系统.docx》由会员分享,可在线阅读,更多相关《酒店管理系统.docx(21页珍藏版)》请在冰豆网上搜索。

酒店管理系统.docx

酒店管理系统

课程设计报告

 

课程设计题目:

酒店管理系统数据库

学生姓名:

韩波

专业:

网络工程

班级:

10211303

学号:

1021130335

指导教师:

游胜玉

 

2011年11月26日

东华理工大学

实验题目

题目8:

酒店管理系统数据库的设计与实现

描述:

设计一个酒店管理系统,实现下列功能:

1.酒店客房信息维护(包括录入,修改和删除);

2.客人信息维护(包括录入,修改和删除;)

3.入住信息登记;

 

酒店管理系统关系模式:

房号(房间号,类型,状态,价格,位置,床位数)

入住信息(房间号,证件号,姓名,性别,入住日期)

退房信息(房间号,证件号,结算日期,应付金额)

旅客(证件类型,证件号,姓名,性别,年龄,籍贯,现住址,职业)

使用(物品号,证件号,姓名,使用日期,押金)

物品(物品号,数量,价格,用途)

E---R图

 

一:

创建酒店管理系统数据库

createdatabase酒店管理系统/*创建酒店管理系统数据库*/

二:

创建客房信息表并添加数据

createtable客房/*创建客房信息表*/

房间号char(8)primarykey,

类型varchar(16)notnull,

状态char(8)notnull,

价格smallmoneynotnull,

位置varchar(14)notnull,

床位数intcheck(床位数>0)notnull

insertinto客房values('101','普通间','在使用',50,'三楼',2)

insertinto客房values('102','普通间','在使用',40,'三楼',1)

insertinto客房values('103','空调间','未使用',80,'三楼',2)

insertinto客房values('104','空调间','在使用',60,'二楼',1)

insertinto客房values('105','豪华间','在使用',200,'二楼',2)

insertinto客房values('106','豪华间','在使用',180,'一楼',1)

insertinto客房values('107','贵宾间','未使用',300,'一楼',1)

insertinto客房values('108','贵宾间','在使用',400,'一楼',2)

所建的表为:

房间号

类型

状态

价格

位置

床位数

101

普通间

在使用

50.0000

三楼

2

102

普通间

在使用

40.0000

三楼

1

103

空调间

未使用

80.0000

三楼

2

104

空调间

在使用

60.0000

二楼

1

105

豪华间

在使用

200.0000

二楼

2

106

豪华间

在使用

180.0000

一楼

1

107

贵宾间

未使用

300.0000

一楼

1

108

贵宾间

在使用

400.0000

一楼

2

三:

创建旅客信息表并添加数据

createtable旅客/*创建旅客信息表*/

证件类型varchar(16),

证件号varchar(18)notnull,

姓名varchar(10)notnull,

性别char(4)notnull,

年龄intcheck(年龄>0)notnull,

籍贯textnotnull,

现住址textnotnull,

职业varchar(20)notnull

insertinto旅客values('学生证','10211303','赵亦','男',20,'河北唐山','江西南昌','学生')

insertinto旅客values('身份证','1021134357','钱尔','男',24,'北京大兴区','上海浦东','工程师')

insertinto旅客values('军官证','4236789','李思','男',30,'江西抚州','广州','团长')

insertinto旅客values('身份证','10432187','孙珊','女',32,'湖北武汉','湖南长沙','教师')

insertinto旅客values('身份证','1234876','周武','男',35,'南昌','香港','公务员')

insertinto旅客values('身份证','1357674','吴丽','女',40,'南京','合肥','经理')

所建的表为:

证件类型

证件号

姓名

性别

年龄

籍贯

现住址

职业

学生证

10211303

赵亦

20

河北唐山

江西南昌

学生

身份证

1021134357

钱尔

24

北京大兴区

上海浦东

工程师

军官证

4236789

李思

30

江西抚州

广州

团长

身份证

10432187

孙珊

湖北武汉

湖南长沙

教师

身份证

1234876

周武

35

南昌

香港

公务员

身份证

1357674

吴丽

40

南京

合肥

经理

四:

创建入住信息表并添加数据

createtable入住信息/*创建入住信息表*/

房间号char(8)notnull,

证件号varchar(18)notnull,

姓名varchar(10)notnull,

性别char(4)notnull,

入住日期datetimenotnull

insertinto入住信息values('101','10211303','赵亦','男','2011-5-3')

insertinto入住信息values('102','1021134357','钱尔','男','2011-2-6')

insertinto入住信息values('104','4236789','李思','男','2011-8-7')

insertinto入住信息values('105','10432187','孙珊','女','2011-7-4')

insertinto入住信息values('106','1234876','周武','男','2011-3-6')

insertinto入住信息values('108','11357674','吴丽','女','2011-9-2')

所建的表为:

房间号

证件号

姓名

性别

入住日期

101

10211303

赵亦

2011-05-0300:

00:

00.000

102

1021134357

钱尔

2011-02-0600:

00:

00.000

104

4236789

李思

2011-08-0700:

00:

00.000

105

10432187

孙珊

2011-07-0400:

00:

00.000

106

1234876

周武

2011-03-0600:

00:

00.000

108

11357674

吴丽

2011-09-0200:

00:

00.000

五:

创建退房信息表并添加数据

createtable退房信息/*创建退房信息表*/

房间号char(8)notnull,

证件号varchar(18)notnull,

结算日期datetime,

应付金额smallmoney

insertinto退房信息(房间号,证件号)values('101','101211303')

insertinto退房信息(房间号,证件号)values('102','10121134357')

所建的表为:

房间号

证件号

结算日期

应付金额

101

101211303

NULL

NULL

102

10121134357

NULL

NULL

六:

创建使用表并添加数据

createtable使用/*创建使用表*/

物品号char(6)notnull,

证件号varchar(18),

使用日期datetime,

押金smallmoney

insertinto使用values('001','11357674','2011-10-2',50)

所建的表为:

物品号

证件号

使用日期

押金

001

11357674

2011-10-0200:

00:

00.000

50.0000

001113576742011-10-0200:

00:

00.00050.0000

七:

创建物品表并添加数据

createtable物品/*创建物品表*/

物品号char(6)notnull,

物品名varchar(16)notnull,

数量intnotnull,

价格moneynotnull,

用途text

insertinto物品values('001','毛巾',100,20,'洗浴')

insertinto物品values('002','牙膏',50,10,'洗漱')

insertinto物品values('003','拖鞋',80,30,'穿着')

insertinto物品values('004','香皂',100,8,'洗浴')

所建的表为:

物品号

物品名

数量

价格

用途

001

毛巾

100

20.0000

洗浴

002

牙膏

50

10.0000

洗漱

003

拖鞋

80

30.0000

穿着

004

香皂

100

8.0000

洗浴

八:

创建旅客录入的存储过程

createprocedure旅客录入/*录入旅客信息的存储过程*/

@证件类型varchar(16),--输入参数,对应表各字段

@证件号varchar(18),

@姓名varchar(10),

@性别char(4),

@年龄int,

@籍贯text,

@现住址text,

@职业varchar(20),

@返回信息varchar(50)=nulloutput--输出参数,执行结果返回信息

as

begintran--启用事务

--检查是否有同一客人记录

ifexists(select证件号,姓名from旅客where证件号=@证件号and姓名=@姓名)

begin

select@返回信息='已存在该客人信息'

gotoonerror

end

--新增客人信息

insertinto旅客(证件类型,证件号,姓名,性别,年龄,籍贯,现住址,职业)values(@证件类型,@证件号,@姓名,@性别,@年龄,

@籍贯,@现住址,@职业)

if@@error<>0

begin

select@返回信息='新增失败'

gotoonerror

end

select@返回信息='新增成功'

committran

return

--出错处理

onerror:

rollbacktran

return

declare@姓名varchar(10)

declare@返回信息varchar(50)

exec旅客录入@证件类型='学生证',@证件号='2345346554',@姓名='张锦杰',@性别='男',@年龄=19,@籍贯='广东汕尾',

@现住址='江西南昌',@职业='学生'

print'姓名'+@姓名

select*from旅客

dropprocedure旅客录入

droptable旅客

九:

创建旅客修改的存储过程

createprocedure旅客修改/*修改旅客信息的存储过程*/

@证件类型varchar(16),--输入参数,对应表各字段

@证件号varchar(18),

@姓名varchar(10),

@性别char(4),

@年龄int,

@籍贯text,

@现住址text,

@职业varchar(20),

@返回信息varchar(50)=nulloutput--输出参数,执行结果返回信息

as

ifnotexists(select证件号from旅客where证件号=@证件号)

select@返回信息='不存在此旅客的信息'

update旅客

set证件类型=@证件类型,姓名=@姓名,性别=@性别,年龄=@年龄,籍贯=@籍贯,现住址=@现住址,职业=@职业

where证件号=@证件号

 

exec旅客修改@证件号='1357674',@证件类型='身份证',@姓名='吴丽',@性别='女',@年龄=48,@籍贯='南京',

@现住址='合肥',@职业='经理'

declare@返回信息varchar(50)

print'返回信息'+@返回信息

select'返回信息'=@返回信息

select*from旅客

dropprocedure旅客修改

十:

创建旅客删除的存储过程

createprocedure旅客删除/*删除旅客信息的存储过程*/

@证件号varchar(18),

@返回信息varchar(50)=nulloutput

as

begintran

ifnotexists(select证件号from旅客where证件号=@证件号)

begin

select@返回信息='不存在此旅客的信息'

gotoonerror

end

deletefrom旅客where证件号=@证件号

if@@error<>0

begin

select@返回信息='删除失败'

gotoonerror

end

select@返回信息='成功删除'

committran--提交事务

return

onerror:

rollbacktran

return

declare@证件号varchar(18)

declare@返回信息varchar(50)

exec旅客删除@证件号='10211303'

select*from旅客

dropprocedure旅客删除

十一:

创建客房录入的存储过程

createprocedure客房录入/*录入客房信息的存储过程*/

@房间号char(8),

@类型varchar(16),

@状态char(8),

@价格smallmoney,

@位置varchar(14),

@床位数int,

@返回信息varchar(50)=nulloutput

as

begintran

ifexists(select房间号from客房where房间号=@房间号)

begin

select@返回信息='已存在该客房信息'

gotoonerror

end

insertinto客房(房间号,类型,状态,价格,位置,床位数)values(@房间号,@类型,@状态,@价格,@位置,@床位数)

if@@error<>0

begin

select@返回信息='新增失败'

gotoonerror

end

select@返回信息='新增成功'

committran

return

onerror:

rollbacktran

return

declare@返回信息varchar(50)

exec客房录入@房间号='109',@类型='标准间',@状态='未使用',@价格=50,@位置='四楼',@床位数=2

dropprocedure客房录入

deletefrom客房where房间号='109'

select*from客房

 

十二:

创建客房修改的存储过程

createprocedure客房修改/*客房修改的存储过程*/

@房间号char(8),

@类型varchar(16),

@状态char(8),

@价格smallmoney,

@位置varchar(14),

@床位数int,

@返回信息varchar(50)=nulloutput--输出参数,执行结果返回信息

as

ifnotexists(select房间号from客房where客房.房间号=@房间号)

select@返回信息='不存在该客房信息'

print@返回信息+'返回信息'

--修改客房信息

update客房

set类型=@类型,状态=@状态,价格=@价格,位置=@位置,床位数=@床位数

where客房.房间号=@房间号

 

exec客房修改@房间号='1018',@类型='普通间',@状态='在使用',@价格=500,@位置='三楼',@床位数=2

declare@返回信息varchar(50)

select'返回信息'=@返回信息

print@返回信息+'返回信息'

select*from客房

dropprocedure客房修改

 

十三:

创建客房删除的存储过程

createprocedure客房删除/*删除客房信息的存储过程*/

@房间号varchar(18),

@返回信息varchar(50)=nulloutput

as

begintran

ifnotexists(select房间号from客房where房间号=@房间号)

begin

select@返回信息='不存在此客房的信息'

gotoonerror

end

deletefrom客房where房间号=@房间号

if@@error<>0

begin

select@返回信息='删除失败'

gotoonerror

end

select@返回信息='成功删除'

committran--提交事务

return

onerror:

rollbacktran

return

declare@房间号varchar(18)

declare@返回信息varchar(50)

exec客房删除@房间号='101'

select*from客房

dropprocedure客房删除

十四:

创建客房查询的存储过程

createprocedure客房查询/*查询客房信息的存储过程*/

@房间号char(8),

@类型varchar(16)output,

@状态char(8)output,

@价格smallmoneyoutput,

@位置varchar(14)output,

@床位数intoutput

as

select类型,状态,价格,位置,床位数

from客房

where房间号=@房间号

declare@房间号char(8)

declare@类型varchar(16)

declare@状态char(8)

declare@价格smallmoney

declare@位置varchar(14)

declare@床位数int

exec客房查询'101',@类型output,@状态output,@价格output,@位置output,@床位数output

print@状态+'状态'

dropprocedure客房查询

 

十五:

创建付款的存储过程

createprocedure付款(@证件号varchar(18),@房间号char(8))

as

update退房信息

set结算日期=getdate()

where证件号=@证件号and结算日期isnull

declare@价格smallmoney

select价格from客房where房间号=@房间号

select入住日期asdafrom入住信息where证件号=@证件号

update退房信息

set应付金额=datediff(dd,da,getdate())*@价格

where证件号=@证件号and应付金额isnull--and退房信息.证件号=入住信息.证件号

update客房set状态='未使用'where房间号=@房间号

exec付款@证件号='10211303',@房间号='101'

dropprocedure付款

select*from客房

select*from旅客

select*from入住信息

select*from退房信息

十六:

创建入住登记触发器

createtrigger入住登记触发/*入住登记触发器*/

on入住信息

forinsert

as

begin

update客房set状态='在使用'where房间号in(select房间号frominserted)

end

droptrigger入住登记触发

select*from入住信息

select*from客房

insertinto入住信息values('103','10204','张金杰','男','2011-8-8')

 

十七:

创建退房触发器

createtrigger退房触发器/*退房触发*/

on退房信息

forinsert

as

begin

update客房set状态='未使用'where房间号in(select房间号frominserted)

deletefrom旅客where证件号in(select证件号frominserted)

deletefrom入住信息where房间号in(select房间号frominserted)

deletefrom使用where证件号in(select证件号frominserted)

end

insertinto退房信息values('101','10211303','2011-9-8',34)

droptrigger退房触发器

select*from客房

select*from旅客

select*from入住信息

select*from退房信息

se

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

当前位置:首页 > 医药卫生 > 临床医学

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

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