数据库课程设计(酒店客房管理系统).doc_第1页
数据库课程设计(酒店客房管理系统).doc_第2页
数据库课程设计(酒店客房管理系统).doc_第3页
数据库课程设计(酒店客房管理系统).doc_第4页
数据库课程设计(酒店客房管理系统).doc_第5页
免费预览已结束,剩余18页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南昌航空大学酒店客房管理系统 课程设计报告学 院 软件学院 专 业 软件工程 班 级 112062 学 号 20 学生姓名 李昂 指导教师 王璐 课程成绩 完成日期 2013年7月2号 目录1 酒店客房管理管理系统需求分析21.1开发背景31.2 系统主要业务分析31.3 系统功能需求分析41.4 系统数据模型92 酒店客房管理系统逻辑结构设计122.1 系统模块划分122.2 数据库逻辑结构设计132.3 在数据库中创建表的语句153 酒店客房管理系统功能设计(存储过程与触发器)163.1 前台操作功能设计16 3.1.1 开房登记操作16 3.1.2 退房结账17 3.1.3 房信息查看183.2 预订管理功能设计19 3.2.1 预定房间19 3.2.2 预定入住20 3.2.3 解除预订213.3 信息查询功能设计213.3 报表统计功能设计234 课程设计总结231 酒店客房管理管理系统需求分析1.1开发背景当前,随着信息的不断飞速发展,信息技术已逐渐成为各种技术的基础,信息也成为企业具有竞争力的核心要素。企业的生存和发展依靠正确的决策,而决策的基础就是信息,所以企业竞争力的高低完全取决于企业对信息的获取和处理能力。企业要准确、快速的获取和处理信息,企业信息化是必然的选择。企业必须加快内部信息交流,改进企业业务流程和管理模式,提高运行效率,降低成本,提高竞争力,信息化建设是企业适应社会发展的要求。企业管理信息系统即企业MIS是企业信息化的重要内容。 随着我国改革开放的不断推进,人民生活水平日益提高,旅游经济蓬勃发展,这一切都带动了酒店行业的发展。再加上入境旅游的人也越来越多,入境从事商务活动的外宾也越来越多。传统的手工已不适应现代化酒店管理的需要。及时、准确、全方位的网络化信息管理成为必需。 酒店是一个服务至上的行业,从客人的预定开始,到入住登记直至最后退房结账,每一步骤都要保持一致性的服务水准,错失一步, 会令其辛苦经营的形象功亏一篑。要成为一间成功的酒店,就必须作到宾至如归,面对酒店业内激烈的竞争形势,各酒店均在努力拓展其服务领域的广度和深度。虽然计算机并不是酒店走向成功的关键元素,但它可以帮助那些真正影响成败的要素发挥更大的效用。因此,采用全新的计算机网络和管理系统,将成为提高酒店的管理效率,改善服务水准的重要手段之一。1.2 系统主要业务分析1.2.1前台操作: 开房登记:客人把自身信息和要入住的房号告诉酒店操作员,酒店操作员可以帮用户登记入住信息; 退房登记:客人要是想查询房间的状态是否已入住、是否已预订、是否是空闲时,由酒店操作员帮忙查询; 房状态查看:客人要退房的时候付清住宿费,酒店操作员便帮客人把在住记录改成历史记录。1.2.2预定管理: 预定房间:客人把自身信息和想预订的房间号给酒店操作员,酒店操作员便帮客人预订这间房间,之后其他人在此房间被取消预定前无法入住或预定; 预定入住:客人把自身信息和预定的房间号告诉酒店操作员,酒店操作员调出预定记录核对后在客户出示身份证件后便允许他登记入住此房间; 解除预定:客人把自身信息和预定了的房号告诉酒店操作员,酒店操作员便帮客户取消预订。1.2.3信息查询: 在住客人列表查询:显示现在在住的客人信息 预订客人列表查询:显示预定了房间的客人信息 历史客人列表查询:显示所有曾经在该酒店定房或入住的1.2.4报表统计: 开房记录统计:显示现在有多少已经开房入住的客人 退房结账统计:显示现在有多少客人已经退房结账 预订房间统计:显示现在有多少客人预定了房间1.3 系统功能需求分析 图1-1 0层数据流图 图1-2 1层数据流图 图1-3 2层数据流图房间操作处理 图1-4 2层数据流图预定操作处理 图1-5 2层数据流图信息查询处理 图1-6 2层数据流图报表统计处理1.4 系统数据模型根据上面所述的业务流程,可以得到系统的数据流图。根据业务流程以及对应的数据流图,可以得到客户、账户、信用卡、表单、凭证等的数据字典。根据得到的数据字典,我们可以得到各个实体的属性图。以下就是主要实体的数据字典和实体图。客人信息的数据项有:姓名、性别、证件类型号、证件号码、联系电话。由客人信息的数据项可以得到其相应的实体属性图,如图1-7 所示:客人信息姓名性别证件类型号联系电话证件号码图1-7 客人信息实体图证件类型的数据项有:证件类型号、证件类型名。由证件类型的数据项可以得到其相应的实体属性图,如图1-8 所示:证件类型证件类型号证件类型名图1-8 证件类型实体图房间信息的数据项有:房号、房类型号、价格、押金、房状态。由房间信息的数据项可以得到其相应的实体属性图,如图1-9 所示:房间信息房状态押金价格房类型号房号图1-9 房间信息实体图房类型的数据项有:房类型号、房类型名、房间平米。由房类型的数据项可以得到其相应的实体属性图,如图1-10 所示:房类型房类型号房类型名房间平米图1-10 房类型实体图订单的数据项有:订单编号、客人证件号、预计入住日期、预计离开日期、入住日期、结账离开日期、应付金额。由订单的数据项可以得到其相应的实体属性图,如图1-11 所示:订单客人证件号预计入住日期预计离开日期订单编号入住日期结账离开日期应付金额图1-11 订单实体图 由上述各实体及其属性可以得到实体间的关系图即ER图,如下图1-12 所示:预订开房包含包含证件类型客人信息订单房间信息房类型nm1n1nm1图1-12 E-R图2 酒店客房管理系统逻辑结构设计2.1 系统模块划分主要功能报表统计前台操作预订管理信息查询退房结账统计预订房间统计开房记录统计预订客人列表查询历史客人列表查询在住客人列表查询解除预订预订入住预订房间退房结账开房登记房状态查看图2-1 系统模块划分2.2 数据库逻辑结构设计数据库的关系模型根据数据模型来确定,即将关系模型转化为SQL-Server数据库系统所支持的实际数据模型,得到数据库的逻辑结构。在数据库的关系模型及系统处理过程中的数据的结构的基础上,获得系统数据库表以及表之间的关系。在本系统中,以下是系统中几个主要的数据依赖和数据库表结构,如表2-1 到2-7 所示:数据依赖 表2-1 数据依赖关系关系名主 要 函 数 依 赖客人信息BCNF证件号码(姓名,性别,证件类型号,联系电话)证件类型BCNF 证件类型号(证件类型名)房间信息BCNF房号(房类型号,价格,押金,房状态)房类型BCNF房类型号(房类型名,房间平米)订单BCNF订单编号(客人证件号,预计入住日期,预计离开日期,入住日期,结账离开日期,应付金额)开房BCNF(订单编号,房号)() 表2-2 订单表(order_log)编号字段名字段类型备注说明字段约束1order_idchar(10)订单编号主键2cust_idchar(20)客人证件号外键3plan_enter_datedatetime预计入住日期4plan_leave_datedatetime预计离开日期5enter_datedatetime入住日期6leave_datedatetime结账离开日期7order_moneyint应付金额表2-3 客人信息表(customer)编号字段名字段类型备注说明字段约束1cust_idchar(20)证件号码主键2ptype_idchar(10)证件类型号外键3cust_namechar(10)姓名4sexchar(1)性别5phonechar(10)联系电话 表2-4 房间信息表(room)编号字段名字段类型备注说明字段约束1room_idchar(10)房号主键2rtype_idchar(10)房类型号外键3rpriceint价格4rdepositint押金5rstatechar(10)房状态 表2-5 证件类型表(paper_type)编号字段名字段类型备注说明字段约束1ptype_idchar(10)证件类型号主键2ptype_namechar(10)证件类型名 表2-6 房类型表(room_type)编号字段名字段类型备注说明字段约束1rtype_idchar(10)房类型号主键2rtype_namechar(10)房类型名3rareanumeric(5,2)房间平米 表2-7 开房表(book_room)编号字段名字段类型备注说明字段约束1order_idchar(10)订单编号主键2room_idchar(10)房号2.3 在数据库中创建表的语句创建房类型表: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_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(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,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 酒店客房管理系统功能设计(存储过程与触发器)3.1 前台操作功能设计3.1.1 开房登记操作 -输入房号查询房状态create procedure pro_rstate room_id char(10) asselect 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 roomset 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 姓名,sex 性别,phone 联系电话from customer-运行exec pro_insert_cust01,李昂,m输入订单信息(订单编号,客人证件号,入住日期,预计离开日期)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 预计入住日期,enter_date 入住日期,plan_leave_date 预计离开日期,leave_date 结账离开日期,order_money 应付金额 from order_log-运行exec pro_insert_order 0000012013-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 000001,1013.1.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 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_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 0000013.1.3 房信息查看 -输入房号查询房信息create procedure pro_room_info room_id char(10) asselect room_id 房号,rtype_id 房类型号,rprice 价格,rdeposit 押金,rstate 房状态 from roomwhere room_id=room_id-运行exec pro_room_info 1013.2 预订管理功能设计3.2.1 预定房间 -输入房号查询房状态create procedure pro_rstate 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) asupdate 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_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 姓名,sex 性别,phone 联系电话from customer-运行exec pro_insert_cust01,王小贱,m,12345678900-输入订单信息(订单编号,客人证件号,预计入住日期)进行预订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 入住日期, plan_leave_date 预计离开日期,leave_date 结账离开日期,order_money 应付金额 from order_logwhere order_id=order_id;-运行exec pro_subscribe 0000022013-6-29-输入订房信息(订单号,房号)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 000002,2013.2.2 预定入住 -输入订单编号,查询此订单的信息(看是否为已预订)create procedure pro_subscribe_to_enter order_id char(10) asif 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_live room_id char(10) asupdate roomset 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_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_date 预计离开日期,leave_date 结账离开日期,order_money 应付金额 from order_logwhere order_id=order_id-运行exec pro_subscribe_to_live 000002,2013-7-12,2013-7-1,300 3.2.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_subscribe 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_id from book_room where 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 getCurdeallocate getCur-运行exec pro_cancel_subscribe 0000023.3 信息查询功能设计 -查询在住客人列表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 getCur-运行exec pro_select_cust -查询预订客人信息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_subscribe -查询历史客人信息create procedure pro_select_past asdeclare cust_id char(20)declare g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论