宾馆客房管理系统.docx

上传人:b****8 文档编号:9539466 上传时间:2023-02-05 格式:DOCX 页数:23 大小:214.80KB
下载 相关 举报
宾馆客房管理系统.docx_第1页
第1页 / 共23页
宾馆客房管理系统.docx_第2页
第2页 / 共23页
宾馆客房管理系统.docx_第3页
第3页 / 共23页
宾馆客房管理系统.docx_第4页
第4页 / 共23页
宾馆客房管理系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

宾馆客房管理系统.docx

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

宾馆客房管理系统.docx

宾馆客房管理系统

课程设计

 

宾馆客房管理系统

 

姓名

院(系)

专业年级

学号

指导教师

职称

起止时间

 

目录

1概述

目前较多的宾馆在客房管理上还处于人工阶段,效率低下且存在较多问题,为减少类似弊端开发此系统,以实现客房管理的电子化、科学化与现代化。

宾馆是现代社会服务行业体系中的重要组成部分,它在社会发展中有着不可替代的作用。

在当今经济和商务交往日益频繁的状况下,客房服务行业正面临客流量骤增的压力。

2需求与功能分析

传统的宾店客房管理一直以来使用人工的方式管理文件档案,这种管理方式存在着许多缺点,如:

效率低、保密性差;时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难;管理者往往要花大量的时间来处理烦琐的登记和结帐手续;不能及时提供空余客房资料等问题,将直接影响出租率。

据此现状,开发出本宾馆客房管理系统,通过本系统的应用不仅可以使宾馆客房管理科学化、正规化,而且对于提高员工工作效率,加速资金周转、降低各项成本及改善服务质量都有十分积极的作用。

本系统主要功能如下:

(1)客人入住和退房时,宾馆管理人员对旅客基本信息的更新;

(2)客人入住和退房时,宾馆管理人员对客房基本信息的查询和状态更新;

(3)客人入住、续住和退房时,宾馆管理人员对客人住宿信息的查询和更新;

3概要设计

宾馆客房管理系统顶层数据流图

 

宾馆客房管理系统第0层数据流图

4数据库设计

局部E-R图

全局E-R图,附加属性参见局部图

客户信息表(customer)

字段名称

含义

类型

长度

是否为空

黙认值

主键

外键

约束

id

身份证号

varchar

20

N

P

name

姓名

varchar

20

N

sex

性别

varchar

2

N

Checkin(‘男’,’女’)

age

年龄

int

N

phone

联系号码

varchar

20

Y

客房信息表(room)

字段名称

含义

类型

长度

是否为空

黙认值

主键

外键

约束

num

房间号

varchar

10

N

P

Type

客房类型

varchar

20

N

price

价格(xx元/天)

numeric

8

N

status

房间状态

varchar

20

N

check(status='空'orstatus='满')

订单信息表(reservation)

字段名称

含义

类型

长度

是否为空

黙认值

主键

外键

约束

Book_id

订单号

Int

N

P

identity(1,1)

id

身份证号

varchar

20

N

F

referencescustomer(id)

num

房间号

varchar

10

N

F

referencesroom(num)

Check_in

入住日期

Smalldatetime

N

Check_out

退房日期

Smalldatetime

Y

Deadline

截至日期

Smalldatetime

N

Quit_type

退房类型

varchar(10)

check(quit_type='调房'orquit_type='到期'orquit_type='退订')

Sum

结算额

Int

0

 

5关键技术实现

--===========================================================================================

useHotel_Booking

if(object_id('tgr_check_in','tr')isnotnull)

-----触发器,客户订房触发,设置房间状态

droptriggertgr_check_in

go

createtriggertgr_check_in

onreservation

forinsert--插入触发

as

declare@numvarchar(10)

select@num=numfrominserted

updateroom

setstatus='满'

wherenum=@num

go

--===========================================================================================

useHotel_Booking

if(object_id('tgr_quit_type','tr')isnotnull)

-------触发器,客户退房,调房触发,设置房间状态

droptriggertgr_quit_type

go

createtriggertgr_quit_type

onreservation

forupdate--更新触发

as

declare@quit_typevarchar(10),@numvarchar(10)

select@quit_type=quit_type,@num=numfrominserted

updateroom

setstatus='空'

wherenum=@numand@quit_typeisnotnull--到期置空

go

--===========================================================================================

useHotel_Booking

if(object_id('tgr_quit_print','tr')isnotnull)

-------触发器,退房时,结算显示

droptriggertgr_quit_print

go

createtriggertgr_quit_print

onreservation

forupdate--更新触发

as

ifupdate(quit_type)

begin

select(cast((selectsumfrominserted)asvarchar(20)))[目前结算金额]

end

go

--===========================================================================================

createviewbook_status-------------视图,订房情况

as

selectc.book_idas订票号,

a.nameas客户名,

a.sexas性别,

a.ageas年龄,

b.numas房间号,

b.typeas房间类型,

b.priceas[价格(xx元/天)],

a.phoneas客户电话,

a.idas客户身份证号,

c.deadline[截止期]

fromcustomera,roomb,reservationc

wherea.id=c.idandb.num=c.numandc.check_outisnull

go

 

--===========================================================================================

createviewroom_available-----------视图,可用房间查询

as

select*

fromroom

wherestatus='空'

go

 

--===========================================================================================

useHotel_Booking

if(object_id('proc_available','P')isnotnull)

--------存储过程,查看可用房间

dropprocproc_available

go

createprocproc_available

as

select*fromroom_available

go

--===========================================================================================

useHotel_Booking

if(object_id('proc_book_status','P')isnotnull)

--------存储过程,查看正在使用的房间

dropprocproc_book_status

go

createprocproc_book_status

