酒店管理系统数据库课程设计.pdf

上传人:w*** 文档编号:80782790 上传时间:2023-03-23 格式:PDF 页数:20 大小:781KB
返回 下载 相关 举报
酒店管理系统数据库课程设计.pdf_第1页
第1页 / 共20页
酒店管理系统数据库课程设计.pdf_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《酒店管理系统数据库课程设计.pdf》由会员分享,可在线阅读,更多相关《酒店管理系统数据库课程设计.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 酒店管理系统数据库课程设计 文件排版存档编号:UYTR-OUPT28-KBNTL98-UYNN208 课程设计报告 课程名称:数据库原理应用 设计题目:酒店客房管理 专业:信息与计算科学 班级:姓名:学号:指导教师:河北建筑工程学院数理系 2014 年 1 月 课程设计题目(问题)描述 随着我国改革开放的不断推进,人民生活水平日益提高,旅游经济蓬勃发展,这一切都带动了酒店行业的发展。再加上入境旅游的人越来越多,入境从事商务活动的外宾也越来越多。传统的手工已不适应现代化酒店管理的需要。及时、准确、全方位的网络化信息管理成为必需。酒店是一个服务至上的行业,从客人的预定开始,到入住登记直至最后退房

2、结账,每一步骤都要保持一致性的服务水准,错失一步,会令其辛苦经营的形象功亏一篑。面对酒店业内激烈的竞争形势,各酒店均在努力拓展其服务领域的广度和深度。虽然计算机并不是酒店走向成功的关键元素,但它可以帮助那些真正影响成败的要素发挥更大的效用。因此,采用全新的计算机网络和管理,将成为提高酒店的管理效率,改善服务水准的重要手段之一。通过此设计可解决一些前台操作问题,预定管理问题以及一些信息查询问题,大大减轻服务人员的工作力度,使酒店宾馆服务更加完善,方便快捷。本 组 成 员 情 况 姓 名 学号 承 担 的 任 务 成 绩 数据库的查询、设计、执行、修改以及编写设计报告 数据库的查询、设计、执行、修

3、改以及编写设计报告 教 师 评 语 签名:注:本设计报告中各个部分如果页数不够,请大家自行扩页,原则是一定要 把报告写详细,能说明本组设计的成果和特色,能够反应小组中每个人的工作。报告中应该叙述设计中的每个模块。设计报告将是评定每个人成绩的一个重要组成部分。一、本 组 设 计 的 功 能 描 述(含所有实现的模块的功能)一、前台操作 开房登记:(1)输入房号查询房状态(2)输入房状态查询房号(3)输入房号把房间状态改成入住 (4)输入顾客信息(5)输入订单信息(6)输入开房信息 退房结账:(1)输入房号把房间状态改成空闲(2)退房结账时输入订单号,输出应结账金额并自动把订单中的“结账离开日期”

4、改为当前日期 房状态查看:输入房号查询房信息 二、预订管理 预订房间:(1)输入房号查询房状态 (2)输入房号把房间状态改成预订 (3)输入顾客信息输入订单信息 (4)输入订房信息 预订入住:(1)输入订单编号,查询此订单的信息 (2)输入房号把房间状态改成入住 (3)输入订单信息 解除预订:(1)删除订房信息 (2)输入订单编号,删除客人信息、订单对应的房号、订单信息并把对应的房间状态改成空闲 三、信息查询 在住客人列表查询 预订客人列表查询 历史客人列表查询 四、报表统计 开房记录统计 退房结账统计 预订房间统计 二、本 组 设 计 的 主 要 特 色 在设计过程中,经过充分的考虑,我们设

5、计了前台操作、预订管理、信息查询、报表统计功能,他们使得开放服务更加完善方便。(1)在前台操作中通过简单的输入就可以查询房信息和客人信息。(2)在预订管理中可以方便的处理房间预订方面的服务,使房间预订更加方便,不至于产生预订冲突。(3)在信息查询方面,可以方便的查询客人的各种信息,服务全面。(4)在报表统计方面,把各种记录统计起来,使酒店的管理更加完善,有利于档案储存管理。总之,该设计大大的节约了人力物力,提高了酒店服务效率,不仅有利于增强整体收入,还可以给顾客以愉悦感,为酒店打出良好的名声。三、系 统 分 析 与 设 计 根据问题描述和要求,完成:系统总体设计确定程序功能模块;系统详细设计在

