《酒店客房管理系统数据库课设报告.docx》由会员分享,可在线阅读,更多相关《酒店客房管理系统数据库课设报告.docx(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北华航天工业学院课程设计报告北 华 航 天 工 业 学 院课程设计报告(论文)课程名称: 数据库系统原理 报告(论文)题目: 酒店客房管理系统 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技术专业 作者所在班级: B09512 作 者 姓 名 : 丁小玲 指导教师姓名: 贾 振 华 完 成 时 间 : 2011.6.25 北华航天工业学院教务处制课程设计任务书课题名称数据库原理课程设计完成时间2011.6.25指导教师贾振华职称副教授学生姓名丁小玲班级B09512总体设计要求总体设计要求: 1、明确课设任务,复习与查阅相关资料。2、根据老师给出的设计题目,在两周时间内完成其
2、中某一个题目的从用户需求分析、数据库设计到上机编程、调试和应用等全过程的数据库系统设计。如果学生自拟题目,需经指导教师同意。 3、每位学生必须独立完成课程设计任务,不能抄袭,设计完成后,将所完成的工作交由老师检查;要求写出一份详细的设计报告。4、按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。5、应用程序应具有一定的实用性和健壮性。 工作内容及时间进度安排第一周、周:设计动员,分组,布置课程设计任务。第一周、周2:查阅资料,制定方案,进行程序总体设计。第一周、周3第二周2:详细设计, 系统调试。第二周、周3:整理,撰写设计报告。第二周、周4-周5:验收,提交设计报告,评定成绩。课
3、程设计成果1、课程设计报告书一份2、源程序清单一份3、成果使用说明书一份摘 要在当今经济和商务交往日益频繁的情况下,宾馆服务行业正面临客流量剧增的压力。越来越多的宾馆饭店都认识到传统的管理方法已经不能适应当今社会的需要,必须借助先进的计算机信息技术对宾馆服务进行管理。“酒店客房管理系统”可是说是整个酒店不可缺少酒店信息系统中的中心子系统,因为酒店在提供给客户各种服务的同时,解决客户的住宿也是相当重要的。设计客房管理系统可以涉及到 SQL Server 数据库的重要的知识、功能和特性,比如:视图、触发器和存储过程等。由此,通过这个课程设计可以加深对数据库知识的学习和理解,同时对编程工具 SQL
4、Server 2008 更加灵活运用,积累在实际工程应用中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具数据库管理系统的基本方法。在实用性方面,客房管理系统是很普遍的一种应用,选择该系统作为课程设计也可以为学生以后可能遇到的实际开发提供借鉴。关键词:管理系统 客房管理 数据库目 录第1章 绪论11.1 课程设计的目的11.2 课程设计的背景和意义11.2.1 课程设计的背景11.2.2 课程设计的意义11.3 课程设计环境1第2章 系统需求分析22.1 问题的提出22.2 可行性分析2 2.2.1 经济可行性分析2 2.2.2技术可行性分析32.3 系统的设计目标3第3章 系统开发的
5、技术背景43.1 开发技术43.2 系统运行环境4第4章 系统分析与总体设计54.1 系统结构框架54.2 系统功能设计5第5章 系统数据库设计75.1酒店客房管理系统数据库E-R模型75.2数据库表设计8 5.2.1用户信息表8 5.2.2客户信息表8 5.2.3客房类型表8 5.2.4客房信息表95.2.5客房状态表9 5.2.6客房业务表95.2.7业务记录表105.3 创建数据库10第6章 系统功能模块实现176.1系统登录模块176.2酒店管理员模块176.3 用户信息管理模块186.4客房类型管理模块186.5添加客房信息模块196.6删除客房信息模块206.7客房信息修改和查询模
6、块206.8客房信息管理模块216.9经营状况统计模块216.10个人信息修改模块226.11密码修改模块22结论24致谢25参考文献26附录27北华航天工业学院课程设计报告第1章 绪论1.1 课程设计的目的通过本次课程设计,使学生能够全面、深刻地掌握数据库系统的设计流程。根据在数据库原理课程中所学到的数据库理论知识,结合自己的题目进行分析需要什么,然后开发出一个较为实用的数据库系统。1.2 课程设计的背景和意义1.2.1课程设计的背景近几年,我国的旅游行业飞速发展,当然游客的住宿问题成了人们比较关心的问题,旧的管理体制已经无法适应现在的发展,这就迫切的需要引进新的客房管理技术。客房的数据和业
7、务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把客房的管理与计算机结合起来,从而客房管理系统应运而生。这样节省了大量的人力、物力,改善了员工的并且能够快速反映出客房内部信息和状态变化,使管理人员快速对客房做出相应的决策,加快客房经营管理效率。1.2.2 课程设计的意义这次课程设计让我们有机会利用所学知识解决实际问题。酒店客房管理系统是利用计算机技术对客房的一种高速准确地管理,它让整个酒店快速运转,使客户得到了更多的方便,促进了相关领域的发展。1.3 课程设计环境操作系统:Win7数据库:Microsoft SQL Server 2008第2章 系统需求分析随着时代的发展,计算机技术
8、越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门)的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。2.1 问题的提出在旅游业迅速发展的今天,客房管理的信息化管理已成为必不可缺的一部分,但是目前大多客房管理系统应用难度较高,许多工作需要技术人员配合才能完成,角色分工不明确;改版工作量大,系统扩展能力差,应用时更是降低了灵
9、活性,这就使得一套完善的、能够正常工作的客房管理系统应运而生。2.2 可行性分析系统的可行性分析是对课题的通盘考虑,是系统开发者进行进一步工作的前提,是系统设计与开发的前提与基础。系统的可行性分析可以使系统开发者尽可能早的估计到课题开发过程中的困难,并在定义阶段认识到系统方案的缺陷,这样就能花费较少的时间和精力,也可以避免许多专业方面的困难。所以,系统的可行性分析在整个开发过程中是非常重要的。2.2.1 经济可行性分析通过利用计算机对客房以及客户信息进行合理化管理,使客房可以有效被客户使用,同时对酒店来说又提高了无限的商机,减少不必要的开支,同时该系统可以提高客房运行效率,即提高了酒店的经济效
10、益,所以从经济上完全是可行的。2.2.2 技术可行性分析本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个客房管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。由此,该系统的操作是可行的,有必要开发该系统。综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是操作上。因此,酒店客房管理系统在技术上可行。2.3 系统的设计目标本系统主要包括六大模块,分别是用户信息管理模块,客房类型管理模块,客房信息管理模块,客户信息管理模块,经营状况管理模块,个人信息管理模块。为了确保客户和酒店的
11、信息具有更好的安全性,前台管理和后台管理是分开的,前台可模块需要经过授权才可以使用,我们为此设计了两个角色:一是酒店管理员,二是前台服务员。其中酒店管理员具有最高的权限,他可以使用酒店客房管理系统所提供的所有功能,包括用户信息管理,客房类型管理,客房信息管理,客户信息管理,经营状况管理,个人信息管理的功能。前台服务员主要是负责订房和退房,以及登记入住酒店的客户信息和时间,包括对客户信息的查询和修改,以及个人信息管理的功能。第3章 系统开发的技术背景3.1 开发技术通过权衡对各种编程语言和数据库使用的熟练程度,本系统选用前台用表格画出来了,后台数据库采用SQL Server 2008,整体设计以
12、软件工程思想为指导思想,力求开发一个实用性强、操作简单且功能完整的酒店客房管理系统。3.2 系统运行环境操作系统:Win7 数据库:Microsoft SQL Server 2008第4章 系统分析与总体设计4.1 系统结构框架此酒店客房管理系统,主要由六大模块组成,即用户信息管理模块,客房类型管理模块,客房信息管理模块,客户信息管理模块,经营状况管理模块,个人信息管理模块。图4-1系统功能结构图。酒店客房管理系统用 户 信 息 管 理客 房 类 型 管 理客 房 信 息 管 理客 户 信 息 管 理经 营 状 况 统 计个 人 信 息 管 理图4-1 系统功能结构图4.2 系统功能设计系统功
13、能设计是使整个系统能基本实现客房添加,删除,查询,以及客户退订房等管理功能,能让客户更直观的了解酒店客房的情况,来选择适合自己居住的房间。酒店客房管理系统就是要对业务上的数据建立数据库系统,并进行信息的收集、存储、管理等,同时对这些信息进行维护,通过酒店客房各种运行情况,并利用过去的历史数据预测未来的发展,从酒店客房全局的角度出发进行决策,利用信息控制客房的行为,使其运行的更好。本系统主要包括六大模块,分别是用户信息管理模块,客房类型管理模块,客房信息管理模块,客户信息管理模块,经营状况管理模块,个人信息管理模块。每个模块的功能如下:1. 用户信息管理模块:(1)实现用户信息的查询;(2)实现
14、用户信息的更新,包括增加、删除、修改功能。2. 客房类型管理模块功能:(1)实现客房类型的查询;(2)实现客房类型的更新,包括增加、删除、修改功能。3. 客房信息管理模块功能:(1)实现添加客房;(2)实现删除客房;(3)实现了对客房信息的查询以及修改。4. 客户信息管理模块功能:(1)实现客户信息的查询以及修改;(2)实现客户订房和退房的功能。5. 经营状况管理模块:(1)实现对客房经营状况按年统计的功能;(2) 实现对客房经营状况按月统计的功能;(3) 实现对客房经营状况按日统计的功能。 6. 个人信息管理模块:(1)对自己信息的查询以及修改功能;(2)对自己的密码进行修改。第5章 系统数
15、据库设计1 M1 1 M 1 5.1酒店客房管理系统数据库E-R模型管理员客户房间管理员编号密码管理员信息权限管理管理住宿客房类型编号客房面积配置床位客房价格配置空调客户姓名配置电视客房状态入住时间退房时间金额客户编号身份证号联系电话入住房号过对酒店客房管理系统分析,得出系统的E-R图。图5-1数据库E-R模型图。图5-1 数据库E-R模型图5.2数据库表设计5.2.1 用户信息表用户信息表(UserInfo)用于存储对这个应用程序使用的用户信息,用户编号为主键是唯一标识。表中各字段功能定义如表5-1所示。表5-1用户信息表(UserInfo)中文字段名称英文字段名称字段类型主键/外键字段值约
16、束用户编号UerIdVarchar(20)PNOT NULL用户姓名NameVarchar(20) 密码UpasswordVarchar(20) NOT NULL性别SexVarchar(2) Email地址EmailVarchar(20) 通讯地址UAddressVarchar(20) 联系电话TelephoneVarchar(20) 所在部门DepartmentVarchar(20) 用户类型UTypeint NOT NULL5.2.2 客户信息表客户信息表(CustomersInfo)用于存储入住酒店客房客户的基本信息。表中各字段功能定义如表5-2所示。 表5-2客户信息表(Custom
17、ersInfo)中文字段名称英文字段名称字段类型主键/外键字段值约束身份证号CIdentityIdVarchar(30)PNOT NULL客户姓名CnameVarchar(20) 联系电话CphoneVarchar(20) 5.2.3 客房类型表客房类型表(RoomCategory)用于存储酒店客房类型的信息。表中各字段功能定义如表5-3所示。表5-3客房类型表(RoomCategory)中文字段名称英文字段名称字段类型主键/外键字段值约束客房类型编号RCategoryIdVarchar(20)PNOT NULL 类型名称 NameVarchar(10) 客房面积Area real 配置床位B
18、edNumInt 客房价格PriceNumeric(7,2) 配置空调 AirConditionVarchar(10) 配置电视TVVarchar(10) 5.2.4 客房信息表客房信息表(RoomsInfo)用于存储客房的信息。表中各字段功能定义如表5-4所示。表5-4客房信息表(RoomsInfo)中文字段名称英文字段名称字段类型主键/外键字段值约束 客房号RoomId Varchar(20)PNOT NULL客房类型编号RCategoryIdVarchar(20)NOT NULL客房位置 RPostitionVarchar(50)描述 EescriptionVarchar(50)5.2.
19、5 客房状态表客房状态表(RoomStatus)存储客房状态的信息。表中各字段功能定义如表5-5所示。表5-5客房状态表(RoomStatus)中文字段名称英文字段名称字段类型主键/外键字段值约束客房号RoomIdVarchar(20)P/FNOT NULL状态RStatusInt 5.2.6客房业务表客房业务表(RoomService)用于存储先居住的简要信息。表中各字段功能定义如表5-6所示。表5-6客房业务表(RoomService)中文字段名称英文字段名称字段类型主键/外键字段值约束客房号RoomIdVarchar(20)PNOT NULL身份证号CIdentityIdVarchar(
20、30)NOT NULL5.2.7业务记录表业务记录表(History)存储库存信息。表中各字段定义如表5-7所示。表5-7业务记录表(History)中文字段名称英文字段名称字段类型主键/外键字段值约束 入住时间BegintimedatePNOT NULL 退房时间 Endtimedate 房间号RoomIdVarchar(20)PNOT NULL 金额TotalPrice Numeric(10,2) 身份证号 CIdentityIdVarchar(30)PNOT NULL 客户姓名 CnameVarchar(20) 客户电话CphoneVarchar(20)5.3 创建数据库33(1)使用T
21、SQL语句创建超市商品管理系统数据库。CREATE DATABASE 酒店客房管理系统ON(NAME = 酒店客房管理系统,FILENAME = 'd:10丁小玲酒店客房管理系统.mdf',SIZE = 10MB,MAXSIZE = 100MB,FILEGROWTH = 10%)LOG ON (NAME = 酒店客房管理系统_LOG,FILENAME = 'd:10丁小玲酒店客房管理系统.ldf',SIZE = 5MB,MAXSIZE = 50MB,FILEGROWTH = 1%);(2)使用TSQL语句创建库存表。-1创建用户信息表USE 酒店客房管理系统CR
22、EATE TABLE UsersInfo( UseId varchar(20) PRIMARY KEY,Name varchar(20),UPassword varchar(20),Sex varchar(2),Email varchar(20),UAddress varchar(20),Telephone varchar(20),Department varchar(20),UType int -1代表酒店管理员,代表前台服务员);-2创建客户信息表USE 酒店客房管理系统CREATE TABLE CustomersInfo(CIdentityId varchar(30) PRIMARY K
23、EY,Cname varchar(20),Cphone varchar(20);-3创建客房类型表USE 酒店客房管理系统CREATE TABLE RoomCategory(RCategoryId varchar(20) PRIMARY KEY,Name varchar(10),Area real,BedNum int,Price numeric(7,2),AirCondition varchar(10),TV varchar(10);-4创建客房信息表USE 酒店客房管理系统CREATE TABLE RoomsInfo(RoomId varchar(20)PRIMARY KEY,RCateg
24、oryId varchar(20)NOT NULL,RPostition varchar(50),Eescription varchar(50);-5创建客房状态表USE 酒店客房管理系统CREATE TABLE RoomStatus(RoomId varchar(20) PRIMARY KEY,RStatus int, -1有人,空房FOREIGN KEY (RoomId) REFERENCES RoomsInfo(RoomId);-6创建客房业务表,用于查询现在在酒店居住的客户USE 酒店客房管理系统CREATE TABLE RoomService(RoomId varchar(20) P
25、RIMARY KEY,CIdentityId varchar(30) NOT NULL);-7创建业务记录表USE 酒店客房管理系统CREATE TABLE History(BeginTime date,EndTime date,RoomId varchar(20),TotalPrice numeric(10,2),CIdentityId varchar(30),Cname varchar(20),Cphone varchar(20) PRIMARY KEY(BeginTime,RoomId,CIdentityId);(3)使用TSQL语句创建库存视图。CREATE VIEW 客房信息普通查询
26、_VIEWASSELECT RoomId 客房编号,RCategoryId 客房类型编号,RPostition 客房位置,Eescription 描述 FROM RoomsInfo;CREATE VIEW 客房信息高级查询_VIEWASSELECT RoomsInfo.RoomId 客房编号,RoomsInfo.RCategoryId 客房类型编号,RPostition 客房位置,Eescription 描述,Name 类型名称,Area 客房面积,BedNum 配置床位,Price 客房价格,AirCondition 配置空调,TV 配置电视,RStatus 客房状态FROM RoomsIn
27、fo,RoomCategory,RoomStatus WHERE RoomsInfo.RCategoryId = RoomCategory.RCategoryId AND RoomsInfo.RoomId = RoomStatus.RoomId ;CREATE VIEW 客户信息查询_VIEWASSELECT CIdentityId 身份证号,Cname 客户姓名,CPhone 联系电话 FROM CustomersInfo ;CREATE VIEW 用户信息系统查询_VIEWASSELECT UseId 用户编号,Name 用户姓名,UPassword 用户密码,Sex 用户性别,Email
28、 Email地址,UAddress 通讯地址,Telephone 联系电话,Department 所在部门,UType 用户类型FROM UsersInfo ;CREATE VIEW 客房类型查询_VIEWASSELECT RCategoryId 客房类型编号,Name 类型名称,Area 客房面积,BedNum 配置床位,Price 客房价格,AirCondition 配置空调,TV 配置电视FROM RoomCategory ;(4)使用TSQL语句创建库存索引。CREATE INDEX 用户信息表 ON UsersInfo(UseId);CREATE INDEX 客户信息表 ON Cus
29、tomerInfo(CIdentityId);CREATE INDEX 客户类型表 ON RoomCategory(RCategoryId);CREATE INDEX 客房信息表 ON RoomsInfo(RoomId);CREATE INDEX 客房状态表 ON RoomStatus(RoomId);CREATE INDEX 客房业务表 ON RoomService(RoomId);CREATE INDEX 业务记录表 ON History(RoomId,CIdentityId);(5)使用TSQL语句创建库存存储过程。-1用户登录USE 酒店客房管理系统 GO IF EXISTS(SELE
30、CT * FROM SYSOBJECTSWHERE name = '用户登录')DROP PROCEDURE 用户登录GOCREATE PROCEDURE 用户登录useid varchar(20),password varchar(20)ASBEGIN DECLARE returnvalue intSET returnvalue = 1IF EXISTS(SELECT UseId,UPassword FROM UsersInfoWHERE UseId = useid AND UPassword = password)BEGINSET returnvalue = 0PRINT
31、'用户登陆成功_'ENDELSE PRINT '此用户不存在,请您重新输入!'ENDGO-2添加客房USE 酒店客房管理系统 GO IF EXISTS(SELECT * FROM SYSOBJECTSWHERE name = '添加客房')DROP PROCEDURE 添加客房GOCREATE PROCEDURE 添加客房roomid varchar(20),rcategoryid varchar(20),rposition varchar(50),description varchar(50)AS BEGINDECLARE returnvalu
32、e intSET returnvalue = 1IF EXISTS(SELECT RoomId FROM RoomsInfo WHERE RoomId = roomid)PRINT '此房间已存在,请您重新添加!'ELSE BEGINIF EXISTS(SELECT RCategoryId FROM RoomCategory WHERE RCategoryId = rcategoryid)BEGININSERT INTO RoomsInfo VALUES(roomid,rcategoryid,rposition,description)INSERT INTO RoomStatu
33、s VALUES(roomid,0)SET returnvalue = 0PRINT '客房添加成功_'END ELSE PRINT '客房类型不存在,请您重新添加!'ENDENDGO-3客户订房USE 酒店客房管理系统 GO IF EXISTS(SELECT * FROM SYSOBJECTSWHERE name = '客户订房')DROP PROCEDURE 客户订房GOCREATE PROCEDURE 客户订房begintime date,roomid varchar(20),cidentityid varchar(30),cname va
34、rchar(20),cphone varchar(20)ASBEGINDECLARE rstatus int SELECT rstatus = RStatus FROM RoomStatus WHERE RoomId = roomidIF(rstatus = 1)PRINT '此客房正在使用,请您选择别的客房!'ELSEBEGINUPDATE RoomStatus SET RStatus = 1 WHERE RoomId = roomidIF EXISTS(SELECT Cidentityid FROM CustomersInfo WHERE Cidentityid = cid
35、entityid)BEGINUPDATE CustomersInfo SET Cname = cname,Cphone = cphoneWHERE Cidentityid = cidentityidUPDATE History SET Cname = cname,Cphone = cphoneWHERE Cidentityid = cidentityidINSERT INTO RoomService VALUES(roomid,cidentityid)INSERT INTO History VALUES(begintime,null,roomid,0,cidentityid,cname,cph
36、one)PRINT '订房成功_'ENDELSE BEGININSERT INTO CustomersInfo VALUES(cidentityid,cname,cphone)INSERT INTO RoomService VALUES(roomid,cidentityid)INSERT INTO History VALUES(begintime,null,roomid,0,cidentityid,cname,cphone)PRINT '订房成功_'ENDENDENDGO-4客户退房USE 酒店客房管理系统GOIF EXISTS(SELECT * FROM SY
37、SOBJECTSWHERE name = '客户退房')DROP PROCEDURE 客户退房GOCREATE PROCEDURE 客户退房roomid varchar(20),cidentityid varchar(20),endtime dateASBEGIN DECLARE price numeric(10,2),totalprice numeric(10,2),begintime dateSELECT price = RoomCategory .Price FROM RoomCategory,RoomsInfo WHERE RoomCategory.RCategoryI
38、d = RoomsInfo.RCategoryId AND RoomsInfo.RoomId = roomidSELECT begintime = History.BeginTime FROM History WHERE History.RoomId = roomid AND History.CIdentityId = cidentityidSET totalprice = price * DATEDIFF (DAY,begintime,endtime)IF(totalprice = 0) SET totalprice = priceUPDATE History SET EndTime = e
39、ndtime,TotalPrice = totalpriceWHERE RoomId = roomid AND CIdentityId = cidentityid AND BeginTime = begintimeDELETE FROM RoomService WHERE RoomId = roomidUPDATE RoomStatus SET RStatus = 0WHERE RoomId = roomidPRINT '退房成功_'ENDGO-5客户信息修改USE 酒店客房管理系统GOIF EXISTS(SELECT * FROM SYSOBJECTSWHERE name =
40、 '客户信息修改')DROP PROCEDURE 客户信息修改GOCREATE PROCEDURE 客户信息修改cidentityid varchar(30),cname varchar(20),cphone varchar(20)ASBEGINUPDATE CustomersInfo SET Cname = cname,Cphone = cphoneWHERE CIdentityId = cidentityidUPDATE History SET Cname = cname,Cphone = cphoneWHERE CIdentityId = cidentityidPRINT
41、 '客户信息修改成功_'ENDGO -6密码修改USE 酒店客房管理系统GOIF EXISTS(SELECT * FROM SYSOBJECTSWHERE name = '密码修改')DROP PROCEDURE 密码修改GOCREATE PROCEDURE 密码修改userid varchar(20),password varchar(20),npassword varchar(20)AS BEGINIF EXISTS(SELECT UseId,UPassword FROM UsersInfo WHERE UseId = userid AND UPasswor
42、d = password)UPDATE UsersInfo SET UPassword = npassword WHERE UseId = useridELSE PRINT '这个用户不存在,请您重新输入!'ENDGO-7客房删除USE 酒店客房管理系统GOIF EXISTS(SELECT * FROM SYSOBJECTSWHERE name = '客房删除')DROP PROCEDURE 客房删除GOCREATE PROCEDURE 客房删除roomid varchar(20)ASBEGINDECLARE rstatus intIF EXISTS(SELECT * FROM RoomsInfo WHERE RoomId = roomid)BEGINSELECT rstatus = Rstatus FROM RoomStatus WHERE RoomId = roomidIF(rstatus = 1)PRINT '此客房正在被使用,现在无