您的当前位置:首页客房系统课程设计

客房系统课程设计

2024-02-19 来源:爱问旅游网


课 程 设 计

课程名称__ 数据库__ 题目名称__客房管理系统 学生学院____计算机学院 专业班级____ 学 号______ _ 学生姓名____ ______ 指导教师_____宋玮 ____

2013年 1 月 13 日

1

2

目 录

1 绪言 ········································································································································3 2 系统所用工具概述 ··················································································································4

2.1 SQL Server概述 ·········································································································4 2.2 Eclipse工具概述 ······································································································5 3 需求分析 ·································································································································6

3.1数据流图 ·······················································································································6

3.1.1 顶级数据流图 ····································································································6 3.1.2 一级数据流图 ····································································································7 3.2 系统流程分析 ···········································································································7 4 系统概要模块设计 ··················································································································8 5 数据库概念结构设计 ··············································································································8 6 数据库逻辑结构设计 ············································································································ 10 7 数据库物理过程设计 ············································································································ 14

7.1创建数据库 ·················································································································· 14 8 数据库实施 ··························································································································· 14

8.1创建数据库 ·················································································································· 14 8.2创建数据库对象的SQL脚本文本 ·············································································· 15 9.系统实现关键程序代码 ······································································································ 17

9.1连接数据库 ·················································································································· 17 9.2 java中的sql语句 ········································································································ 17 10 用户界面的设计和实现 ······································································································ 18 参考文献 ··································································································································· 20

1 绪言

近年来,宾馆业迅猛发展,全面提高宾馆的软件管理水准是很有必要的。尤其是对

3

于星级宾馆,既需要完成前台的一些服务工作,还需要完成后台的管理工作。然而,传统的人工管理模式已经远远不能满足有效、快捷地处理经营中产生的大量信息数据的需要,从而使得企业决策层无法及时、准确地掌握一线资料,继而影响对市场进行正确地分析和预测。 传统的管理方法已经不能适应现代社会的需要,因此采用电脑管理业务、财务等诸多环节已成为推动宾馆业迅速发展的先决条件,宾馆客房管理信息系统是各大中小型宾馆所需要使用的一个管理系统。

2 系统所用工具概述

2.1 SQL Server概述

SQL Server数据库系统最初是由Sybase公司开发和实现的,Microsoft为了在OS\\2操作系统中开发数据库产品,购买了SQL Server版权,并于20世纪90年代初期在Windows操作系统中开始开发。如果用户开发Windows应用程序,SQL Server应是首选的数据库产品,因为它与Windows操作系统结合的非常紧密,随着Windows操作系统的盛行,使得SQL Server成为一个重要的数据库系统。此外,SQL Server还具有Windows操作系统的特点,即界面友好,操作简单,通过图形用户接口(SQL Server提供的企业管理器),用户不需记忆各种命令和SQL语句就可以完成各种常规操作。在功能上,SQL Server也毫不逊色,可以与Oracle,DB2等大型数据库媲美,尤其在SQL Server当前的版本――SQL Server2000中,提供了几十种向导,覆盖了几乎所有的数据库操作(数据库的创建,维护,作业,警告,数据复制,转换等)。

SQL Server 采用二级安全验证、登录验证及数据库用户帐号和角色的许可验证。SQL Server 支持两种身份验证模式:Windows NT身份验证和SQL Server 身份验证。7.0版支持多种类型的角色,\"角色\"概念的引入方便了权限的管理,也使权限的分配更加灵活。

SQL Server为公共的管理功能提供了预定义的服务器和数据库角色,可以很容易为某一特定用户授予一组选择好的许可权限。 SQL Server可以在不

4

同的操作平台上运行,支持多种不同类型的网络协议如TCP/IP、IPX/SPX、Apple Talk等。SQL Server在服务器端的软件运行平台是Windows NT、Windows9x,在客户端可以是Windows3.x、Windows NT、Windows9x,也可以采用其它厂商开发的系统如Unix、Apple Macintosh等。

微软的SQL Server是一项完美的客户/服务器系统。SQL Server需要安装在Windows NT的平台上,而Windows NT可以支持Intel 386,Power PC,MIPS,Alpha PC和RISC等平台,它使SQL Server具备足够的威力和功能。

SQL Server提供服务器端的软件,这部分需要安装在NT Server上,SQL Server的用户端则可以安装在许多用户端PC系统中,Windows可以让用户端进行数据库的建立,维护及存取等操作,SQL Server可以最多定义32767个数据库,每个数据库中,可以定义20亿个表格,每个表格可以有250个字段,每个表格的数据个数并没有限制,每一个表格可以定义250个索引,其中有一个可以是Clustered索引。

SQL Server所使用的数据库查询语言称为Transact-SQL,它是SQL Server的核心,Transact-SQL强化了原有的SQL关键字以进行数据的存取,储存及处理等功能,Transact-SQL扩充了流程控制指定,可以使你方便的编写功能强大的存储过程,他们存放在服务器端,并预先编译过,执行速度非常块,触发是一种特殊的存储过程,用来确保SQL Server数据库引用的完整性,你可以建立插入,删除和更新触发以控制相关的表格中对数据列的插入,删除和更新,你还可以使用规则(Rule),缺省(default)以及限制(Constraints),来协助将新的数值套用到表格中去! 2.2 Eclipse工具概述

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为C++、Python、PHP等其他语言的开发工具。

Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较佳的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。 历史

