数据库酒店管理系统课程设计.docx
《数据库酒店管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《数据库酒店管理系统课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
数据库酒店管理系统课程设计
实验题目
题目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孙珊女32湖北武汉湖南长沙教师
身份证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')
所建的表为:
10110211303赵亦男2011-05-0300:
00:
00.000
1021021134357钱尔男2011-02-0600:
00:
00.000
1044236789李思男2011-08-0700:
00:
00.000
10510432187孙珊女2011-07-0400:
00:
00.000
1061234876周武男2011-03-0600:
00:
00.000
10811357674吴丽女2011-09-0200:
00:
00.000
五:
创建退房信息表并添加数据
createtable退房信息/*创建退房信息表*/
(
房间号char(8)notnull,
证件号varchar(18)notnull,
结算日期datetime,
应付金额smallmoney
)
insertinto退房信息(房间号,证件号)values('101','101211303')
insertinto退房信息(房间号,证件号)values('102','10121134357')
所建的表为:
101101211303NULLNULL
10210121134357NULLNULL
六:
创建使用表并添加数据
createtable使用/*创建使用表*/
(
物品号char(6)notnull,
证件号varchar(18),
使用日期datetime,
押金smallmoney
)
insertinto使用values('001','11357674','2011-10-2',50)
所建的表为:
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毛巾10020.0000洗浴
002牙膏5010.0000洗漱
003拖鞋8030.0000穿着
004香皂1008.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,
@籍贯