客房管理系统课程设计报告Word文档下载推荐.docx
《客房管理系统课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《客房管理系统课程设计报告Word文档下载推荐.docx(59页珍藏版)》请在冰豆网上搜索。
5.根据系统功能需求设计相应的查询视图
6.要求根据系统功能需求建立存储过程
7.根据功能需求建立相应的触发器以保证数据的一致性
8.通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)
二、设计原始资料
1、《数据库原理》
2、课程设计题目:
客房管理系统
三、设计完成后提交的文件和图表
1.计算说明书部分
2.图纸部分:
课程设计报告格式(附后):
封面、题目、时间地点、目的及要求、内容、详细的步骤和代码编写过程(绘制出拓扑图)、总结。
设计报告格式:
·
设计题目
设计时间、地点
设计目的
设计要求
设计思路(要求有文字描述,并画出流程图)(占报告40%)
设计过程(要求有文字说明实现的过程,并对相应的代码添加注释)(占报告40%)
设计总结(分析程序的得与失)
心得体会
封面格式如下(一定要有封面):
四、进程安排
教学内容
学时
地点
备注
分配任务与分组
1天
实验室
系统功能需求分析
数据库需求分析
逻辑数据库结构
2天
查询视图、存储过程、
触发器
编程
程序测试和成果验收
五、主要参考资料
1.《数据库系统原理与应用》沈祥玖张岳中国水利水电出版社2016
2.《SQLServer数据库配置与管理指南》刘奎
清华大学出版社2010
3.《SQL与关系数据库理论》周成兴 清华大学出版社2010
信息科学与电气工程学院
课程设计成绩评定用表
平时成绩(30%)
答辩成绩(40%)
报告成绩(30%)
总成绩
注:
本表可根据实际情况修改。
前言
随着我国经济的迅速发展和假日经济的出现,宾馆酒店业的竞争愈来愈激烈。
要想在竞争中取得优势,必须在经营管理、产品服务等方面提高服务管理意识。
而对对酒店的经营状况去决定行作用的是酒店的管理。
如何利用先进的管理手段,提高酒店的管理水平,是每一家酒店的管理者所面临的重要课题。
简单的服务标准已经不是制胜的锦囊,只有做到最细微之处才有机会让顾客体会到酒店服务的优点,而精准、快捷、周全往往就是最基本的成功要素。
因此,采用全新的计算机网络和管理系统,将成为提高酒店的管理效率,改善服务水准的重要手段之一。
信息与科技在酒店管理与现代化建设中显现出越来越重要的地位。
在某种意义上,酒店客房状态管理方面的信息化与科学化,已成为现代化酒店的重要标志。
关键字:
客房管理;
管理系统;
服务。
1.问题描述
1.1背景
随着宾馆业竞争的加剧,宾馆之间客源的争夺越来越激烈,宾馆需要使用更有效的信息化手段,拓展经营空间,降低运营成本,提高管理和决策效率。
传统的宾馆计算机管理系统主要包括前台管理系统和后台管理系统两大部分,基本包含了宾馆主要业务部门,初步实现了对顾客服务和进行财务核算所需要的各个功能。
但传统的宾馆管理基于财务管理为主线的设计理念,无法满足宾馆全面信息化管理的需要。
现代宾馆酒店业迅速发展,新的管理观念与模式层出不穷。
宾馆客房管理系统亦随着宾馆管理理念的发展而发展。
宾馆客房管理系统依旧采用了先进的数据库理论,多媒体技术,软件工程理念等,从基层,中层,高层三个管理者层次为切入点,以成本分析,预测,控制为一线,形成一套上下贯通,操作便捷的酒店系统解决方案,科学地将宾馆各种日常业务完美的结合在一起,为管理及决策提供了强有力的支持。
其对客人个性化服务及全面彻底的信息化,使企业电算化水平提升到一个新的更高层次,提供大量丰富的基于企业管理经营过程中实际的数据。
1.2功能要求
(1)客人基本信息的录入;
(2)客人基本信息的查询、修改、增加、删除等;
(3)客房相关信息的录入,包括房间号、收费标准、床位、类别等;
(4)客房类别标准的制定、类别信息的输入;
(5)客房基本信息的查询、修改、删除等;
(6)住房信息的录入,包括房间号、客人姓名等;
(7)退房信息的更新;
2.需求分析
2.1需求分析
2.1.1处理对象
系统要处理的对象包括信息管理、客户信息管理、客房信息管理、入住和退房管理、客房类型管理、费用管理、价目信息管理等7个方面,各个对象包含的信息如下所示:
(1)信息管理:
可以对于各种信息的查询,个人信息可以查看自己的私人信息,还可以对自己的私人信息进行修改。
用户信息查看用户的个人信息,对用户的信息进行增、删、查、改。
(2)客户信息管理:
可以新建客户,输入客户的身份证号码、姓名、性别、出生日期和地址等信息,可以对于客户的信息进行相应的修改,还可以对客户的消费信息进行统计。
(3)客房信息管理:
可以在相应的房间类型下面进行添加相应的房间,对相应的房间进行删除,查看空房以及客房的情况。
(4)入住和退房管理:
客户可以入住相应的类型房型下的空房,然后可以退房,系统自动将相应的订单状态置为失效,入住状态置为已退房,将相应房间的状态置为空房。
(5)客房类型管理:
管理员可以对相应的房型进行各种属性的修改,可以按照需求添加相应的房型,管理员、工作人员都可以查看相应的房型信息,管理员有需要时可以删除相应的房型,系统自动将该房型下的房间删除。
(6)费用管理:
管理员、工作人员都可以查看相应的费用信息,管理员有需要时可以对宾馆的收入与支出进行查询或修改。
(7)价目信息管理:
可以查看客房的收费标准,管理员可以对客房价格进行查询与修改,工作人员可以查看可风的价目信息。
2.1.2系统功能分析
某宾馆需要建立一个住房管理系统,需求分析结果如下:
(1)宾馆要求该系统能实现住房信息管理、客户信息管理等功能;
(2)一个房间有多个床位,同一房间内的床位具有相同的收费标准。
不同类型的房间的床位收费标准可能不同;
(3)每个房间有房间号、收费标准、床位数目等信息;
(4)每位客人有身份证号码、姓名、性别、出生日期和地址等信息;
(5)对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额信息;
(6)管理系统可查询出客人住宿相关信息、房间信息。
2.1.3安全性和完整性要求
安全性先通过试图机制,不同的用户只能访问系统授权的视图,这样可以满足系统数据一定程度上的安全性,在通过用户授权机制,用户登录来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。
系统完整性要求系统中数据的正确性以及相容性。
可以通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。
2.2系统功能模块图
系统功能模块图,如图2.2所示。
图2.2系统的功能模块图
2.3数据字典
表2-3. 客户信息表:
表中列名
数据类型
可否为空
说明
编号
Int
Notnull
自增
姓名
Varchar(20)
性别
int
(0-男,1-女)
出生日期
data
身份证号
主键
联系电话
家庭住址
Varchar(50)
会员等级
Varchar(10)
会员积分
float
表2-4.客房信息表:
Int
房间号
分类
订房状态
0-已订,1-未订
清洁状态
0-已清洁,1-未清洁
价格
折扣
房间描述
Varchar(500)
可用状态
0-可用,1-不可用
表2-5.订房信息表:
联合主键、外键
入住时间
datetime
联合主键
退房时间
总房价
3.概念结构设计
3.1E-R图
各实体之间的E-R图,如图3-1所示。
图3-1实体之间的E-R图
3.2实体及属性的定义
客户信息实体的E-R图,如图3-2所示。
图3—2客户信息实体的E—R图
客房信息实体的E-R图,如图3-3所示。
图3—3客房信息实体的E—R图
客户住宿实体的E-R图,如图3-4所示。
图3—4客户住宿实体的E—R图
4.物理结构设计
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段要完成两大任务。
(1)确定数据库的物理结构,在关系数据库中主要是存储方法和存储结构。
(2)对物理结构进行评价,评价的重点是时间和空间效率。
CREATEUNIQUEINDEXTravnoONTravellers(Tno)
CREATEUNIQUEINDEXRoomnoONRooms(Rno)
CREATEUNIQUEINDEXRitemnoONRoomitem(Ritemno)
CREATEUNIQUEINDEXLivnoONLiving(Tno)
5.触发器设计
会员积分:
USE[kfglxt]
GO
/******Object:
Trigger[dbo].[t1]ScriptDate:
09/26/201719:
36:
40******/
SETANSI_NULLSON
SETQUOTED_IDENTIFIERON
ALTERtrigger[dbo].[t1]
on[dbo].[订房信息表]
afterinsert
as
begin
setnocounton;
declare@编号int,@增加积分int
select@编号=身份证号,@增加积分=总房价
frominserted
updatedbo.客户信息表
set会员积分=会员积分+@增加积分
where身份证号=@编号
End
会员等级:
Trigger[dbo].[会员等级增加]ScriptDate:
37:
52******/
ALTERtrigger[dbo].[会员等级增加]
declare@编号int,@增加积分int
set会员等级=(会员积分+@增加积分)/100
6.数据库的实施和维护
6.1建立数据库、数据表、索引
6.1.1.建立数据库
Createdatabasekfglxt;
6.1.2.建立数据表
(1)客户信息表
CREATETABLE客户信息表(
编号intIDENTITY(1,1)NOTNULL,
姓名varchar(20)NOTNULL,
性别intNOTNULL,
出生日期dateNOTNULL,
身份证号varchar(20)NOTNULL,
联系电话varchar(20)NOTNULL,
家庭住址varchar(50)NULL,
会员等级varchar(10)NULL,
会员积分floatNULL,
CONSTRAINTp1PRIMARYKEY(身份证号));
(2)客房信息表
CREATETABLE客房信息表(
房间号varchar(10)NOTNULL,
分类varchar(20)NOTNULL,
订房状态intNOTNULL,
清洁状态intNOTNULL,
价格floatNOTNULL,
折扣floatNOTNULL,
房间描述varchar(500)NOTNULL,
可用状态intNOTNULL,
CONSTRAINTp6PRIMARYKEY(房间号));
(3)订房信息表
CREATETABLE订房信息表(
入住时间datetimeNOTNULL,
退房时间datetimeNOTNULL,
总房价floatNOTNULL,
CONSTRAINTp2PRIMARYKEY(身份证号,房间号,入住时间),
CONSTRAINTp3FOREIGNKEY(身份证号)REFERENCES客户信息表(身份证号),
CONSTRAINTp4FOREIGNKEY(房间号)REFERENCES客房信息表(房间号));
6.1.3.建立索引
CREATEUNIQUEINDEXTravnoONtb_Travellers(Tno)
CREATEUNIQUEINDEXRoomnoONtb_Rooms(Rno)
CREATEUNIQUEINDEXRitemnoONtb_Roomitem(Ritemno)
CREATEUNIQUEINDEXLivnoONtb_Living(Tno)
7.存在问题总结
1.对书本知识不熟悉,课程设计过程当中需要不断的查阅课本,这样造成了时间的浪费。
2.2.对SQLServer2000操作不熟悉,导致导入数据是经常出错,造成了一些不必要的麻烦,应该提高操作熟练程度。
3.对于触发器和存储过程定义不是很熟悉,有的稍微难点的语句写不出来,对于数据库定义语句应该要熟练掌握。
4.对数据库设计总体把握不是很准确,导致中间多次反复的改动前面的业务流程图、数据流图和E-R图。
致谢
感谢老师的指导和陪伴
--宋立勇
8.主要参考资料
附录
登录界面
图1
主界面
图2
订房
图3
源代码
importjava.awt.Container;
importjava.awt.*;
importjava.util.*;
importjava.text.*;
importjava.awt.Rectangle;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.ItemEvent;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
importjavax.swing.JPasswordField;
importjavax.swing.JTextField;
classdengluextendsJFrameimplementsActionListener
{JLabelsystemTime;
Containercon=this.getContentPane();
JFramef=newJFrame("
客房管理系统"
);
JLabela=newJLabel("
用户名"
JTextFielda1=newJTextField();
JLabelb=newJLabel("
密码"
JTextFieldb1=newJPasswordField();
JLabelq=newJLabel("
答辩人:
宋立勇"
JButtonc=newJButton("
登录"
JButtond=newJButton("
退出"
JPanelz=(JPanel)this.getContentPane();
ImageIconicon=newImageIcon(getClass().getResource("
/Desktop/3.JPG"
));
JLabeltu=newJLabel(icon);
Containercontent=this.getContentPane();
publicdenglu(Strings){
super(s);
con.setLayout(null);
systemTime=newJLabel("
系统时间:
"
Containercp=getContentPane();
systemTime.setBounds(20,200,200,200);
cp.add(systemTime);
a.setBounds(newRectangle(100,80,60,30));
b.setBounds(newRectangle(100,140,60,30));
a1.setBounds(newRectangle(150,80,150,30));
b1.setBounds(newRectangle(150,140,150,30));
q.setBounds(newRectangle(280,300,100,20));
c.setBounds(newRectangle(100,200,80,30));
d.setBounds(newRectangle(200,200,80,30));
con.add(a);
con.add(b);
con.add(q);
con.add(c);
con.add(d);
con.add(a1);
con.add(b1);
this.setSize(400,400);
tu.setBounds(0,0,getWidth(),getHeight());
z.add(tu);
z.setOpaque(false);
this.getLayeredPane().add(tu,newInteger(Integer.MIN_VALUE));
this.setVisible(true);
c.addActionListener(this);
d.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==d)
{
this.setVisible(false);
if(e.getSource()==c){
StringdriverName="
com.microsoft.sqlserver.jdbc.SQLServerDriver"
;
try{
Class.forName(driverName);
System.out.println("
连接驱动成功"
}catch(ClassNotFoundExceptionb){b.printStackTrace();
};
StringdbURL="
jdbc:
sqlserver:
//localhost:
1433;
DatabaseName=kfglxt"
try{ConnectiondbConn;
StringuserName="
sa"
St