6、总体设计基础上设计系统总体框架、数据结构(类)、关键算法的流程;最后编制源程序。1.系统功能模块划分及说明 2.总体框架,数据文件等 3.系统关键算法流程图 4.源程序关键性代码 一、程序功能模块 二、系统详细设计 系统总体框架(1)需求分析 1、系统主要业务分析 前台操作:开房登记:客人把自身信息和要入住的房号告诉酒店操作员,酒店操作员可以帮用户登记入住信息;退房登记:客人要是想查询房间的状态是否已入住、是否已预订、是否是空闲时,由酒店操作员帮忙查询;房状态查看:客人要退房的时候付清住宿费,酒店操作员便帮客人把在住记录改成历史记录。预定管理:预定房间:客人把自身信息和想预订的房间号给酒店操作

7、员,酒店操作员便帮客人预订这间房间,之后其他人在此房间被取消预定前无法入住或预定;预定入住:客人把自身信息和预定的房间号告诉酒店操作员,酒店操作员调出预定记录核对后在客户出示身份证件后便允许他登记入住此房间;解除预定:客人把自身信息和预定了的房号告诉酒店操作员,酒店操作员便帮客户取消预订。信息查询:在住客人列表查询:显示现在在住的客人信息 预订客人列表查询:显示预定了房间的客人信息 历史客人列表查询:显示所有曾经在该酒店定房或入住的顾客信息 报表统计:开房记录统计:显示现在有多少已经开房入住的客人 退房结账统计:显示现在有多少客人已经退房结账 预订房间统计:显示现在有多少客人预定了房间 2、系

8、统功能需求分析 图 2 数据流图-前台操作 数据流图-预定管理 数据流图信息查询 数据流图-报表统计(2)数据库概念结构设计 由客人信息的数据项可以得到其相应的实体属性图 证件类型的数据项有:证件类型号、证件类型名。由证件类型的数据项可以得到其相应的实体属性图 房间信息的数据项有:房号、房类型号、价格、押金、房状态。由房间信息的数据项可以得到其相应的实体属性图 房类型的数据项有:房类型号、房类型名、房间平米。由房类型的数据项可以得到其相应的实体属性图 由订单的数据项可以得到其相应的实体属性图 由上述各实体及其属性可以得到实体间的关系图即 ER 图 ER 图(3)数据库逻辑结构设计 数据库的关系

9、模型根据数据模型来确定,即将关系模型转化为 SQL-Server 数据库系统所支持的实际数据模型,得到数据库的逻辑结构。在数据库的关系模型及系统处理过程中的图 1 数据的结构的基础上,获得系统数据库表以及表之间的关系。在本系统中,以下是系统中几个主要的数据依赖和数据库表结构。关系名 主 要 函 数 依 赖 客人信息 BCNF 证件号码(姓名,性别,证件类型号,联系电话)证件类型 BCNF 证件类型号(证件类型名)房间信息 BCNF 房号(房类型号,价格,押金,房状态)房类型 BCNF 房类型号(房类型名,房间平米)订单 BCNF 订单编号(客人证件号,预计入住日期,预计离开日期,入住日期,结账

10、离开日期,应付金额)开房 BCNF(订单编号,房号)()订单表 编号 字段名 字段类型 备注说明 字段约束 1 order_id char(10)订单编号 主键 2 cust_id char(20)客人证件号 外键 3 plan_enter_date datetime 预计入住日期 4 plan_leave_date datetime 预计离开日期 5 enter_date datetime 入住日期 6 leave_date datetime 结账离开日期 7 order_money int 应付金额 客人信息表 编号 字段名 字段类型 备注说明 字段约束 1 cust_id char(20

11、)证件号码 主键 2 ptype_id char(10)证件类型号 外键 3 cust_name char(10)姓名 4 sex char(1)性别 5 phone char(10)联系电话 房间信息表 编号 字段名 字段类型 备注说明 字段约束 1 room_id char(10)房号 主键 2 rtype_id char(10)房类型号 外键 3 rprice int 价格 4 rdeposit int 押金 5 rstate char(10)房状态 证件信息表 编号 字段名 字段类型 备注说明 字段约束 1 ptype_id char(10)证件类型号 主键 2 ptype_name

