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

(68页)

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

《酒店管理系统数据库课程设计.doc》由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关《酒店管理系统数据库课程设计.doc》文档请在天天文库搜索。

1、 .课程设计报告课程名称: 数据库原理应用 设计题目: 酒店客房管理 专业: 信息与计算科学 班级: 姓名: 学号: 指导教师: 建筑工程学院数理系2014年1月课程设计题目(问题)描述随着我国改革开放的不断推进,人民生活水平日益提高,旅游经济蓬勃发展,这一切都带动了酒店行业的发展。再加上入境旅游的人越来越多,入境从事商务活动的外宾也越来越多。传统的手工已不适应现代化酒店管理的需要。及时、准确、全位的网络化信息管理成为必需。 酒店是一个服务至上的行业,从客人的预定开始,到入住登记直至最后退房结账,每一步骤都要保持一致性的服务水准,错失一步, 会令其辛苦经营的形象功亏一篑。面对酒店业激烈的竞争形势,各酒店均在努力拓展其服务领域的广度和深度。虽然计算机并不是酒店走向成功的关键元素,但它可以帮助那些真正影响成败的要素发挥更大的效用。因此,采用全新的计算机网络和管理,将成为提高酒店的管理效率,改。

2、善服务水准的重要手段之一。通过此设计可解决一些前台操作问题,预定管理问题以及一些信息查询问题,大大减轻服务人员的工作力度,使酒店宾馆服务更加完善,便快捷。本 组 成 员 情 况姓 名学号承 担 的 任 务成 绩数据库的查询、设计、执行、修改以及编写设计报告2012314201数据库的查询、设计、执行、修改以及编写设计报告教 师 评 语签名: 注:本设计报告中各个部分如果页数不够,请大家自行扩页,原则是一定要把报告写详细,能说明本组设计的成果和特色,能够反应小组中每个人的工作。报告中应该叙述设计中的每个模块。设计报告将是评定每个人成绩的一个重要组成部分。一、本 组 设 计 的 功 能 描 述(含所有实现的模块的功能)一、前台操作² 开房登记:(1)输入房号查询房状态 (2) 输入房状态查询房号 (3)输入房号把房间状态改成入住 (4)输入顾客信息 (5)输入订单信息(6)输入开房信息² 退房。

3、结账:(1)输入房号把房间状态改成空闲 (2)退房结账时输入订单号,输出应结账金额并自动把订单中的“结账离开日期”改为当前日期 ² 房状态查看:输入房号查询房信息二、预订管理² 预订房间:(1)输入房号查询房状态 (2)输入房号把房间状态改成预订 (3)输入顾客信息输入订单信息 (4)输入订房信息² 预订入住:(1)输入订单编号,查询此订单的信息 (2)输入房号把房间状态改成入住 (3) 输入订单信息² 解除预订:(1)删除订房信息 (2)输入订单编号,删除客人信息、订单对应的房号、订单信息并把对应的房间状态改成空闲 三、信息查询² 在住客人列表查询 ² 预订客人列表查询² 历史客人列表查询四、报表统计² 开房记录统计² 退房结账统计² 预订房间统计二、本 组 设 计 的 主 要 特 色在设计过程中,经过充分的考虑,我们设计了前台操作、预订管理、信息查询、报表统计功能,他们使得开放服务更加。

4、完善便。(1)在前台操作过简单的输入就可以查询房信息和客人信息。(2)在预订管理中可以便的处理房间预订面的服务,使房间预订更加便,不至于产生预订冲突。(3)在信息查询面,可以便的查询客人的各种信息,服务全面。(4)在报表统计面,把各种记录统计起来,使酒店的管理更加完善,有利于档案储存管理。总之,该设计大大的节约了人力物力,提高了酒店服务效率,不仅有利于增强整体收入,还可以给顾客以愉悦感,为酒店打出良好的名声。三、系 统 分 析 与 设 计根据问题描述和要求,完成:l 系统总体设计--确定程序功能模块;l 系统详细设计--在总体设计基础上设计系统总体框架、数据结构(类)、关键算法的流程;l 最后编制源程序。1. 系统功能模块划分及说明2. 总体框架,数据文件等3. 系统关键算法流程图4. 源程序关键性代码一、程序功能模块二、系统详细设计2.1系统总体框架(1)需求分析1、系统主要业务分析1.。

