同行范文网
当前位置 首页 >范文大全 > 公文范文 >

酒店客房管理系统数据库课设报告

发布时间:2022-04-23 14:15:05 来源:网友投稿

北 华 航 天 工 业 学 院 课程设计报告(论文) 课程名称:
数据库系统原理 报告(论文)题目:
酒店客房管理系统 作者所在系部:
计算机科学与工程系 作者所在专业:
计算机科学与技术专业 作者所在班级:
B09512 作 者 姓 名 :
丁小玲 指导教师姓名:
贾 振 华 完 成 时 间 :
2011.6.25 北华航天工业学院教务处制 课程设计任务书 课题名称 《数据库原理》课程设计 完成时间 2011.6.25 指导教师 贾振华 职称 副教授 学生姓名 丁小玲 班级 B09512 总体设计要求 总体设计要求:
1、明确课设任务,复习与查阅相关资料。

2、根据老师给出的设计题目,在两周时间内完成其中某一个题目的从用户需求分析、数据库设计到上机编程、调试和应用等全过程的数据库系统设计。如果学生自拟题目,需经指导教师同意。

3、每位学生必须独立完成课程设计任务,不能抄袭,设计完成后,将所完成的工作交由老师检查;
要求写出一份详细的设计报告。

4、按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。

5、应用程序应具有一定的实用性和健壮性。

工作内容及时间进度安排 第一周、周1:设计动员,分组,布置课程设计任务。

第一周、周2:查阅资料,制定方案,进行程序总体设计。

第一周、周3~第二周2:详细设计, 系统调试。

第二周、周3:整理,撰写设计报告。

第二周、周4-周5:验收,提交设计报告,评定成绩。

课程设计成果 1、课程设计报告书一份 2、源程序清单一份 3、成果使用说明书一份 摘 要 在当今经济和商务交往日益频繁的情况下,宾馆服务行业正面临客流量剧增的压力。越来越多的宾馆饭店都认识到传统的管理方法已经不能适应当今社会的需要,必须借助先进的计算机信息技术对宾馆服务进行管理。“酒店客房管理系统”可是说是整个酒店不可缺少酒店信息系统中的中心子系统,因为酒店在提供给客户各种服务的同时,解决客户的住宿也是相当重要的。设计客房管理系统可以涉及到 SQL Server 数据库的重要的知识、功能和特性,比如:视图、触发器和存储过程等。由此,通过这个课程设计可以加深对数据库知识的学习和理解,同时对编程工具 SQL Server 2008 更加灵活运用,积累在实际工程应用中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具数据库管理系统的基本方法。在实用性方面,客房管理系统是很普遍的一种应用,选择该系统作为课程设计也可以为学生以后可能遇到的实际开发提供借鉴。

关键词:管理系统 客房管理 数据库 目 录 第1章 绪论 1 1.1 课程设计的目的 1 1.2 课程设计的背景和意义 1 1.2.1 课程设计的背景 1 1.2.2 课程设计的意义 1 1.3 课程设计环境 1 第2章 系统需求分析 2 2.1 问题的提出 2 2.2 可行性分析 2 2.2.1 经济可行性分析 2 2.2.2技术可行性分析 3 2.3 系统的设计目标 3 第3章 系统开发的技术背景 4 3.1 开发技术 4 3.2 系统运行环境 4 第4章 系统分析与总体设计 5 4.1 系统结构框架 5 4.2 系统功能设计 5 第5章 系统数据库设计 7 5.1酒店客房管理系统数据库E-R模型 7 5.2数据库表设计 8 5.2.1用户信息表 8 5.2.2客户信息表 8 5.2.3客房类型表 8 5.2.4客房信息表 9 5.2.5客房状态表 9 5.2.6客房业务表 9 5.2.7业务记录表 10 5.3 创建数据库 10 第6章 系统功能模块实现 17 6.1系统登录模块 17 6.2酒店管理员模块 17 6.3 用户信息管理模块 18 6.4客房类型管理模块 18 6.5添加客房信息模块 19 6.6删除客房信息模块 20 6.7客房信息修改和查询模块 20 6.8客房信息管理模块 21 6.9经营状况统计模块 21 6.10个人信息修改模块 22 6.11密码修改模块 22 结论 24 致谢 25 参考文献 26 附录 27 第1章 绪论 1.1 课程设计的目的 通过本次课程设计,使学生能够全面、深刻地掌握数据库系统的设计流程。根据在数据库原理课程中所学到的数据库理论知识,结合自己的题目进行分析需要什么,然后开发出一个较为实用的数据库系统。

1.2 课程设计的背景和意义 1.2.1课程设计的背景 近几年,我国的旅游行业飞速发展,当然游客的住宿问题成了人们比较关心的问题,旧的管理体制已经无法适应现在的发展,这就迫切的需要引进新的客房管理技术。

客房的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把客房的管理与计算机结合起来,从而客房管理系统应运而生。这样节省了大量的人力、物力,改善了员工的并且能够快速反映出客房内部信息和状态变化,使管理人员快速对客房做出相应的决策,加快客房经营管理效率。