5

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布;2008年6月发布代号为Ganymede的3.4版;2009年6月发布代号为Galileo的3.5版;2010年6月发布代号为Helios的3.6版 架构

Eclipse的基础是富客户机平台(Rich Client Platform,即RCP)。RCP包括下列组件:

核心平台(启动Eclipse,运行插件) OSGi(标准集束框架) SWT(可移植构件工具包)

JFace(文件缓冲,文本处理,文本编辑器)

Eclipse工作台(即Workbench ,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards))

Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。

Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。 已有的分离的插件已经能够支持C/C++(CDT)、PHP、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。

3 需求分析

3.1数据流图 3.1.1 顶级数据流图

顶级数据流图如图1:

控制面板 用户帐号密码

客房管理系统

显示器 6

数据传送 显示信息

数据传送设备

图1 顶级数据流图 3.1.2 一级数据流图

将顶级数据流图细分可得图2

房间 预定 客房信息 客房状态

客人信息 入住登记 客人 现开 入住 退房 帐务信息 图2一级数据流图

财务

3.2 系统流程分析

详细的客房系统的模块关系图如图3所示。

登录成功

用户验证

客房管理 反馈信息查询 7

财务管理 退出系统 登录界面 录 失 用户管理 败

图3 系统流程示意图

4 系统概要模块设计

系统的功能模块图,如图4所示。

客房管理系统总客客财用体户房务户入订管管管住房理理理情况客客退结统注修房人交退押算计销改信信押入住房金房收用密息息金费入户码

图4 客房管理系统模块示意图

5 数据库概念结构设计

采用E-R图的分析方法,首先对局部视图进行分析设计。

8

姓名电话性别证件号客人备注名称房号状态客房备注类型价格编号密码财务管理员用户名支出收入

然后再实现视图集成。在视图集成时,注意要尽量消除冲突和冗余。在这里直接给出视图集成后的E-R图,如图5所示。

9

入住1客人1预定NN客房N1形成形成MNMN管理入住历史产生N形成NN形成MMM房费N管理N管理员

图5客房系统E-R图

6 数据库逻辑结构设计

根据E-R图,就可以创建以下数据表。

 系统用户表

系统用户表(Ur)存储了登录本系统的用户的登录ID和密码,

10

表1 系统用户表

字段名称 u pw

 客房信息表(Room)

表2 客房信息表

字段名称 rno rtype situation price r_ps

 客人名单表(Customer)

表3 客人名单表 字段名称 cname cno ctel csex

 客人订房表(Book)

表4 客人订房表

字段名称 cno 数据类型 Varchar (50) 可否为空 NOT NULL 约束条件 primary key, foreign key, 级联更新 rno Varchar (50) NOT NULL primary key,foreign key, 级联跟新

11

数据类型 Varchar(50) Varchar (50) 可否为空 NOT NULL NOT NULL 约束条件 primary key 无 说 明 用户ID 密码 数据类型 可否为空 约束条件 无 无 无 无 说 明 类型 状态 价格 备注 Varchar(50) NOT NULL Varchar(50) NOT NULL Varchar(50) NOT NULL Int NOT NULL Varchar(100) NULL primary key 房号 数据类型 可否为空 约束条件 无 primary key 无 无 说 明 客人姓名 客人证件号 客人电话 客人性别 Varchar (50) NOT NULL Varchar (50) NOT NULL Varchar (50) NOT NULL Varchar (50) NULL 说 明 客人证件号 房号 b_ps bookday bno hander

Varchar (90) datetime Varchar (50) Varchar (50) NULL NOT NULL NOT NULL NOT NULL 无 无 unique 无 备注 预约入住日期 编号 经手人  客人入住表(Inroom)

表5 客人入住表

字段名称 cno 数据类型 Varchar (50) 可否为空 NOT NULL 约束条件 primary key, foreign key, 级联跟新 rno Varchar (50) NOT NULL primary key, foreign key, 级联更新 i_ps inday wday money deposit ino hander

 账单表(Bill)

表6账单表

字段名称 bno income pay bday

说 明 客人证件号 房号 Varchar (90) datetime datetime Int Int Varchar (50) Varchar (50) NULL NOT NULL NOT NULL NULL NOT NULL NOT NULL NOT NULL 无 无 无 无 无 unique 无 备注 入住日期 预计退房日期 产生费用 押金 编号 经手人 数据类型 Varchar (50) Int Int datetime 可否为空 NOT NULL NULL NULL NOT NULL 约束条件 primary key 无 无 无 说 明 账单号 收入 支出 日期 12

bname cname hander b_ps rno cno

