JAVA宾馆客房管理系统报告.docx
- 文档编号:28153836
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:39
- 大小:482.73KB
JAVA宾馆客房管理系统报告.docx
《JAVA宾馆客房管理系统报告.docx》由会员分享,可在线阅读,更多相关《JAVA宾馆客房管理系统报告.docx(39页珍藏版)》请在冰豆网上搜索。
JAVA宾馆客房管理系统报告
成绩
评阅人
评阅日期
计算机科学与技术系
数据库课程设计
设计题目:
宾馆客房管理系统
班级:
计算机06-1
学号:
06034050126
姓名:
庞景中
指导老师:
朱兴统
2008年12月25日
课程设计题目:
宾馆客房管理系统
一、选题的依据及课题的意义
随着宾馆酒店业竞争的加剧,宾馆之间客源的争夺越来越激烈,宾馆需要使用更有效的信息化手段,拓展经营空间,降低运营成本,提高管理和决策效率.传统的宾馆酒店计算机管理系统主要包括前台管理系统和后台管理系统两大部分,基本包含了宾馆主要业务部门,初步实现了对顾客服务和进行财务核算所需要的各个功能.但传统的宾馆酒店管理系统基于财务管理为主线的设计理念,无法满足宾馆酒店全面信息化管理的需要.
现代宾馆酒店业迅速发展,新的管理观念与模式层出不穷.宾客客房管理系统亦随着宾馆管理理念的发展而发展.宾馆客房管理系统依照国家星级宾馆标准化业务程序,采用了先进的数据库理论,多媒体技术,软件工程理念等,从基层,中层,高层三个管理者层次为切入点,以成本分析,预测,控制为主线,形成一套上下贯通,操作便捷的酒店系统解决方案,科学地将宾馆各种日常业务完美的结合在一起,为管理及决策提供了强有力的支持.其对客人个性化服务及全面彻底的信息化,使企业电算化管理水平提升到一个新的更高层次.提供大量丰富的基于企业管理经营过程中实际的数据。
二、系统需求分析
本系统设计实现的目标是对宾馆的客房管理、客户信息管理和餐厅服务管理功能,前台用java实现对数据的添加,删除,查询等功能,在后台用Sqlserver作为数据库,其中数据库设计是用PowerDesigner.v11软件设计的。
本系统就是利用计算机信息提高了餐馆宾馆的管理水平,主要对系统的操作员权限、菜收银客房、客户等信息管理。
系统操作权限管理可以实现对操作员的添加、删除、修改操作,并设置操作员对指定用户进行密码修改。
宾馆的信息量大,数据安全性和保密性要求高。
本系统实现对宾馆信息的管理和总体的统计等,营业信息的查看和维护。
操作管理人员可以浏览,查询,添加,删除等宾馆的基本信息等。
本系统基本包含了宾馆管理的主要需求,具有完善细致的功能:
1)系统具有高可靠性、安全性、操作性;
2)模块化结构,具有强大的数据处理功能,可根据业务需要,十分便捷地进行模块增减,灵活地进行系统组合;
3)直观的图形用户界面,面向事务处理。
随心所欲的查询,并全面支持分析和决策的功能。
三、研究内容及实验方案
1)研究内容
本系统根据宾馆的业务情况该系统可分客房信息管理、客房经营管理、客户信息查询、员工信息管理4个功能模块。
2)实验方案
根据课题的具体要求,可以将宾馆客房管理系统大体结构图示为如下:
整个系统分4个模块:
1.客房信息管理:
录入房间信息、修改房间信息、查询房间信息,删除房间信息.
2.客房经营管理:
客房使用情况、宾馆订房、客房预订、宾馆退房.
3.客户信息查询:
客户信息查询.
4.员工信息管理:
员工查询、员工添加、员工删除。
四、数据库设计
1.E-R图的分析:
E-R图的分析工作通常采用自底向下的设计方法,首先对局部视图进行分析设计,然后再实现视图集成。
宾馆客房管理系统一般包括如下几个表:
用户信息(UsersInfo)、客户信息(CustomersInfo)、客房类型(RoomCategory)、客房信息(RoomsInfo)、客房状态(RoomStatus)、客房业务(RoomOperation)、业务记录(History)。
他们之间关系如图1所示。
图1宾馆客房管理系统E-R图
2.创建表
(1)用户信息表
用户信息表(UsersInfo)用来保存使用该系统的酒店员工的基本信息,表UsersInfo的结构如表1所示。
表1用户信息表(UsersInfo)
编号
字段名称
数据结构
说明
1
UserId
Int
用户编号
2
Name
Varchar(50)
用户姓名
3
Password
Varchar(50)
密码
4
Gender
Int
性别(0-男,1-女)
5
Varchar(50)
Email地址
6
Address
Varchar(50)
通讯地址
7
Telephone
Varchar(50)
联系电话
8
Department
Varchar(50)
所在部门
9
Type
Int
用户类型(1-酒店管理员,2-前台服务员
(2)客户信息表
客户信息表(CustomersInfo)用来保存在酒店订房的客户的基本信息,表CustomersInfo的结构如表2所示。
表2客户信息表(CustomersInfo)
编号
字段名称
数据结构
说明
1
CIdentityId
nVarchar(50)
身份证号
2
CName
nVarchar(50)
客户姓名
3
CPhone
nVarchar(50)
联系电话
(3)客房类型表
客房类型表(RoomCategory)用来保存酒店所有客房类型的基本信息,表RoomCategory的结构如表3所示。
表3客房类型表(RoomCategory)
编号
字段名称
数据结构
说明
1
RCategoryId
Int
客房类型编号
2
Name
nVarchar(50)
类型名称
3
Area
Float
客房面积
4
BedNum
Int
配置床位
5
Price
Money
客房价格
6
AirCondition
Int
配置空调(0-是,1-否)
7
TV
Int
配置电视(0-是,1-否)
(4)客房信息表
客房信息表(RoomsInfo)用来保存酒店所有客房的相关信息,表RoomsInfo结构的如表4所示。
表4客房信息表(RoomsInfo)
编号
字段名称
数据结构
说明
1
RoomId
Int
客房号
2
RCategoryId
Int
客房类型编号
3
RPostition
nVarchar(50)
客房位置
4
Description
nVarchar(50)
描述
(5)客房状态表
客房状态表(RoomStatus)用来保存客房使用情况的基本信息,表RoomStatus结构的如表5所示。
表5客房状态表(RoomStatus)
编号
字段名称
数据结构
说明
1
RoomId
Int
客房编号
2
Status
Int
状态(1-空房,2-入住)
(6)客房业务表
客房业务表(RoomOperation)用来保存目前酒店正有客户入住的客房的相关信息,表RoomOperation的结构如表6所示。
表6客房业务表(RoomOperation)
编号
字段名称
数据结构
说明
1
RoomId
Int
客房编号
2
BeginTime
DateTime
入住时间
3
CIdentityId
nVarchar(50)
客户身份证号
4
Remarks
nVarchar(50)
备注
(7)业务记录表
业务记录表(History)用来保存酒店里所有入住过客户的客房的业务信息,表History的结构如表7所示。
表7业务记录表(History)
编号
字段名称
数据结构
说明
1
BeginTime
DateTime
入住时间
2
EndTime
DateTime
退房时间
3
RoomId
Int
客房编号
4
TotalPrice
Money
金额
5
CIdentityId
nVarchar(50)
客户身份证号
6
CName
nVarchar(50)
客户姓名
7
CPhone
nVarchar(50)
客户电话
8
Remarks
nVarchar(50)
备注
根据上面的E-R图和各表属性用PowerDesigner.v11软件可以很轻松地制作也一个宾馆客房数据库。
五.页面设计及相关代码分析
宾馆客房管理系统的页面由五部分组成:
●宾馆客房管理系统登陆界面的设计
●客房管理管理页面的设计
●客房经营管理页面的设计
●客户信息查询页面的设计
●员工信息管理页面的设计
1.宾馆客房管理系统登陆界面的设计
系统共分两类用户:
酒店管理员和前台服务员
当用户进入宾馆客房管理系统登陆界面后,首先需要进行身份验证,系统在验证通过后,将使用UserType变量记录其用户类型,并根据用户类型确定用户的使用权限。
宾馆客房管理系统登陆界面如图2所示。
现在给出登陆界面的主要代码如下:
/**@简介:
宾馆客房管理系统登陆界面,应用数据库加密技术
*@作者:
庞景中
*@功能:
管理宾馆客房
*@版权:
本人所有
*@版本:
HoteLand1.0
*@时间:
2008.11.13
*@文件名:
HoteLand.java
*@环境:
WindowsxpJDK6.0
*/
import.URL.*;
importjavax.swing.*;
importjavax.swing.ImageIcon;
importjavax.swing.JLabel;
importjava.sql.*;
importjava.awt.Container;
importjava.awt.GridLayout;
importjava.awt.FlowLayout;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JTextField;
importjavax.swing.JPasswordField;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.*;
publicclassHoteLandextendsJFrameimplementsActionListener{
privatebooleanboo1=false,boo2=false;
intType=0;
publicJTextField[]t={newJTextField("用户名:
",8),newJTextField(27),
newJTextField("密码:
",8),newJPasswordField(27),
newJTextField("宾馆客房管理系统登陆界面--(组长:
庞景中队员:
陈自发陆钧洋)",36),
newJTextField("后台技术:
应用数据库加密技术--安全保护你的信息!
请放心使用!
",36),
newJTextField("功能:
管理宾馆客房版权:
本人所有时间:
2008.12.7",36)};
publicJButton[]b={newJButton("登陆"),newJButton("退出")};
ImageIconic=newImageIcon(HoteLand.class.getResource("/迪拜七星级酒店.jpg"));
JFrameapp;
Statementstatement;
//构造方法
publicHoteLand(){
app=newJFrame("--宾馆客房管理系统登陆界面--");
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(438,583);
app.setResizable(false);
Containerc=app.getContentPane();
c.setLayout(newFlowLayout());
JLabelaLabel=newJLabel(ic,JLabel.LEFT);
t[0].setFont(newFont("TimesRoman",Font.BOLD,13));
t[0].setForeground(Color.red);
t[0].setEditable(false);
t[2].setFont(newFont("TimesRoman",Font.BOLD,13));
t[2].setForeground(Color.red);
t[2].setEditable(false);
for(inti=0;i<4;i++)
c.add(t[i]);
c.add(b[0]);
c.add(b[1]);
for(intj=4;j<7;j++)
{
c.add(t[j]);
t[j].setFont(newFont("TimesRoman",Font.BOLD,13));
t[j].setForeground(Color.blue);
t[j].setEditable(false);
}
c.add(aLabel);
t[0].addActionListener(this);
t[2].addActionListener(this);
b[0].addActionListener(this);
b[1].addActionListener(this);
app.setVisible(true);
}
//消息响应方法
publicvoidactionPerformed(ActionEvente){
JButtonsource=(JButton)e.getSource();
//如果单击"登陆"按键,执行StudentManager程序,该部分应用到数据库加密技术
if(source==b[0]){
try{
//基于SQLServer2000的JDBC-ODBC桥数据库连接(先要创建一个数据源lib)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//使用网络登录ID的WindowsNT验证(W)
Connectionconn=DriverManager.getConnection("jdbc:
odbc:
宾馆客户数据库");statement=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
Strings1=t[1].getText();
Strings2=t[3].getText();
ResultSetresultset=statement.executeQuery("select*fromUsersInfowhereName='"+s1+"'andPassword='"+s2+"'");
resultset.next();
Type=resultset.getInt("Type");
if(resultset!
=null){
boo1=boo2=true;
resultset.close();
}
}
catch(Exceptione1){
JOptionPane.showMessageDialog(this,"用户名和密码不正确!
","警告",JOptionPane.WARNING_MESSAGE);
}
//如果输入的用户名和密码都正确,则登陆
if(boo1&&boo2&&Type==1){
Type=0;
boo1=boo2=true;
newHoteMen(statement,"普通员工--"+t[1].getText());
app.setVisible(false);
}
if(boo1&&boo2&&Type==2){
Type=0;
boo1=boo2=true;
newHotelManagerMen(statement,"管理员--"+t[1].getText());
//newStudentManager();
app.setVisible(false);
}
}
//如果单击"退出"按键,则退出登陆界面
if(source==b[1]){
System.exit(0);
}
}
publicstaticvoidmain(Stringargs[]){
newHoteLand();
}
}
2.客房管理管理页面的设计
客房管理管理页面主要是负责所有客房信息的维护。
其中功能主要包括:
录入客房信息,修改客房信息,查询客房信息,删除客房信息。
他们的界面如3图所示。
图3客房管理管理页面
现在给出客房管理界面的主要代码如下:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
importjava.sql.*;
publicclassAddRoomsextendsJPanelimplementsActionListener
{
Hashtable基本信息表=null;
JTextField房间号,房间位置;
JTextArea描述;
JButton录入,重置;
Choice房间类型;
Statementstatement=null;
JLabel添加客房信息=null;
publicAddRooms(Statementstatement)
{
this.statement=statement;
房间号=newJTextField(10);
房间位置=newJTextField(10);
描述=newJTextArea(7,10);
录入=newJButton("录入");
重置=newJButton("重置");
录入.addActionListener(this);
重置.addActionListener(this);
Boxbox0=Box.createHorizontalBox();
添加客房信息=newJLabel("--添加客房信息--",JLabel.CENTER);
添加客房信息.setFont(newFont("TimesRoman",Font.BOLD,25));
添加客房信息.setForeground(Color.red);
box0.add(添加客房信息);
Boxbox1=Box.createHorizontalBox();
box1.add(newJLabel("房间号:
",JLabel.CENTER));
box1.add(房间号);
房间类型=newChoice();
房间类型.add("普通单人间");
房间类型.add("普通双人间");
房间类型.add("vip单人间");
房间类型.add("vip双人间");
房间类型.add("豪华贵宾间");
房间类型.add("总统套间");
Boxbox2=Box.createHorizontalBox();
box2.add(newJLabel("房间类型:
",JLabel.CENTER));
box2.add(房间类型);
Boxbox3=Box.createHorizontalBox();
box3.add(newJLabel("房间位置:
",JLabel.CENTER));
box3.add(房间位置);
Boxbox4=Box.createHorizontalBox();
box4.add(newJLabel("单价:
",JLabel.CENTER));
box4.add(newJScrollPane(描述),BorderLayout.CENTER);
BoxboxH=Box.createVerticalBox();
boxH.add(box0);
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box4);
boxH.add(Box.createVerticalGlue());
JPanelpCenter=newJPanel();
pCenter.add(boxH);
setLayout(newBorderLayout());
add(pCenter,BorderLayout.CENTER);
JPanelpSouth=newJPanel();
pSouth.add(录入);
pSouth.add(重置);
add(pSouth,BorderLayout.SOUTH);
validate();
}
publicvoidactionPerformed(ActionEvente)
{
ResultSetresultset=null;
booleanboo=false;
if(e.getSource()==录入)
{
intnumber=0;
try{
number=Integer.parseInt(房间号.getText().toString());
boo=true;
}
catch(Exceptione1){
boo=false;
}
if(boo&&(number>0))
{
try{
resultset=statement.executeQuery("use宾馆客户数据库;select*fromRoomsInfowhereRoomId='"+number+"'");
try{
resultset.next();
resultset.getInt("RoomId");
Stringwarning="该客房信息已存在,请到修改页面修改!
";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
}
catch(Exceptione1){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 宾馆 客房 管理 系统 报告