1.2.2 课程设计的意义 这次课程设计让我们有机会利用所学知识解决实际问题。酒店客房管理系统是利用计算机技术对客房的一种高速准确地管理,它让整个酒店快速运转,使客户得到了更多的方便,促进了相关领域的发展。

1.3 课程设计环境 操作系统:Win7 数据库:Microsoft SQL Server 2008 第2章 系统需求分析 随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门)的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。

2.1 问题的提出 在旅游业迅速发展的今天,客房管理的信息化管理已成为必不可缺的一部分,但是目前大多客房管理系统应用难度较高,许多工作需要技术人员配合才能完成,角色分工不明确;
改版工作量大,系统扩展能力差,应用时更是降低了灵活性,这就使得一套完善的、能够正常工作的客房管理系统应运而生。

2.2 可行性分析 系统的可行性分析是对课题的通盘考虑,是系统开发者进行进一步工作的前提,是系统设计与开发的前提与基础。系统的可行性分析可以使系统开发者尽可能早的估计到课题开发过程中的困难,并在定义阶段认识到系统方案的缺陷,这样就能花费较少的时间和精力,也可以避免许多专业方面的困难。所以,系统的可行性分析在整个开发过程中是非常重要的。

2.2.1 经济可行性分析 通过利用计算机对客房以及客户信息进行合理化管理,使客房可以有效被客户使用,同时对酒店来说又提高了无限的商机,减少不必要的开支,同时该系统可以提高客房运行效率,即提高了酒店的经济效益,所以从经济上完全是可行的。

2.2.2 技术可行性分析 本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个客房管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。

由此,该系统的操作是可行的,有必要开发该系统。

综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是操作上。因此,酒店客房管理系统在技术上可行。

2.3 系统的设计目标 本系统主要包括六大模块,分别是用户信息管理模块,客房类型管理模块,客房信息管理模块,客户信息管理模块,经营状况管理模块,个人信息管理模块。为了确保客户和酒店的信息具有更好的安全性,前台管理和后台管理是分开的,前台可模块需要经过授权才可以使用,我们为此设计了两个角色:一是酒店管理员,二是前台服务员。其中酒店管理员具有最高的权限,他可以使用酒店客房管理系统所提供的所有功能,包括用户信息管理,客房类型管理,客房信息管理,客户信息管理,经营状况管理,个人信息管理的功能。前台服务员主要是负责订房和退房,以及登记入住酒店的客户信息和时间,包括对客户信息的查询和修改,以及个人信息管理的功能。

第3章 系统开发的技术背景 3.1 开发技术 通过权衡对各种编程语言和数据库使用的熟练程度,本系统选用前台用表格画出来了,后台数据库采用SQL Server 2008,整体设计以软件工程思想为指导思想,力求开发一个实用性强、操作简单且功能完整的酒店客房管理系统。

3.2 系统运行环境 操作系统:Win7 数据库:Microsoft SQL Server 2008 第4章 系统分析与总体设计 4.1 系统结构框架 此酒店客房管理系统,主要由六大模块组成,即用户信息管理模块,客房类型管理模块,客房信息管理模块,客户信息管理模块,经营状况管理模块,个人信息管理模块。图4-1系统功能结构图。

酒店客房管理系统 用 户 信 息 管 理 客 房 类 型 管 理 客 房 信 息 管 理 客 户 信 息 管 理 经 营 状 况 统 计 个 人 信 息 管 理 图4-1 系统功能结构图 4.2 系统功能设计 系统功能设计是使整个系统能基本实现客房添加,删除,查询,以及客户退订房等管理功能,能让客户更直观的了解酒店客房的情况,来选择适合自己居住的房间。酒店客房管理系统就是要对业务上的数据建立数据库系统,并进行信息的收集、存储、管理等,同时对这些信息进行维护,通过酒店客房各种运行情况,并利用过去的历史数据预测未来的发展,从酒店客房全局的角度出发进行决策,利用信息控制客房的行为,使其运行的更好。

本系统主要包括六大模块,分别是用户信息管理模块,客房类型管理模块,客房信息管理模块,客户信息管理模块,经营状况管理模块,个人信息管理模块。每个模块的功能如下:
1. 用户信息管理模块:
(1)实现用户信息的查询;

(2)实现用户信息的更新,包括增加、删除、修改功能。

2. 客房类型管理模块功能:
(1)实现客房类型的查询;

(2)实现客房类型的更新,包括增加、删除、修改功能。

3. 客房信息管理模块功能:
(1)实现添加客房;

(2)实现删除客房;

(3)实现了对客房信息的查询以及修改。

4. 客户信息管理模块功能:
(1)实现客户信息的查询以及修改;

(2)实现客户订房和退房的功能。

5. 经营状况管理模块:
(1)实现对客房经营状况按年统计的功能;

(2) 实现对客房经营状况按月统计的功能;

(3) 实现对客房经营状况按日统计的功能。

6. 个人信息管理模块:
(1)对自己信息的查询以及修改功能;

(2)对自己的密码进行修改。