Varchar (50) Varchar (50) Varchar (50) Varchar (90) Varchar (50) Varchar (50) NOT NULL NULL NOT NULL NULL NULL NOT NULL 无 无 无 无 foreign key foreign key, 级联跟新 业务名 个人/单位名称 经手人 备注 房号 客人证件号  历史入住表(History)

表7历史入住表

字段名称 cname cno ctel csex rno bno 数据类型 可否为空 约束条件 无 无 无 无 级联更新 Varchar (50) NOT NULL foreign key,账单号 级联更新,级联删除 inday outday hander h_ps hno datetime datetime Varchar (90) NOT NULL NOT NULL NULL 无 无 无 无 primary key 入住日期 退房日期 经手人 备注 编号 说 明 客人姓名 客人证件号 客人电话 客人性别 Varchar (50) NOT NULL Varchar (50) NOT NULL Varchar (50) NOT NULL Varchar (50) NOT NULL Varchar (50) NOT NULL foreign key,房号 Varchar (50) NOT NULL Varchar (90) NOT NULL 13

7 数据库物理过程设计

7.1创建数据库 表间关系如图6所示:

图6客房管理系统关系图

8 数据库实施

8.1创建数据库

*********************************************************************

USE [master] GO

/****** 对象: Database [HOTEL] 脚本日期: 01/02/2014 20:38:06 ******/

14

CREATE DATABASE [HOTEL] ON PRIMARY

( NAME = N'HOTEL', FILENAME = N'E:\\HOTEL\\HOTEL.mdf' , SIZE = 30720KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%) LOG ON

( NAME = N'HOTEL_log', FILENAME = N'E:\\HOTEL\\HOTEL_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)

********************************************************************************************

8.2创建数据库对象的SQL脚本文本 -创建表

USE HOTEL create table Ur (

u varchar(50) not null primary key, pw varchar(50) not null , ); USE HOTEL

create table Room (

rno Varchar(50)

NOT NULL primary key,

rtype Varchar(50) NOT NULL,

situation Varchar(50)

NOT NULL,

price Int NOT NULL, r_ps Varchar(100) NULL

);

USE HOTEL

create table Customer (

cname Varchar (50) NOT NULL ,

cno Varchar (50) NOT NULL primary key, ctel Varchar (50) NOT NULL , csex Varchar (50) NULL

,

);

USE HOTEL

create table Book(

cno Varchar (50) NOT NULL ,

15

rno Varchar (50) NOT NULL , b_ps

Varchar (90) NULL

,

bookday

datetime NOT NULL ,

bno Varchar (50) NOT NULL unique, primary key (cno,rno),

hander Varchar (50) NOT NULL , );

USE HOTEL

create table Inroom( cno Varchar (50) NOT NULL, rno Varchar (50) NOT NULL, i_ps Varchar (90) NULL, inday datetime NOT NULL, wday

datetime NOT NULL,

money Int NULL, deposit

Int NOT NULL,

ino Varchar (50) NOT NULL unique, primary key(cno,rno),

hander Varchar (50) NOT NULL , );

USE HOTEL

create table Bill(

bno Varchar (50) NOT NULL primary key, income Int NULL, pay Int NULL, bday

datetime NOT NULL,

bname Varchar (50) NOT NULL, cname Varchar (50) NULL, hander Varchar (50) NOT NULL, b_ps Varchar (90) NULL, cno Varchar (50) NOT NULL ,

data datetime NOT NULL ,

);

USE HOTEL

create table History(

cname Varchar (50) NOT NULL, cno Varchar (50) NOT NULL, ctel Varchar (50) NOT NULL, csex

Varchar (50) NOT NULL, rno Varchar (50) NOT NULL, bno Varchar (50) NOT NULL, inday datetime NOT NULL, outday datetime NOT NULL,

16

hander Varchar (50) NOT NULL, h_ps );

Varchar (90) NULL,

hno Varchar (90) NOT NULL primary key,

9.系统实现关键程序代码

整个系统的运行都紧密联系数据库的操作。现列出主要功能的部分代码,其他代码暂时省略。 9.1连接数据库

Connection connection = null;

// 加载JDBC驱动 try {

// 将给定的JDBC驱动类加载到Java虚拟机中

Class.forName(\"com.microsoft.sqlserver.jdbc.SQLServerDriver\"); // 数据包

// 如果系统中不存在给定的类,则会引发异常,异常类型为

也就是这个,这个数据库是2008的,你要改 ClassNotFoundException

} catch (ClassNotFoundException e) { }

// 建立连接,DriverManager是JDBC的管理层 try {

connection = DriverManager

.getConnection(

e.printStackTrace();

\"jdbc:sqlserver://localhost:56058;DatabaseName=HOTEL\",

\"sa\", \"2221790\");

// System.out.println(\"建立连接成功!\");

9.2 java中的sql语句

Statement stmt = connection.createStatement();

ResultSet rs = stmt.executeQuery(\"SELECT * FROM Customer\");

17

10 用户界面的设计和实现

登录模块

主界面:

功能模块

18

查询模块

19

参考文献

1

萨师煊,王珊. 数据库系统概论(第三版). 北京:高等教育出版社2000

20

因篇幅问题不能全部显示,请点此查看更多更全内容