12、char(10)证件类型名 房间信息表 编号 字段名 字段类型 备注说明 字段约束 1 rtype_id char(10)房类型号 主键 2 rtype_name char(10)房类型名 3 rarea numeric(5,2)房间平米 开房表 编号 字段名 字段类型 备注说明 字段约束 1 order_id char(10)订单编号 主键 2 room_id char(10)房号 三、编制源程序 在数据库中创建表的语句 创建房类型表:create table room_type(rtype_id char(10)primary key,rtype_name char(10),rarea n

13、umeric(5,2);创建房间信息表:create table room(room_id char(10)primary key,rtype_id char(10),rprice int,rdeposit int,rstate char(10),foreign key(rtype_id)references room_type(rtype_id);创建证件类型表:create table paper_type(ptype_id char(10)primary key,ptype_name char(10);创建客人信息表:create table customer(cust_id char(

14、20)primary key,ptype_id char(10),cust_name char(10),sex char(1),phone char(10),foreign key(ptype_id)references paper_type(ptype_id);创建订单表:create table order_log(order_id char(10)primary key,cust_id char(20),plan_enter_date datetime,plan_leave_date datetime,enter_date datetime,leave_date datetime,ord

15、er_money int,foreign key(cust_id)references customer(cust_id);创建订房表:create table book_room(order_id char(10),room_id char(10),foreign key(order_id)references order_log(order_id),foreign key(room_id)references room(room_id);酒店客房管理系统功能设计(存储过程与触发器)3.2.1 前台操作功能设计(1)开房登记操作-输入房号查询房状态 create procedure pro_

16、rstate room_id char(10)as select room_id 房号,rstate 房状态 from room where room_id=room_id-运行 exec pro_rstate 101-输入房状态查询房号 create procedure pro_rstate1 rstate char(10)as select room_id 房号,rtype_name 房类型名,rarea 房间平米,rprice 价格,rdeposit 押金 from room,room_type where=and rstate=rstate;-运行 exec pro_rstate1 空

17、闲-输入房号把房间状态改成入住 create procedure pro_change_rstate_into_live room_id char(10)as update room set rstate=入住 where room_id=room_id select room_id 房号,rstate 房状态 from room where room_id=room_id-运行 exec pro_change_rstate_into_live 101-输入顾客信息(证件号码,证件类型号,姓名,性别,联系电话)create procedure pro_insert_cust cust_id c

18、har(20),ptype_id char(10),cust_name char(10),sex char(1),phone char(10)as insert into customer values(cust_id,ptype_id,cust_name,sex,phone);select cust_id 证件号码,ptype_id 证件号类型,cust_name 姓名,sex 性别,phone 联系电话 from customer-运行 exec pro_ins1,李昂,1-输入订单信息(订单编号,客人证件号,入住日期,预计离开日期)create procedure pro_insert_

19、order order_id char(10),cust_id char(20),enter_date datetime,plan_leave_date datetime as insert into order_log(order_id,cust_id,enter_date,plan_leave_date)values(order_id,cust_id,enter_date,plan_leave_date);select order_id 订单编号,cust_id 客人证件号,plan_enter_date 预计入住日期,enter_date 入住日期,plan_leave_date 预计离

20、开日期,leave_date 结账离开日期,order_money 应付金额 from order_log-运行 exec pro_insert_order 032013-7-1,2013-7-10-输入开房信息(订单号,房号)create procedure pro_insert_book_room order_id char(10),room_id char(10)as insert into book_room values(order_id,room_id);select order_id 订单编号,room_id 房号 from book_room where order_id=or

21、der_id-运行 exec pro_insert_book_room 03,101(2)退房结账-输入房号把房间状态改成空闲 create procedure pro_change_rstate_into_free room_id char(10)as update room set rstate=空闲 where room_id=room_id;select room_id 房号,rstate 房状态 from room where room_id=room_id-运行 exec pro_change_rstate_into_free 101-退房结账时输入订单号,输出应结账金额并自动把订

22、单中的“结账离开日期”改为当前日期 create procedure pro_quit_getmoney order_id char(10)as begin declare enter_date datetime,order_money int,sum int declare getCur cursor for select enter_date,order_money from order_log where order_id=order_id;open getCur fetch getCur into enter_date,order_money begin update order_lo

23、g set leave_date=getdate()where order_id=order_id;select sum=(day(getdate()-day(enter_date)*order_money;end close getCur deallocate getCur end-运行 exec pro_quit_getmoney 01(3)房状态查看-输入房号查询房信息 create procedure pro_room_info room_id char(10)as select room_id 房号,rtype_id 房类型号,rprice 价格,rdeposit 押金,rstate

24、 房状态 from room where room_id=room_id-运行 exec pro_room_info 101 3.2.2 预订管理功能设计(1)预定房间-输入房号查询房状态 create procedure pro_rstate 12room_id char(10)as select room_id 房号,rstate 房状态 from room where room_id=room_id-运行 exec pro_rstate 101-输入房号把房间状态改成预订 create procedure pro_change_rstate_into_subscribe room_id

25、char(10)as update room set rstate=预订 where room_id=room_id;select room_id 房号,rstate 房状态 from room where room_id=room_id-运行 exec pro_change_rstate_into_subscribe 101-输入顾客信息(证件号码,证件类型号,姓名,性别,联系电话)create procedure pro_insert_cust12 cust_id char(20),ptype_id char(10),cust_name char(10),sex char(1),phone

26、 char(10)as insert into customer values(cust_id,ptype_id,cust_name,sex,phone);select cust_id 证件号码,ptype_id 证件号类型,cust_name 姓名,sex 性别,phone 联系电话 from customer-运行 王小,1-输入订单信息(订单编号,客人证件号,预计入住日期)进行预订 create procedure pro_subscribe order_id char(10),cust_id char(20),plan_enter_date datetime as insert int

27、o order_log(order_id,cust_id,plan_enter_date)values(order_id,cust_id,plan_enter_date);select order_id 订单编号,cust_id 客人证件号,plan_enter_date 预计入住日期,enter_date 入住日期,plan_leave_date 预计离开日期,leave_date 结账离开日期,order_money 应付金额 from order_log where order_id=order_id;-运行 exec pro_subscribe 2013-6-29-输入订房信息(订单号

28、,房号)create procedure pro_insert_book_room1 order_id char(10),room_id char(10)as insert into book_room values(order_id,room_id);select order_id 订单编号,room_id 房号 from book_room where order_id=order_id-运行 exec pro_insert_book_room 02,102(2)预定入住-输入订单编号,查询此订单的信息(看是否为已预订)create procedure pro_subscribe_to_e

29、nter order_id char(10)as if exists(select*from order_log where order_id=order_id)print已预订 else print未预定-运行 exec pro_subscribe_to_enter 101-输入房号把房间状态改成入住 create procedure pro_change_rstate_into_live1 room_id char(10)as update room set rstate=入住 where room_id=room_id select room_id 房号,rstate 房状态 from

30、room where room_id=room_id-运行 exec pro_change_rstate_into_live 101-输入订单信息(订单编号,预计离开日期,入住日期,应付金额)create procedure pro_subscribe_to_live order_id char(10),plan_leave_date datetime,enter_date datetime,order_money int as update order_log set plan_leave_date=plan_leave_date,enter_date=enter_date,order_mo

31、ney=order_money where order_id=order_id select order_id 订单编号,cust_id 客人证件号,plan_enter_date 预计入住日期,enter_date 入住日期,plan_leave_date 预计离开日期,leave_date 结账离开日期,order_money 应付金额 from order_log where order_id=order_id-运行 exec pro_subscribe_to_live 02,2013-7-12,2013-7-1,300(3)解除预订-删除订房信息(订单号,房号)【触发器实现】creat

32、e trigger trig_dele_book_room on order_log for delete as delete book_room from book_room,deleted where=-输入订单编号,删除客人信息、订单对应的房号、订单信息并把对应的房间状态改成空闲(取消预订)create procedure pro_cancel_subscribe order_id char(10)as declare cust_id char(20)declare getCur cursor for select cust_id from order_log where order_i

33、d=order_id open getCur fetch getCur into cust_id update room set rstate=空闲 where room_id in(select room_id from book_room where order_id=order_id)delete from order_log where order_id=order_id delete from book_room where order_id=order_id delete from customer where cust_id=cust_id close getCur deallo

34、cate getCur-运行 exec pro_cancel_subscribe 02 3.2.3 信息查询功能设计(1)查询在住客人列表 create procedure pro_select_cust as declare cust_id char(20)declare getCur cursor for select cust_id from order_log where enter_date is not null and leave_date is null open getCur fetch getCur into cust_id select cust_id 证件号码,ptyp

35、e_id 证件号类型,cust_name 姓名,sex 性别,phone 联系电话 from customer where cust_id=cust_id close getCur deallocate getCur-运行 exec pro_select_cust (2)查询预订客人信息 create procedure pro_select_subscribe as declare cust_id char(20)declare getCur cursor for select cust_id from order_log where plan_enter_date is not null

36、and enter_date is null open getCur fetch getCur into cust_id select cust_id 证件号码,ptype_id 证件号类型,cust_name 姓名,sex 性别,phone 联系电话 from customer where cust_id=cust_id close getCur deallocate getCur-运行 exec pro_select_subscribe -查询历史客人信息 create procedure pro_select_past1 as declare cust_id char(20)declar

37、e getCur cursor for select cust_id from order_log where leave_date is not null open getCur fetch getCur into cust_id select cust_id 证件号码,ptype_id 证件号类型,cust_name 姓名,sex 性别,phone 联系电话 from customer where cust_id=cust_id close getCur deallocate getCur-运行 exec pro_select_past1 3.2.4 报表统计功能设计(1)开房记录统计 c

38、reate procedure pro_sum_live as declare count int select count=COUNT(*)from order_log where enter_date is not null and leave_date is null print开房记录共+convert(char(10),count)+条-运行 exec pro_sum_live(2)退房结账记录统计 create procedure pro_sum_leave as declare count int select count=COUNT(*)from order_log where

39、 leave_date is not null print退房结账记录共+convert(char(10),count)+条 -运行 exec pro_sum_leave(3)预订房间记录统计 create procedure pro_sum_subscribe as declare count int select count=COUNT(*)from order_log where plan_enter_date is not null and enter_date is null print预定房间记录共+convert(char(10),count)+条-运行 exec pro_sum

40、_subscribe 四、系 统 调 试 出 现 的 问 题 及 解 决 情 况(编译语法错误及修改,重点是运行逻辑问题修改和调整)错误 1:在有多重括号时,有括号遗漏。改正-(rtype_id)错误 2:有命名重复,修改名称 错误 3:有单引号遗漏 错误 4:由于前面对表格的修改造成后面的查询失败,修改表格内容加入多的表格内容 错误 5:查询信息与所建立的表不符,把m改为1 错误 6:设定的表格在使用过程中丢失,纠正重新录入表格 五、系 统 运 行 报 告(测 试 的 结 果)一、前台操作功能设计 1.开房登记操作:-输入房号查询房状态 -输入房状态查询房号-输入房号把房间状态改成入住-输入

41、顾客信息(证件号码,证件类型号,姓名,性别,联系电话-输入订单信息(订单编号,客人证件号,入住日期,预计离开日期)-输入开房信息(订单号,房号 2.退房结账:输入房号把房间状态改成空闲 退房结账时输入订单号,输出应结账金额并自动把订单中的“结账离开日期”改为当前日期 3.房信息查看:输入房号查询房信息 一、预订管理功能设计 1.预定房间:输入房号查询房状态 输入房号把房间状态改成预订 输入顾客信息(证件号码,证件类型号,姓名,性别,联系电话)输入订单信息(订单编号,客人证件号,预计入住日期)进行预订 输入订房信息(订单号,房号)2.预定入住:输入订单编号,查询此订单的信息(看是否为已预订)输入

42、房号把房间状态改成入住 输入订单信息(订单编号,预计离开日期,入住日期,应付金额)3.解除预订:-删除订房信息(订单号,房号)三、信息查询功能设计 查询在住客人列表 查询预订客人信息 查询历史客人信息 二、报表统计功能设计 开房记录统计 退房结账记录统计-预订房间记录统计 六、总结(包括设计的总结、还需改进的内容及心得体会)这次的课程设计,我们只是挑选了较简单的课题,大部分都是应用已知的知识。对于酒店客服管理来说,可能某些方面并不全面,一个酒店要运行得畅并不是这点东西就能解决的。虽然它有一定的实用价值,但还是过于简单,不太适合大型酒店的运营。但是由于我们实力有限,现在还无法设计出比较繁琐的程序

43、,我们以后会加倍努力,争取有所提高,希望在以后的日子里,能够设计出真正适应市场、适应时代的设计。通过此次设计我们充分认识到了自己知识的欠缺,对数据库的内容有很多方面还不够了解,不能完全掌握书中的内容,因此在设计中出现了较多的语法和逻辑的错误。虽然通过不断的查阅课本,我们努力的更正了,还是有很多地方需要通过网络才能解决。这使我们浪费了大量的时间和精力,大大的减小了我们的设计效率。不过,俗话说,有利必有弊,这次设计充分的暴露了我们的不足,但也给了我们一个学习的平台。我们了解到:要做好一个设计,需要对数据库的知识有充分的了解,这迫使我们努力的翻阅书籍,并且通过各种途径查询资料,最后我们不仅圆满的完成了设计,更丰富了我们的知识储备,武装了我们的头脑。因此,这次设计的过程虽然艰辛,但我们很快乐。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