第5章 系统数据库设计 1 M 1 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) 中文字段名称 英文字段名称 字段类型 主键/外键 字段值约束 用户编号 UerId Varchar(20) P NOT NULL 用户姓名 Name Varchar(20) 密码 Upassword Varchar(20) NOT NULL 性别 Sex Varchar(2) Email地址 Email Varchar(20) 通讯地址 UAddress Varchar(20) 联系电话 Telephone Varchar(20) 所在部门 Department Varchar(20) 用户类型 UType int NOT NULL 5.2.2 客户信息表 客户信息表(CustomersInfo)用于存储入住酒店客房客户的基本信息。表中各字段功能定义如表5-2所示。

表5-2客户信息表(CustomersInfo)
中文字段名称 英文字段名称 字段类型 主键/外键 字段值约束 身份证号 CIdentityId Varchar(30) P NOT NULL 客户姓名 Cname Varchar(20) 联系电话 Cphone Varchar(20) 5.2.3 客房类型表 客房类型表(RoomCategory)用于存储酒店客房类型的信息。表中各字段功能定义如表5-3所示。

表5-3客房类型表(RoomCategory)
中文字段名称 英文字段名称 字段类型 主键/外键 字段值约束 客房类型编号 RCategoryId Varchar(20) P NOT NULL 类型名称 Name Varchar(10) 客房面积 Area real 配置床位 BedNum Int 客房价格 Price Numeric(7,2) 配置空调 AirCondition Varchar(10) 配置电视 TV Varchar(10) 5.2.4 客房信息表 客房信息表(RoomsInfo)用于存储客房的信息。表中各字段功能定义如表5-4所示。

表5-4客房信息表(RoomsInfo)
中文字段名称 英文字段名称 字段类型 主键/外键 字段值约束 客房号 RoomId Varchar(20) P NOT NULL 客房类型编号 RCategoryId Varchar(20) NOT NULL 客房位置 RPostition Varchar(50) 描述 Eescription Varchar(50) 5.2.5 客房状态表 客房状态表(RoomStatus)存储客房状态的信息。表中各字段功能定义如表5-5所示。

表5-5客房状态表(RoomStatus)
中文字段名称 英文字段名称 字段类型 主键/外键 字段值约束 客房号 RoomId Varchar(20) P/F NOT NULL 状态 RStatus Int 5.2.6客房业务表 客房业务表(RoomService)用于存储先居住的简要信息。表中各字段功能定义如表5-6所示。

表5-6客房业务表(RoomService)
中文字段名称 英文字段名称 字段类型 主键/外键 字段值约束 客房号 RoomId Varchar(20) P NOT NULL 身份证号 CIdentityId Varchar(30) NOT NULL 5.2.7业务记录表 业务记录表(History)存储库存信息。表中各字段定义如表5-7所示。

表5-7业务记录表(History)
中文字段名称 英文字段名称 字段类型 主键/外键 字段值约束 入住时间 Begintime date P NOT NULL 退房时间 Endtime date 房间号 RoomId Varchar(20) P NOT NULL 金额 TotalPrice Numeric(10,2) 身份证号 CIdentityId Varchar(30) P NOT NULL 客户姓名 Cname Varchar(20) 客户电话 Cphone Varchar(20) 5.3 创建数据库 (1)使用T—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)使用T—SQL语句创建库存表。

--1创建用户信息表 USE 酒店客房管理系统 CREATE 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 KEY, 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, RCategoryId 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) PRIMARY 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)使用T—SQL语句创建库存视图。

CREATE VIEW 客房信息普通查询_VIEW AS SELECT RoomId 客房编号,RCategoryId 客房类型编号,RPostition 客房位置,Eescription 描述 FROM RoomsInfo; CREATE VIEW 客房信息高级查询_VIEW AS SELECT RoomsInfo.RoomId 客房编号,RoomsInfo.RCategoryId 客房类型编号,RPostition 客房位置, Eescription 描述,Name 类型名称,Area 客房面积,BedNum 配置床位,Price 客房价格, AirCondition 配置空调,TV 配置电视,RStatus 客房状态 FROM RoomsInfo,RoomCategory,RoomStatus WHERE RoomsInfo.RCategoryId = RoomCategory.RCategoryId AND RoomsInfo.RoomId = RoomStatus.RoomId ; CREATE VIEW 客户信息查询_VIEW AS SELECT CIdentityId 身份证号,Cname 客户姓名,CPhone 联系电话 FROM CustomersInfo ; CREATE VIEW 用户信息系统查询_VIEW AS SELECT UseId 用户编号,Name 用户姓名,UPassword 用户密码,Sex 用户性别,Email Email地址, UAddress 通讯地址,Telephone 联系电话,Department 所在部门,UType 用户类型 FROM UsersInfo ; CREATE VIEW 客房类型查询_VIEW AS SELECT RCategoryId 客房类型编号,Name 类型名称,Area 客房面积,BedNum 配置床位, Price 客房价格,AirCondition 配置空调,TV 配置电视 FROM RoomCategory ; (4)使用T—SQL语句创建库存索引。

CREATE INDEX 用户信息表 ON UsersInfo(UseId); CREATE INDEX 客户信息表 ON CustomerInfo(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)使用T—SQL语句创建库存存储过程。

