数据库课程设计报告4182865.docx
- 文档编号:10176944
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:34
- 大小:362.83KB
数据库课程设计报告4182865.docx
《数据库课程设计报告4182865.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告4182865.docx(34页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告4182865
(此文档为word格式,下载后您可任意编辑修改!
)
课程设计
课程名称__数据库系统概论
题目名称__宾馆管理系统
学生学院_____计算机学院
专业班级_
学号___
学生姓名________________
指导教师______________
2012年1月14日
目录
一、系统定义1
二、需求分析1
(一)系统综合需求1
(二)系统逻辑模型2
1.数据流程图2
2.数据字典2
三、系统设计5
(一)数据库概念设计5
(二)数据库逻辑设计5
(三)数据库与数据表设计——物理结构设计6
四、详细设计6
(一)建数据库——宾馆客户数据库6
(二)建表7
(三)用户界面8
1.宾馆客房管理系统登陆界面的设计8
2.客房管理管理页面的设计13
3.客房经营管理页面的设计17
4.客户信息查询页面的设计20
5.员工信息管理页面的设计23
五、课程设计总结28
六、参考文献28
一、系统定义
随着宾馆酒店业竞争的加剧,宾馆之间客源的争夺越来越激烈,宾馆需要使用更有效的信息化手段,拓展经营空间,降低运营成本,提高管理和决策效率.传统的宾馆酒店计算机管理系统主要包括前台管理系统和后台管理系统两大部分,基本包含了宾馆主要业务部门,初步实现了对顾客服务和进行财务核算所需要的各个功能.但传统的宾馆酒店管理系统基于财务管理为主线的设计理念,无法满足宾馆酒店全面信息化管理的需要.
现代宾馆酒店业迅速发展,新的管理观念与模式层出不穷.宾客客房管理系统亦随着宾馆管理理念的发展而发展.宾馆客房管理系统依照国家星级宾馆标准化业务程序,采用了先进的数据库理论,多媒体技术,软件工程理念等,从基层,中层,高层三个管理者层次为切入点,以成本分析,预测,控制为主线,形成一套上下贯通,操作便捷的酒店系统解决方案,科学地将宾馆各种日常业务完美的结合在一起,为管理及决策提供了强有力的支持.其对客人个性化服务及全面彻底的信息化,使企业电算化管理水平提升到一个新的更高层次.提供大量丰富的基于企业管理经营过程中实际的数据。
二、需求分析
(一)系统综合需求
本系统设计实现的目标是对宾馆的客房管理、客户信息管理和餐厅服务管理功能,前台用java实现对数据的添加,删除,查询等功能,在后台用Sqlserver作为数据库,其中数据库设计是用PowerDesigner.v11软件设计的。
本系统就是利用计算机信息提高了餐馆宾馆的管理水平,主要对系统的操作员权限、菜收银客房、客户等信息管理。
系统操作权限管理可以实现对操作员的添加、删除、修改操作,并设置操作员对指定用户进行密码修改。
宾馆的信息量大,数据安全性和保密性要求高。
本系统实现对宾馆信息的管理和总体的统计等,营业信息的查看和维护。
操作管理人员可以浏览,查询,添加,删除等宾馆的基本信息等。
本系统基本包含了宾馆管理的主要需求,具有完善细致的功能:
1)系统具有高可靠性、安全性、操作性;
2)模块化结构,具有强大的数据处理功能,可根据业务需要,十分便捷地进行模块增减,灵活地进行系统组合;
3)直观的图形用户界面,面向事务处理。
随心所欲的查询,并全面支持分析和决策的功能。
(二)系统逻辑模型
1.数据流程图
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图的分析工作通常采用自底向下的设计方法,首先对局部视图进行分析设计,然后再实现视图集成。
宾馆客房管理系统一般包括如下几个表:
用户信息(UsersInfo)、客户信息(CustomersInfo)、客房类型(RoomCategory)、客房信息(RoomsInfo)、客房状态(RoomStatus)、客房业务(RoomOperation)、业务记录(History)。
他们之间关系如图1所示。
图1宾馆客房管理系统E-R图
(二)数据库逻辑设计
将数据库的概念模型转换为关系模型:
实体转换成的关系模式有:
用户信息(编号,姓名,密码,性别,Email地址,通讯地址,联系电话,所在部门,用户类型)(用来保存使用该系统的酒店员工的基本信息)
客户(身份证号,客户姓名,联系电话)
客房(客房类型编号,类型名称,客房面积,配置床位,客房价格,是否配置空调,是否配置电视,客房号,客房类型编号,客房位置,描述客房编号,状态)
业务(入住时间,退房时间,客房编号,金额,客户身份证号,客户姓名,客户电话,备注)
(三)数据库与数据表设计——物理结构设计
在SQL数据库中需要建立3个数据表:
员工信息数据表、房间信息数据表、客户信息数据表。
①员工信息数据表定义
②房间信息数据表
③客户信息数据表
四、详细设计
(一)建数据库——宾馆客户数据库
IFEXISTS(SELECT*FROMsysdatabasesWHEREname='宾馆客户数据库')
dropdatabase宾馆客户数据库
GO
CREATEDATABASE宾馆客户数据库
ONPRIMARY(
NAME=宾馆客户数据库,
FILENAME=C:
\宾馆客户数据库_data.mdf',
SIZE=4MB,
MAXSIZE=6MB,
FILEGROWTH=2MB
)
LOGON(NAME='宾馆客户数据库_log',
FILENAME='C:
\宾馆客户数据库.ldf',
SIZE=1MB,MAXSIZE=25MB,FILEGROWTH=10%)
(二)建表
createtableCustomersInfo(
CIdentityIdnvarchar(50)NOTNULLprimarykey,
CNamenvarchar(50),
CPhonenvarchar(50),
)GO
createtableHistory(
BeginTimedatetimeNOTNULL,
EndTimedatetime,
RoomIdintNOTNULL,
TotaPricemoney,
CIdentityIdnvarchar(50),
CNamenvarchar(50),
CPhonenvarchar(50),
Remarksnvarchar(50)
)GO
createtableRoomcategory(
RCategoryIdintNOTNULL,
Namevarchar(50),
Areafloat,
BedNumint,
Pricemoney,
AirConditionint,
TVint
)GO
createtableRoomOperation(
RoomIdintNOTNULLprimarykey,
BeginTimedatetime,
CIdentityIdnvarchar(50),
Remarksnvarchar(50)
)GO
createtableRoomsInfo(
RoomIdintNOTNULLprimarykey,
RCategoryvarchar(50),
RPositionvarchar(50),
Descriptionvarchar(50)
)GO
createtableRoomStatus(
RoomIdintNOTNULLprimarykey,
Statusint
)GO
createtableUsersInfo(
UserIdintNOTNULL,
Namevarchar(50),
Passwordvarchar(50),
Genderint,
Emailvarchar(50),
Addressvarchar(50),
Telephonevarchar(50),
Departmentvarchar(50),
Typeint
)GO
(三)用户界面
1.宾馆客房管理系统登陆界面的设计
系统共分两类用户:
酒店管理员和前台服务员
当用户进入宾馆客房管理系统登陆界面后,首先需要进行身份验证,系统在验证通过后,将使用UserType变量记录其用户类型,并根据用户类型确定用户的使用权限。
宾馆客房管理系统登陆界面如图2所示。
现在给出登陆界面的主要代码如下:
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("宾馆客房管理系统登陆界面--(计算机1006梁嘉宏)",36),
newJTextField("宾馆客房管理系统登陆界面",20),
newJTextField("应用数据库加密技术--安全保护你的信息!
请放心使用!
",30),
newJTextField("功能:
管理宾馆客房版权:
本人所有",25)};
publicJButton[]b={newJButton("登陆"),newJButton("退出")};
ImageIconic=newImageIcon(HoteLand.class.getResource("dipaihotel.jpg"));
ImageIconic=newImageIcon("me.jpg");
.URLimgURL=HoteLand.class.getResource("me.jpg");
ImageIconic=newImageIcon(imgURL);
ImageIconic=newImageIcon(HoteLand.class.getResource("me.jpg"));
JFrameapp;
Statementstatement;
构造方法
publicHoteLand(){
app=newJFrame("--宾馆客房管理系统登陆界面--");
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize();
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");
System.out.println("数据库驱动程序注册成功!
");
使用网络登录ID的WindowsNT验证(W)
Connectionconn=DriverManager.getConnection("jdbc:
odbc:
宾馆客户数据库");
Connectionconn=DriverManager.getConnection("jdbc:
odbc:
lib");
使用用户输入登录ID和密码的SQLServer验证(S)
Connectionconn=DriverManager.getConnection("jdbc:
odbc:
lib","sa","password");
System.out.println("数据库连接成功!
");
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");
Stringa1=resultset.getString("Name");
resultset.beforeFirst();
Stringa2=resultset.getString("Password");
if(resultset!
=null){
boo1=boo2=true;
resultset.close();
}
}
catch(Exceptione1){
JOptionPane.showMessageDialog(this,"用户名和密码不正确!
","警告",JOptionPane.WARNING_MESSAGE);
e1.printStackTrace();
}
该方法只是一个简单的加密技术,
*
如果输入的用户名等于"梁嘉宏"
if(t[1].getText()pareTo("梁嘉宏")==0){
boo1=true;
}
如果输入的密码等于"ljh"
if(t[3].getText()pareTo("321")==0){
boo2=true;
}
*
如果输入的用户名和密码都正确,则登陆
if(boo1&&boo2&&Type==1){
Type=0;
boo1=boo2=true;
newHoteMen(statement,"普通员工--"+t[1].getText());
newStudentManager();
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.客房管理管理页面的设计
客房管理管理页面主要是负责所有客房信息的维护。
其中功能主要包括:
录入客房信息,修改客房信息,查询客房信息,删除客房信息。
他们的界面如图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 4182865
![提示](https://static.bdocx.com/images/bang_tan.gif)