as

select*frombook_status

go

--===========================================================================================

useHotel_Booking

if(object_id('proc_book','P')isnotnull)

-----存储过程,新客户订房

dropprocproc_book

go

createprocproc_book(@numvarchar(10),@book_datesmalldatetime,@lastint,@idvarchar(20),@namevarchar(20),@sexvarchar

(2),@ageint,@phonevarchar(20))

as

declare@errorint

set@error=@@error

begintran

ifnotexists(select*fromcustomerwhereid=@id)

begin

insertcustomervalues(@id,@name,@sex,@age,@phone)

end

set@error=@error+@@error

if'空'<>(selectstatusfromroomwherenum=@num)

begin

rollbacktran

return0

end

set@error=@error+@@error

insertreservationvalues(@id,@num,@book_date,null,CAST(dateadd(day,@last,cast(@book_dateassmalldatetime))assmalldatetime),null,0)

set@error=@error+@@error

updateroomsetstatus='满'wherenum=@num

if(@error<>0)

begin

rollbacktran

return0

end

else

begin

committran

return1

end

go

调用测试

--===========================================================================================

useHotel_Booking

if(object_id('proc_change','P')isnotnull)

-----存储过程,客户调房

dropprocproc_change

go

createprocproc_change(@num1varchar(10),@num2varchar(10))

as

declare@errorint

declare@book_idint

set@error=@@error

if(selectstatusfromroomwherenum=@num2)<>'空'

begin

print('该房间正在使用中')

return0

end

begintran

select@book_id=book_idfromreservationwherenum=@num1andcheck_outisnull

set@error=@error+@@error

updatereservation

setcheck_out=convert(smalldatetime,GETDATE())

fromreservation

where@book_id=book_id

set@error=@error+@@error

updatereservation

setsum=(DATEDIFF(day,check_in,check_out)+1)*(selectpricefromroomwherenum=@num1)

fromreservation

where@book_id=book_id

set@error=@error+@@error

updatereservation

setquit_type='调房'

fromreservation

where@book_id=book_id

set@error=@error+@@error

insertreservation

selectid,@num2,convert(smalldatetime,GETDATE()),null,deadline,null,sum

fromreservation

where@book_id=book_id

set@error=@error+@@error

if(@error<>0)

begin

rollbacktran

return0

end

else

begin

committran

return1

end

go

--===========================================================================================

useHotel_Booking

if(object_id('proc_quit','P')isnotnull)

-----存储过程,客户退房

dropprocproc_quit

go

createprocproc_quit(@numvarchar(10))

as

declare@@sumint

declare@errorint

declare@check_insmalldatetime

declare@check_outsmalldatetime

set@@sum=0

set@error=0

begintran

updatereservation

setcheck_out=CONVERT(smalldatetime,getdate())

wherequit_typeisnullandnum=@num

set@error=@error+@@ERROR

select@@sum=sumfromreservationwherequit_typeisnullandnum=@num

set@error=@error+@@ERROR

select@check_in=check_in,@check_out=check_outfromreservationwherequit_typeisnullandnum=@num

set@error=@error+@@ERROR

set@@sum=@@sum+

(DATEDIFF(day,@check_in,@check_out)+1)*(selectpricefromroomwherenum=@num)

set@error=@error+@@ERROR

updatereservation

setsum=@@sum

wherequit_typeisnullandnum=@num

set@error=@error+@@ERROR

updatereservation

setquit_type='到期'

wherequit_typeisnullandnum=@num

set@error=@error+@@ERROR

if(@error<>0)

begin

rollbacktran

end

else

begin

committran

end

go

--===========================================================================================

useHotel_Booking

if(object_id('proc_renewal','P')isnotnull)

-----存储过程,客户续房

dropprocproc_renewal

go

createprocproc_renewal(@room_numvarchar(10),@day_numint)

as

declare@errorint

set@error=0

begintran

updatereservation

setdeadline=CONVERT(smalldatetime,dateadd(day,@day_num,deadline))

wherenum=@room_numandquit_typeisnull

set@error=@error+@@ERROR

if(@error<>0)

begin

rollbacktran

return0

end

else

begin

committran

return1

end

go

--===========================================================================================

useHotel_Booking

if(object_id('proc_customer_from_room','P')isnotnull)

-----存储过程,查看某个房间的客户信息

dropprocproc_customer_from_room

go

createprocproc_customer_from_room(@room_numvarchar(10))

as

select*fromcustomera

whereexists

(select*fromreservationbwherea.id=b.idandb.num=@room_numandb.quit_typeisnull)

Go

--===========================================================================================

useHotel_Booking

if(object_id('proc_room_from_customer','P')isnotnull)

-----存储过程,查看某个客户所用房间的信息

dropprocproc_room_from_customer

go

createprocproc_room_from_customer(@idvarchar(20))

as

select*fromrooma

whereexists

(select*fromreservationbwhereb.id=@idandb.num=a.numandb.quit_typeisnull)

go

6数据库安全性控制

--===============================================================================

--首先在SQLServer服务器级别,创建登陆帐户(createlogin)

createlogindba

withpassword='password',

default_database=master

--创建数据库用户(createuser)

useHotel_Booking

createuserdba

forlogindba

withdefault_schema=dbo

--通过加入数据库角色,赋予数据库用户“dba”权限:

execsp_addrolemember'db_owner','dba'

--禁用、启用登陆帐户:

alterlogindbadisable

alterlogindbaenable

--登陆帐户改名:

alterlogindbawithname=dba_tom

--数据库用户改名

alteruserdbawithname=dba_tom

 

--删除指定登录名

droplogindba

--===============================================================================数据库的备份与恢复

backupdatabasehotel_booki

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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