--1用户登录 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '用户登录') DROP PROCEDURE 用户登录 GO CREATE PROCEDURE 用户登录 @useid varchar(20), @password varchar(20) AS BEGIN DECLARE @returnvalue int SET @returnvalue = 1 IF EXISTS(SELECT UseId,UPassword FROM UsersInfo WHERE UseId = @useid AND UPassword = @password) BEGIN SET @returnvalue = 0 PRINT '用户登陆成功^_^' END ELSE PRINT '此用户不存在,请您重新输入!' END GO --2添加客房 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '添加客房') DROP PROCEDURE 添加客房 GO CREATE PROCEDURE 添加客房 @roomid varchar(20), @rcategoryid varchar(20), @rposition varchar(50), @description varchar(50) AS BEGIN DECLARE @returnvalue int SET @returnvalue = 1 IF EXISTS(SELECT RoomId FROM RoomsInfo WHERE RoomId = @roomid) PRINT '此房间已存在,请您重新添加!' ELSE BEGIN IF EXISTS(SELECT RCategoryId FROM RoomCategory WHERE RCategoryId = @rcategoryid) BEGIN INSERT INTO RoomsInfo VALUES(@roomid,@rcategoryid,@rposition,@description) INSERT INTO RoomStatus VALUES(@roomid,0) SET @returnvalue = 0 PRINT '客房添加成功^_^' END ELSE PRINT '客房类型不存在,请您重新添加!' END END GO --3客户订房 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '客户订房') DROP PROCEDURE 客户订房 GO CREATE PROCEDURE 客户订房 @begintime date, @roomid varchar(20), @cidentityid varchar(30), @cname varchar(20), @cphone varchar(20) AS BEGIN DECLARE @rstatus int SELECT @rstatus = RStatus FROM RoomStatus WHERE RoomId = @roomid IF(@rstatus = 1) PRINT '此客房正在使用,请您选择别的客房!' ELSE BEGIN UPDATE RoomStatus SET RStatus = 1 WHERE RoomId = @roomid IF EXISTS(SELECT Cidentityid FROM CustomersInfo WHERE Cidentityid = @cidentityid) BEGIN UPDATE CustomersInfo SET Cname = @cname,Cphone = @cphone WHERE Cidentityid = @cidentityid UPDATE History SET Cname = @cname,Cphone = @cphone WHERE Cidentityid = @cidentityid INSERT INTO RoomService VALUES(@roomid,@cidentityid) INSERT INTO History VALUES(@begintime,null,@roomid,0,@cidentityid,@cname,@cphone) PRINT '订房成功^_^' END ELSE BEGIN INSERT INTO CustomersInfo VALUES(@cidentityid,@cname,@cphone) INSERT INTO RoomService VALUES(@roomid,@cidentityid) INSERT INTO History VALUES(@begintime,null,@roomid,0,@cidentityid,@cname,@cphone) PRINT '订房成功^_^' END END END GO --4客户退房 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '客户退房') DROP PROCEDURE 客户退房 GO CREATE PROCEDURE 客户退房 @roomid varchar(20), @cidentityid varchar(20), @endtime date AS BEGIN DECLARE @price numeric(10,2), @totalprice numeric(10,2), @begintime date SELECT @price = RoomCategory .Price FROM RoomCategory,RoomsInfo WHERE RoomCategory.RCategoryId = RoomsInfo.RCategoryId AND RoomsInfo.RoomId = @roomid SELECT @begintime = History.BeginTime FROM History WHERE History.RoomId = @roomid AND History.CIdentityId = @cidentityid SET @totalprice = @price * DATEDIFF (DAY,@begintime,@endtime) IF(@totalprice = 0) SET @totalprice = @price UPDATE History SET EndTime = @endtime,TotalPrice = @totalprice WHERE RoomId = @roomid AND CIdentityId = @cidentityid AND BeginTime = @begintime DELETE FROM RoomService WHERE RoomId = @roomid UPDATE RoomStatus SET RStatus = 0 WHERE RoomId = @roomid PRINT '退房成功^_^' END GO --5客户信息修改 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '客户信息修改') DROP PROCEDURE 客户信息修改 GO CREATE PROCEDURE 客户信息修改 @cidentityid varchar(30), @cname varchar(20), @cphone varchar(20) AS BEGIN UPDATE CustomersInfo SET Cname = @cname,Cphone = @cphone WHERE CIdentityId = @cidentityid UPDATE History SET Cname = @cname,Cphone = @cphone WHERE CIdentityId = @cidentityid PRINT '客户信息修改成功^_^' END GO --6密码修改 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '密码修改') DROP PROCEDURE 密码修改 GO CREATE PROCEDURE 密码修改 @userid varchar(20), @password varchar(20), @npassword varchar(20) AS BEGIN IF EXISTS(SELECT UseId,UPassword FROM UsersInfo WHERE UseId = @userid AND UPassword = @password) UPDATE UsersInfo SET UPassword = @npassword WHERE UseId = @userid ELSE PRINT '这个用户不存在,请您重新输入!' END GO --7客房删除 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '客房删除') DROP PROCEDURE 客房删除 GO CREATE PROCEDURE 客房删除 @roomid varchar(20) AS BEGIN DECLARE @rstatus int IF EXISTS(SELECT * FROM RoomsInfo WHERE RoomId = @roomid) BEGIN SELECT @rstatus = Rstatus FROM RoomStatus WHERE RoomId = @roomid IF(@rstatus = 1) PRINT '此客房正在被使用,现在无法删除!' ELSE BEGIN UPDATE History SET RoomId = 'D'+ @roomid WHERE RoomId = @roomid DELETE FROM RoomStatus WHERE RoomId = @roomid DELETE FROM RoomsInfo WHERE RoomId = @roomid PRINT '恭喜您客房删除成功^_^' END END ELSE PRINT '您删除的客房不存在!' END GO --8客房修改 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '客房修改') DROP PROCEDURE 客房修改 GO CREATE PROCEDURE 客房修改 @roomid varchar(20), @rcategoryid varchar(20), @rpostition varchar(50), @description varchar(50) AS BEGIN IF EXISTS(SELECT RCategoryId FROM RoomCategory WHERE RCategoryId = @rcategoryid) BEGIN UPDATE RoomsInfo SET RCategoryId = @rcategoryid,RPostition = @rpostition,Eescription = @description WHERE RoomId = @roomid PRINT '客房修改成功^_^' END ELSE PRINT '客房类型不存在,请您重新修改!' END GO (6)使用T—SQL语句创建库存触发器。

USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = 'TGI_业务信息添加') DROP TRIGGER TGI_业务信息添加 GO CREATE TRIGGER TGI_业务信息添加 ON RoomService FOR INSERT AS DECLARE @roomid varchar(20) SELECT @roomid = Roomid FROM INSERTED UPDATE RoomStatus SET Rstatus = 1 WHERE Roomid = @roomid GO USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = 'TGI_业务信息删除') DROP TRIGGER TGI_业务信息删除 GO CREATE TRIGGER TGI_业务信息删除 ON RoomService FOR DELETE AS DECLARE @roomid varchar(20) SELECT @roomid = Roomid FROM DELETED UPDATE RoomStatus SET Rstatus = 0 WHERE Roomid = @roomid GO 第6章 系统功能模块实现 6.1 系统登录模块 用户登录模块在本系统的首页。用户输入用户名和密码后,系统进行验证,验证通过进入程序的主界面。界面如图6-1所示。

图6-1 用户登录界面 用户登录的时候在用户名填写自己的用户编号,密码填写,选择自己对应的身份按钮,再按登录按钮即可登录,用的是“用户登录”这个存储过程。例如用的SQL语句是:用户登录 '1001','888888'; 6.2 酒店管理员模块 此模块进行酒店管理员总的管理界面,能够实现对客房的合理管理,界面如图6-2所示。

图6-2 酒店管理员界面 6.3 用户信息管理模块 此模块有对用户的添加,修改,删除等功能,能够对用户进行合理的管理,界面如图6-3所示。

图6-3 职工信息管理界面 添加用户,删除用户,查询用户,修改用户和利用系统查询五个功能按钮是同级的,利用系统查询是利用的一个系统视图,根据填写的信息可以对用户进行不同的操作。例如用的SQL语句是:SELECT * FROM 用户信息系统查询_VIEW; INSERT INTO UsersInfo VALUES('1005','杨幂','888888','男','yangyang@126.com','北京','444444','管理部',1); DELETE FROM UsersInfo WHERE Sex = '男' AND UAddress = '北京'; SELECT Name ,Sex ,Department,Email FROM UsersInfo ; UPDATE UsersInfo SET Name = '小玲',Telephone = '000000' WHERE UseId = '1001' ; 6.4客房类型管理模块 此模块有对酒店中客房类型的添加,修改,删除等功能,能够对酒店客房进行合理的管理。界面如图6-4所示。

图6-4 客房类型管理界面 添加客房,删除客房,查询客房,修改客房和利用系统查询五个功能按钮是同级的,利用系统查询是利用的一个系统视图,根据填写的信息可以对客房进行不同的操作。例如用的SQL语句是:SELECT * FROM 客房类型查询_VIEW; SELECT Name ,Price ,AirCondition ,TV FROM RoomCategory ; UPDATE RoomCategory SET Price = 180,TV = '有' WHERE RCategoryId = '4'; INSERT INTO RoomCategory VALUES('2','豪华间',200.00,2,250.00,'有','有'); DELETE FROM RoomCategory WHERE RCategoryId = '1' AND TV = '有'; 6.5 添加客房信息模块 酒店管理员对酒店客房进行添加,增多可客房的数量,可以满足更多顾客的要求,同时也提高了饭店的运行效率。界面如图6-5所示。

图6-5 添加客房信息界面 添加客房用的是系统中的存储过程,实现的SQL语句是:EXEC 添加客房 'R1006','4','一楼右侧','非常舒适'; 6.6 删除客房信息模块 酒店管理员对要装修或者位置不合适等不合理的客房进行删除,使酒店更受人欢迎,对酒店进行合理化的管理。界面如图6-5所示。