5、1前台操作: 开房登记:客人把自身信息和要入住的房号告诉酒店操作员,酒店操作员可以帮用户登记入住信息; 退房登记:客人要是想查询房间的状态——是否已入住、是否已预订、是否是空闲——时,由酒店操作员帮忙查询; 房状态查看:客人要退房的时候付清住宿费,酒店操作员便帮客人把在住记录改成历史记录。1.2预定管理: 预定房间:客人把自身信息和想预订的房间号给酒店操作员,酒店操作员便帮客人预订这间房间,之后其他人在此房间被取消预定前无法入住或预定; 预定入住:客人把自身信息和预定的房间号告诉酒店操作员,酒店操作员调出预定记录核对后在客户出示身份证件后便允他登记入住此房间; 解除预定:客人把自身信息和预定了的房号告诉酒店操作员,酒店操作员便帮客户取消预订。1.3信息查询: 在住客人列表查询:显示现在在住的客人信息 预订客人列表查询:显示预定了房间的客人信息 历史客人列表查询:显示所有曾经在该酒店定房或入。

6、住的顾客信息1.4报表统计: 开房记录统计:显示现在有多少已经开房入住的客人 退房结账统计:显示现在有多少客人已经退房结账 预订房间统计:显示现在有多少客人预定了房间2、系统功能需求分析图1 图2 数据流图---前台操作 数据流图---预定管理数据流图—信息查询数据流图----报表统计(2)数据库概念结构设计由客人信息的数据项可以得到其相应的实体属性图证件类型的数据项有:证件类型号、证件类型名。由证件类型的数据项可以得到其相应的实体属性图 房间信息的数据项有:房号、房类型号、价格、押金、房状态。由房间信息的数据项可以得到其相应的实体属性图房类型的数据项有:房类型号、房类型名、房间平米。由房类型的数据项可以得到其相应的实体属性图由订单的数据项可以得到其相应的实体属性图由上述各实体及其属性可以得到实体间的关系图即ER图 E—R图(3)数据库逻辑结构设计数据库的关系模型根据数据模型来确定,即将关。

7、系模型转化为SQL-Server数据库系统所支持的实际数据模型,得到数据库的逻辑结构。在数据库的关系模型及系统处理过程中的数据的结构的基础上,获得系统数据库表以及表之间的关系。在本系统中,以下是系统中几个主要的数据依赖和数据库表结构。关系名主 要 函 数 依 赖客人信息BCNF证件—→(姓名,性别,证件类型号,联系)证件类型BCNF 证件类型号—→(证件类型名)房间信息BCNF房号—→(房类型号,价格,押金,房状态)房类型BCNF房类型号—→(房类型名,房间平米)订单BCNF订单编号—→(客人证件号,预计入住日期,预计离开日期,入住日期,结账离开日期,应付金额)开房BCNF(订单编号,房号)—→() 订单表编号字段名字段类型备注说明字段约束1order_idchar(10)订单编号主键2cust_idchar(20)客人证件号外键3plan_enter_datedatetime预计入住日期。

8、4plan_leave_datedatetime预计离开日期5enter_datedatetime入住日期6leave_datedatetime结账离开日期7order_moneyint应付金额 客人信息表编号字段名字段类型备注说明字段约束1cust_idchar(20)证件主键2ptype_idchar(10)证件类型号外键3cust_namechar(10)姓名4sexchar(1)性别5phonechar(10)联系 房间信息表编号字段名字段类型备注说明字段约束1room_idchar(10)房号主键2rtype_idchar(10)房类型号外键3rpriceint价格4rdepositint押金5rstatechar(10)房状态 证件信息表编号字段名字段类型备注说明字段约束1ptype_idchar(10)证件类型号主键2ptype_namechar(10)证件类型名 房间信息表。