图6-6 删除客房信息界面 客房删除的时候只要管理员输入客房号可以删除客房,这个客房删除是通过存储过程实现的,用到的SQL语句是:EXEC 客房删除 'R1001'; 6.7 客房信息修改和查询管理模块 在酒店对一些客房进行改装之后会改变其类型或者位置,就是对这些客房信息进行修改。界面如图6-7所示。

图6-7 客房信息修改和查询界面 根据填写的内容和按钮的选择可以对客房进行修改和查询。用到的SQL语句是:EXEC 客房修改 'R1004','1','一楼右侧','' SELECT RCategoryId ,RPostition,Eescription FROM RoomsInfo ; 6.8客户信息管理模块 对入住酒店的不同客户进行信息登记,实现客户订房,并且可以对客户进行相关的查询和修改,有利于酒店系统的管理,只有酒店管理员才具有这些操作的能力。界面如图6-8所示。

图6-8 客户信息管理界面 客户查询,客户修改,客户订房和利用系统查询四个按钮是同级的,当客户订房的时候需要填写全部内容,用的是“客户订房”这个存储过程,选择其他按钮的时候客房号和入住时间是灰色的。用的是SQL语句是:
EXEC 客户订房 '20110520','R1002','19901990','5D','15833223311' SELECT * FROM 客户信息查询_VIEW; SELECT Cname ,Cphone FROM CustomersInfo ; EXEC 客户信息修改 '19890202','杨仔','13653490003' 6.9经营状况统计模块 对不同时间入住酒店的客户进行统计,对酒店的经营状况进行管理。界面如图6-9所示。

图6-9 经营状况统计界面 对于酒店客房经营状况的统计,有三种不同的方式,分别是按年、月、日进行统计。用到的SQL语句是:SELECT SUM(TotalPrice) AS “业务总额“ FROM History WHERE EndTime LIKE '2010%' ; SELECT SUM(TotalPrice) AS “业务总额“ FROM History WHERE EndTime LIKE '2011-05%' ; SELECT SUM(TotalPrice) AS “业务总额“ FROM History WHERE EndTime LIKE '2011-05-08' ; 6.10个人信息修改模块 酒店内部人员在登录自己所对应的用户名之后可以自己的信息进行修改。界面如图6-10所示。

图6-10 个人信息修改界面 个人信息修改默认已填写的用户名为修改条件,根据其他的填写内容不更新内容。用到的SQL语句是:UPDATE UsersInfo SET Email = 'ANTA@163.COM',UAddress = '上海' WHERE UseId = '1002' ; 6.11密码修改模块 酒店内部人员在登录自己所对应的用户名之后可以修改自己的密码。界面如图6-11所示。

图6-11 密码修改界面 密码修改用的是系统中的一个“密码修改”的存储过程。例如用到的SQL语句是:EXEC 密码修改 '1001','123456','888888' 结 论 由于这次课程设计有了老师的督促和提醒,所以有了充分的时间做准备。通过一段时间的准备和设计制作,让我学习到了很多东西,尤其是对数据库知识的复习以及扩充。

在如何设计数据库、添加数据表、创建视图、触发器、存储过程等知识有了新的认识和更深的理解,对如何制作一个完整系统的提前准备、实施过程、运行以及调试也有了初步了解。由于这次实验用到了SQL Server 2008 这个编程工具,所以对其功能和特性有所掌握和熟悉。

通过这次课程设计,有几点感想:
1.扎实的理论基础。如果不掌握,对程序设计根本无法下手,很难写出高水平的程序,而这点正是我们所缺乏的。

2.不要钻牛角尖。当遇到问题是,暂时放下自己的工作,歇一会儿,当重新开始工作的时候,也许会发现那些难题竟然迎刃而解了。

3.多与别人交流。把自己的想法说出来,让别人帮你提点儿意见,或许你设计的系统会更加的完善。

4.良好的编程风格。注意自己在使用语句是的写法要规范,要遵守一定的变量命名规则,例如:用英文单词命名一些表中的字段名称。

我深深地认识到,如果仅仅只是运用理论知识,是远远不够的。我们必须理论联系实际,才能很好的将数据库学好,用于实际案例中。同时经过这次课程设计,我发现自己的动手操作能力变强了,我也为自己以后的学习打下了良好的基础。

致 谢 经过半个月的艰苦努力,我终于完成了酒店客房管理系统的全部设计过程,并使该系统达到可实际应用的阶段。

首先我要感谢帮助我的老师和同学,是你们的支持和鼓励才使我能够坚持下来,顺利完成这次课程设计。在这次设计中我时钟坚持理论结合实际,在自己想象怎样设计的同时,把自己当作系统中真实的人员进行分析和实践,慢慢进行完善。在这次学习和锻炼中,我熟悉了设计数据库的一般步骤,加强了对实际问题的处理能力。实践证明:在课堂中学习的知识远远不够,还得不断查阅资料,不断学习,努力充实自己。我以后会多学着做做实际项目来增加见识和积累经验,慢慢磨练自己。

这次学习,无论是从技术上还是对环境的适应能力上讲,对我今后步入社会都是一个经验的积累。在课程设计过程中,我也遇到了一些困难,主要表现了技术和经验的欠缺,但是通过不懈地努力都一一克服和解决了。

最后再一次感觉这个学期贾老师以及同学们对我的帮助和鼓励! 参考文献 [1] 张基温,陈佳, 信息系统开发 清华大学出版社 2006年 [2] 卫红春, 信息系统分析与设计 西安电子科技大学出版社 2003年 [3] 黄梯云 , 管理信息系统 高等教育出版社 2005年 [4]方美琪 陈禹, 软件开发工具 经济科学出版社 2008年 [5]王珊, 数据组织与管理 经济科学出版社 1996年 [6]袁然,王诚梅,SQL Server 2005数据库简明教程 电子工业出版 2006 年 附 录 酒店客房管理系统程序如下:
(1)使用T—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)使用T—SQL语句创建库存表。

--1创建用户信息表 USE 酒店客房管理系统 CREATE 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 KEY, 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, RCategoryId 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) PRIMARY 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)使用T—SQL语句创建库存视图。

CREATE VIEW 客房信息普通查询_VIEW AS SELECT RoomId 客房编号,RCategoryId 客房类型编号,RPostition 客房位置,Eescription 描述 FROM RoomsInfo; CREATE VIEW 客房信息高级查询_VIEW AS SELECT RoomsInfo.RoomId 客房编号,RoomsInfo.RCategoryId 客房类型编号,RPostition 客房位置, Eescription 描述,Name 类型名称,Area 客房面积,BedNum 配置床位,Price 客房价格, AirCondition 配置空调,TV 配置电视,RStatus 客房状态 FROM RoomsInfo,RoomCategory,RoomStatus WHERE RoomsInfo.RCategoryId = RoomCategory.RCategoryId AND RoomsInfo.RoomId = RoomStatus.RoomId ; CREATE VIEW 客户信息查询_VIEW AS SELECT CIdentityId 身份证号,Cname 客户姓名,CPhone 联系电话 FROM CustomersInfo ; CREATE VIEW 用户信息系统查询_VIEW AS SELECT UseId 用户编号,Name 用户姓名,UPassword 用户密码,Sex 用户性别,Email Email地址, UAddress 通讯地址,Telephone 联系电话,Department 所在部门,UType 用户类型 FROM UsersInfo ; CREATE VIEW 客房类型查询_VIEW AS SELECT RCategoryId 客房类型编号,Name 类型名称,Area 客房面积,BedNum 配置床位, Price 客房价格,AirCondition 配置空调,TV 配置电视 FROM RoomCategory ; (4)使用T—SQL语句创建库存索引。

CREATE INDEX 用户信息表 ON UsersInfo(UseId); CREATE INDEX 客户信息表 ON CustomerInfo(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)使用T—SQL语句创建库存存储过程。