9、编号字段名字段类型备注说明字段约束1rtype_idchar(10)房类型号主键2rtype_namechar(10)房类型名3rareanumeric(5,2)房间平米 开房表编号字段名字段类型备注说明字段约束1order_idchar(10)订单编号主键2room_idchar(10)房号三、编制源程序3.1在数据库中创建表的语句创建房类型表:create table room_type(rtype_id char(10) primary key,rtype_name char(10),rarea numeric(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_i。

10、d)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(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_。

11、leave_date datetime,enter_date datetime,leave_date datetime,order_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 酒店客房管理系统功能设计(存储过程与触发器)3.2.1 前台操作功能设计(1)开房登记操作--输入房号查询房状态create procedure pro_rstate @room_id char(10) as。

12、select room_id 房号,rstate 房状态 from roomwhere room_id=@room_id--运行exec pro_rstate 101--输入房状态查询房号create procedure pro_rstate1 @rstate char(10) asselect room_id 房号,rtype_name 房类型名,rarea 房间平米,rprice 价格,rdeposit 押金from room,room_typewhere room.rtype_id=room_type.rtype_id and rstate=@rstate;--运行exec pro_rstate1 空闲--输入房号把房间状态改成入住create procedure pro_change_rstate_into_live @room_id char(10) asupdate rooms。

13、et rstate='入住'where room_id=@room_idselect room_id 房号,rstate 房状态 from room where room_id=@room_id--运行exec pro_change_rstate_into_live 101--输入顾客信息(证件,证件类型号,姓名,性别,联系)create procedure pro_insert_cust @cust_id char(20),@ptype_id char(10),@cust_name char(10),@sex char(1),@phone char(10) asinsert into customer values(@cust_id,@ptype_id,@cust_name,@sex,@phone);select cust_id 证件,ptype_id 证件号类型,cust_name 姓。

14、名,sex 性别,phone 联系from customer--运行exec pro_insert_cust '8','1','昂','1',''--输入订单信息(订单编号,客人证件号,入住日期,预计离开日期)create procedure pro_insert_order @order_id char(10),@cust_id char(20),@enter_date datetime, @plan_leave_date datetime asinsert 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 。

15、预计入住日期,enter_date 入住日期,plan_leave_date 预计离开日期,leave_date 结账离开日期,order_money 应付金额 from order_log--运行exec pro_insert_order '03','8','2013-7-1','2013-7-10'--输入开房信息(订单号,房号)create procedure pro_insert_book_room @order_id char(10),@room_id char(10) asinsert into book_room values(@order_id,@room_id);select order_id 订单编号,room_id 房号 from book_roomwhere order_id=@order_id--运行exec pro_insert_book_room '03','。

16、101'(2)退房结账--输入房号把房间状态改成空闲create procedure pro_change_rstate_into_free @room_id char(10) asupdate roomset rstate='空闲'where room_id=@room_id;select room_id 房号,rstate 房状态 from room where room_id=@room_id--运行exec pro_change_rstate_into_free '101'--退房结账时输入订单号,输出应结账金额并自动把订单中的“结账离开日期”改为当前日期create procedure pro_quit_getmoney @order_id char(10) as begin declare @enter_date datetime,@order_money int,@sum i。

17、nt 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_log set leave_date=getdate() where order_id=@order_id; select @sum=(day(getdate())-day(@enter_date))*@order_money; endclose getCurdeallocate getCurend--运行exec pro_quit_getmoney '01'(3)房状态查看--输入房号查询房信息create procedure pro_room_。

18、info @room_id char(10) asselect room_id 房号,rtype_id 房类型号,rprice 价格,rdeposit 押金,rstate 房状态 from roomwhere room_id=@room_id--运行exec pro_room_info '101'3.2.2 预订管理功能设计(1)预定房间--输入房号查询房状态create procedure pro_rstate 12@room_id char(10) asselect room_id 房号,rstate 房状态 from roomwhere room_id=@room_id--运行exec pro_rstate '101'--输入房号把房间状态改成预订create procedure pro_change_rstate_into_subscribe @room_id char(10) a。

19、supdate roomset rstate='预订'where room_id=@room_id;select room_id 房号,rstate 房状态 from roomwhere 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 char(10) asinsert into customer values(@cust_id,@ptype_id,@cust_name,@sex,@phone);select cust_id 证件,ptype。

20、_id 证件号类型,cust_name 姓名,sex 性别,phone 联系from customer--运行exec pro_insert_cust '8','01','小','1',''--输入订单信息(订单编号,客人证件号,预计入住日期)进行预订create procedure pro_subscribe @order_id char(10),@cust_id char(20),@plan_enter_date datetime asinsert into 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 入住日期, pla。

21、n_leave_date 预计离开日期,leave_date 结账离开日期,order_money 应付金额 from order_logwhere order_id=@order_id;--运行exec pro_subscribe '02','8','2013-6-29'--输入订房信息(订单号,房号)create procedure pro_insert_book_room1 @order_id char(10),@room_id char(10) asinsert into book_room values(@order_id,@room_id);select order_id 订单编号,room_id 房号 from book_roomwhere order_id=@order_id--运行exec pro_insert_book_room '02','102'(2)预定入住--输。

22、入订单编号,查询此订单的信息(看是否为已预订)create procedure pro_subscribe_to_enter @order_id char(10) asif exists(select* from order_log where order_id=@order_id)print'已预订'elseprint'未预定'--运行exec pro_subscribe_to_enter 101--输入房号把房间状态改成入住create procedure pro_change_rstate_into_live1 @room_id char(10) asupdate room set rstate='入住'where room_id=@room_idselect room_id 房号,rstate 房状态 from room where room_id=@room_id--运行exec。

23、 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 asupdate order_log set plan_leave_date=@plan_leave_date,enter_date=@enter_date,order_money=@order_moneywhere order_id=@order_idselect order_id 订单编号,cust_id 客人证件号,plan_enter_date 预计入住日期,enter_date 入住日期,plan_leave_dat。

24、e 预计离开日期,leave_date 结账离开日期,order_money 应付金额 from order_logwhere order_id=@order_id--运行exec pro_subscribe_to_live '02','2013-7-12','2013-7-1',300(3)解除预订--删除订房信息(订单号,房号) 【触发器实现】create trigger trig_dele_book_room on order_log for delete asdelete book_room from book_room,deleted where book_room.order_id=deleted.order_id--输入订单编号,删除客人信息、订单对应的房号、订单信息并把对应的房间状态改成空闲(取消预订)create procedure pro_cancel_subscrib。

25、e @order_id char(10) asdeclare @cust_id char(20)declare getCur cursor forselect cust_id from order_logwhere order_id=@order_idopen getCurfetch getCur into @cust_idupdate roomset rstate='空闲'where room_id in(select room_idfrom book_roomwhere order_id=@order_id)delete from order_logwhere order_id=@order_iddelete from book_roomwhere order_id=@order_iddelete from customerwhere cust_id=@cust_idclose get。

26、Curdeallocate getCur--运行exec pro_cancel_subscribe '02'3.2.3 信息查询功能设计(1)查询在住客人列表create procedure pro_select_cust asdeclare @cust_id char(20)declare getCur cursor forselect cust_id from order_logwhere enter_date is not null and leave_date is nullopen getCurfetch getCur into @cust_idselect cust_id 证件,ptype_id 证件号类型,cust_name 姓名,sex 性别,phone 联系from customerwhere cust_id=@cust_idclose getCurdeallocate 。

27、getCur--运行exec pro_select_cust (2)查询预订客人信息create procedure pro_select_subscribe asdeclare @cust_id char(20)declare getCur cursor forselect cust_id from order_logwhere plan_enter_date is not null and enter_date is nullopen getCurfetch getCur into @cust_idselect cust_id 证件,ptype_id 证件号类型,cust_name 姓名,sex 性别,phone 联系from customerwhere cust_id=@cust_idclose getCurdeallocate getCur--运行exec pro_select_s。

28、ubscribe --查询历史客人信息create procedure pro_select_past1 asdeclare @cust_id char(20)declare getCur cursor forselect cust_id from order_logwhere leave_date is not nullopen getCur fetch getCur into @cust_idselect cust_id 证件,ptype_id 证件号类型,cust_name 姓名,sex 性别,phone 联系from customerwhere cust_id=@cust_idclose getCurdeallocate getCur--运行exec pro_select_past1 3.2.4 报表统计功能设计(1)开房记录统计create procedure pro_sum_l。

29、ive asdeclare @count intselect @count=COUNT(*) from order_logwhere enter_date is not null and leave_date is nullprint'开房记录共'+convert(char(10),@count)+'条'--运行exec pro_sum_live(2)退房结账记录统计create procedure pro_sum_leave asdeclare @count intselect @count=COUNT(*) from order_logwhere leave_date is not nullprint'退房结账记录共'+convert(char(10),@count)+'条'--运行exec pro_sum_leave(3)预订房间记录统计create procedure pro_su。

30、m_subscribe asdeclare @count intselect @count=COUNT(*) from order_logwhere plan_enter_date is not null and enter_date is nullprint'预定房间记录共'+convert(char(10),@count)+'条'--运行exec pro_sum_subscribe四、系 统 调 试 出 现 的 问 题 及 解 决 情 况(编译语法错误及修改,重点是运行逻辑问题修改和调整)错误1:在有多重括号时,有括号遗漏。改正--(rtype_id)错误2:有命名重复,修改名称错误3:有单引号遗漏错误4:由于前面对表格的修改造成后面的查询失败,修改表格容加入多的表格容错误5:查询信息与所建立的表不符,把‘m’改为‘1’错误6:设定的表格在使用过程中丢失,纠正重新录入表格五、系 统 运。

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

32、日期,应付金额)3. 解除预订:-删除订房信息(订单号,房号)三、信息查询功能设计查询在住客人列表查询预订客人信息查询历史客人信息二、 报表统计功能设计开房记录统计 退房结账记录统计-预订房间记录统计六、总结(包括设计的总结、还需改进的容及心得体会)这次的课程设计,我们只是挑选了较简单的课题,大部分都是应用已知的知识。对于酒店客服管理来说,可能某些面并不全面,一个酒店要运行得畅并不是这点东西就能解决的。虽然它有一定的实用价值,但还是过于简单,不太适合大型酒店的运营。但是由于我们实力有限,现在还无法设计出比较繁琐的程序,我们以后会加倍努力,争取有所提高,希望在以后的日子里,能够设计出真正适应市场、适应时代的设计。通过此次设计我们充分认识到了自己知识的欠缺,对数据库的容有很多面还不够了解,不能完全掌握书中的容,因此在设计中出现了较多的语法和逻辑的错误。虽然通过不断的查阅课本,我们努力的更正了,还是有很多地需要通过网络才能解决。这使我们浪费了大量的时间和精力,大大的减小了我们的设计效率。不过,俗话说,有利必有弊,这次设计充分的暴露了我们的不足,但也给了我们一个学习的平台。我们了解到:要做好一个设计,需要对数据库的知识有充分的了解,这迫使我们努力的翻阅书籍,并且通过各种途径查询资料,最后我们不仅圆满的完成了设计,更丰富了我们的知识储备,武装了我们的头脑。因此,这次设计的过程虽然艰辛,但我们很快乐。单纯的课本容,并不能满足学生的需要,通过补充,达到容的完善 教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。 专业资料。

关 键 词:
设计 酒店 管理 系统 数据库 课程
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:酒店管理系统数据库课程设计.doc
链接地址: https://www.wenku365.com/s-58397630.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开