--1用户登录 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '用户登录') DROP PROCEDURE 用户登录 GO CREATE PROCEDURE 用户登录 @useid varchar(20), @password varchar(20) AS BEGIN DECLARE @returnvalue int SET @returnvalue = 1 IF EXISTS(SELECT UseId,UPassword FROM UsersInfo WHERE UseId = @useid AND UPassword = @password) BEGIN SET @returnvalue = 0 PRINT '用户登陆成功^_^' END ELSE PRINT '此用户不存在,请您重新输入!' END GO --2添加客房 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '添加客房') DROP PROCEDURE 添加客房 GO CREATE PROCEDURE 添加客房 @roomid varchar(20), @rcategoryid varchar(20), @rposition varchar(50), @description varchar(50) AS BEGIN DECLARE @returnvalue int SET @returnvalue = 1 IF EXISTS(SELECT RoomId FROM RoomsInfo WHERE RoomId = @roomid) PRINT '此房间已存在,请您重新添加!' ELSE BEGIN IF EXISTS(SELECT RCategoryId FROM RoomCategory WHERE RCategoryId = @rcategoryid) BEGIN INSERT INTO RoomsInfo VALUES(@roomid,@rcategoryid,@rposition,@description) INSERT INTO RoomStatus VALUES(@roomid,0) SET @returnvalue = 0 PRINT '客房添加成功^_^' END ELSE PRINT '客房类型不存在,请您重新添加!' END END GO --3客户订房 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '客户订房') DROP PROCEDURE 客户订房 GO CREATE PROCEDURE 客户订房 @begintime date, @roomid varchar(20), @cidentityid varchar(30), @cname varchar(20), @cphone varchar(20) AS BEGIN DECLARE @rstatus int SELECT @rstatus = RStatus FROM RoomStatus WHERE RoomId = @roomid IF(@rstatus = 1) PRINT '此客房正在使用,请您选择别的客房!' ELSE BEGIN UPDATE RoomStatus SET RStatus = 1 WHERE RoomId = @roomid IF EXISTS(SELECT Cidentityid FROM CustomersInfo WHERE Cidentityid = @cidentityid) BEGIN UPDATE CustomersInfo SET Cname = @cname,Cphone = @cphone WHERE Cidentityid = @cidentityid UPDATE History SET Cname = @cname,Cphone = @cphone WHERE Cidentityid = @cidentityid INSERT INTO RoomService VALUES(@roomid,@cidentityid) INSERT INTO History VALUES(@begintime,null,@roomid,0,@cidentityid,@cname,@cphone) PRINT '订房成功^_^' END ELSE BEGIN INSERT INTO CustomersInfo VALUES(@cidentityid,@cname,@cphone) INSERT INTO RoomService VALUES(@roomid,@cidentityid) INSERT INTO History VALUES(@begintime,null,@roomid,0,@cidentityid,@cname,@cphone) PRINT '订房成功^_^' END END END GO --4客户退房 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '客户退房') DROP PROCEDURE 客户退房 GO CREATE PROCEDURE 客户退房 @roomid varchar(20), @cidentityid varchar(20), @endtime date AS BEGIN DECLARE @price numeric(10,2), @totalprice numeric(10,2), @begintime date SELECT @price = RoomCategory .Price FROM RoomCategory,RoomsInfo WHERE RoomCategory.RCategoryId = RoomsInfo.RCategoryId AND RoomsInfo.RoomId = @roomid SELECT @begintime = History.BeginTime FROM History WHERE History.RoomId = @roomid AND History.CIdentityId = @cidentityid SET @totalprice = @price * DATEDIFF (DAY,@begintime,@endtime) IF(@totalprice = 0) SET @totalprice = @price UPDATE History SET EndTime = @endtime,TotalPrice = @totalprice WHERE RoomId = @roomid AND CIdentityId = @cidentityid AND BeginTime = @begintime DELETE FROM RoomService WHERE RoomId = @roomid UPDATE RoomStatus SET RStatus = 0 WHERE RoomId = @roomid PRINT '退房成功^_^' END GO --5客户信息修改 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '客户信息修改') DROP PROCEDURE 客户信息修改 GO CREATE PROCEDURE 客户信息修改 @cidentityid varchar(30), @cname varchar(20), @cphone varchar(20) AS BEGIN UPDATE CustomersInfo SET Cname = @cname,Cphone = @cphone WHERE CIdentityId = @cidentityid UPDATE History SET Cname = @cname,Cphone = @cphone WHERE CIdentityId = @cidentityid PRINT '客户信息修改成功^_^' END GO --6密码修改 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '密码修改') DROP PROCEDURE 密码修改 GO CREATE PROCEDURE 密码修改 @userid varchar(20), @password varchar(20), @npassword varchar(20) AS BEGIN IF EXISTS(SELECT UseId,UPassword FROM UsersInfo WHERE UseId = @userid AND UPassword = @password) UPDATE UsersInfo SET UPassword = @npassword WHERE UseId = @userid ELSE PRINT '这个用户不存在,请您重新输入!' END GO --7客房删除 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '客房删除') DROP PROCEDURE 客房删除 GO CREATE PROCEDURE 客房删除 @roomid varchar(20) AS BEGIN DECLARE @rstatus int IF EXISTS(SELECT * FROM RoomsInfo WHERE RoomId = @roomid) BEGIN SELECT @rstatus = Rstatus FROM RoomStatus WHERE RoomId = @roomid IF(@rstatus = 1) PRINT '此客房正在被使用,现在无法删除!' ELSE BEGIN UPDATE History SET RoomId = 'D'+ @roomid WHERE RoomId = @roomid DELETE FROM RoomStatus WHERE RoomId = @roomid DELETE FROM RoomsInfo WHERE RoomId = @roomid PRINT '恭喜您客房删除成功^_^' END END ELSE PRINT '您删除的客房不存在!' END GO --8客房修改 USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = '客房修改') DROP PROCEDURE 客房修改 GO CREATE PROCEDURE 客房修改 @roomid varchar(20), @rcategoryid varchar(20), @rpostition varchar(50), @description varchar(50) AS BEGIN IF EXISTS(SELECT RCategoryId FROM RoomCategory WHERE RCategoryId = @rcategoryid) BEGIN UPDATE RoomsInfo SET RCategoryId = @rcategoryid,RPostition = @rpostition,Eescription = @description WHERE RoomId = @roomid PRINT '客房修改成功^_^' END ELSE PRINT '客房类型不存在,请您重新修改!' END GO (6)使用T—SQL语句创建库存触发器。

USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = 'TGI_业务信息添加') DROP TRIGGER TGI_业务信息添加 GO CREATE TRIGGER TGI_业务信息添加 ON RoomService FOR INSERT AS DECLARE @roomid varchar(20) SELECT @roomid = Roomid FROM INSERTED UPDATE RoomStatus SET Rstatus = 1 WHERE Roomid = @roomid GO USE 酒店客房管理系统 GO IF EXISTS( SELECT * FROM SYSOBJECTS WHERE name = 'TGI_业务信息删除') DROP TRIGGER TGI_业务信息删除 GO CREATE TRIGGER TGI_业务信息删除 ON RoomService FOR DELETE AS DECLARE @roomid varchar(20) SELECT @roomid = Roomid FROM DELETED UPDATE RoomStatus SET Rstatus = 0 WHERE Roomid = @roomid GO 指导教师评语及设计成绩 评 语 课程设计成绩:
指导教师:
日期:
年 月 日

推荐访问:

相关文章:

Top