最新版数据库课程设计报告4182865Word文档下载推荐.docx
《最新版数据库课程设计报告4182865Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《最新版数据库课程设计报告4182865Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。
本系统实现对宾馆信息的管理和总体的统计等,营业信息的查看和维护。
操作管理人员可以浏览,查询,添加,删除等宾馆的基本信息等。
本系统基本包含了宾馆管理的主要需求,具有完善细致的功能:
1)系统具有高可靠性、安全性、操作性;
2)模块化结构,具有强大的数据处理功能,可根据业务需要,十分便捷地进行模块增减,灵活地进行系统组合;
3)直观的图形用户界面,面向事务处理。
随心所欲的查询,并全面支持分析和决策的功能。
(二)系统逻辑模型
1.数据流程图
2.数据字典
(1)用户信息表
用户信息表(UsersInfo)用来保存使用该系统的酒店员工的基本信息,表UsersInfo的结构如表1所示。
表1用户信息表(UsersInfo)
编号
字段名称
数据结构
说明
1
UserId
Int
用户编号
2
Name
Varchar(50)
用户姓名
3
Password
密码
4
Gender
性别(0-男,1-女)
5
Email
Email地址
6
Address
通讯地址
7
Telephone
联系电话
8
Department
所在部门
9
Type
用户类型(1-酒店管理员,2-前台服务员
(2)客户信息表
客户信息表(CustomersInfo)用来保存在酒店订房的客户的基本信息,表CustomersInfo的结构如表2所示。
表2客户信息表(CustomersInfo)
CIdentityId
nVarchar(50)
身份证号
CName
客户姓名
CPhone
(3)客房类型表
客房类型表(RoomCategory)用来保存酒店所有客房类型的基本信息,表RoomCategory的结构如表3所示。
表3客房类型表(RoomCategory)
RCategoryId
客房类型编号
类型名称
Area
Float
客房面积
BedNum
配置床位
Price
Money
客房价格
AirCondition
配置空调(0-是,1-否)
TV
配置电视(0-是,1-否)
(4)客房信息表
客房信息表(RoomsInfo)用来保存酒店所有客房的相关信息,表RoomsInfo结构的如表4所示。
表4客房信息表(RoomsInfo)
RoomId
客房号
RPostition
客房位置
Description
描述
(5)客房状态表
客房状态表(RoomStatus)用来保存客房使用情况的基本信息,表RoomStatus结构的如表5所示。
表5客房状态表(RoomStatus)
客房编号
Status
状态(1-空房,2-入住)
(6)客房业务表
客房业务表(RoomOperation)用来保存目前酒店正有客户入住的客房的相关信息,表RoomOperation的结构如表6所示。
表6客房业务表(RoomOperation)
BeginTime
DateTime
入住时间
客户身份证号
Remarks
备注
(7)业务记录表
业务记录表(History)用来保存酒店里所有入住过客户的客房的业务信息,表History的结构如表7所示。
表7业务记录表(History)
EndTime
退房时间
TotalPrice
金额
客户电话
三、系统设计
(一)数据库概念设计
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),
Remarksnvarchar(50)
createtableRoomcategory(
RCategoryIdintNOTNULL,
Namevarchar(50),
Areafloat,
BedNumint,
Pricemoney,
AirConditionint,
TVint
createtableRoomOperation(
RoomIdintNOTNULLprimarykey,
BeginTimedatetime,
Remarksnvarchar(50)
createtableRoomsInfo(
RCategoryvarchar(50),
RPositionvarchar(50),
Descriptionvarchar(50)
createtableRoomStatus(
Statusint
createtableUsersInfo(
UserIdintNOTNULL,
Passwordvarchar(50),
Genderint,
Emailvarchar(50),
Addressvarchar(50),
Telephonevarchar(50),
Departmentvarchar(50),
Typeint
(三)用户界面
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),
宾馆客房管理系统登陆界面"
20),
应用数据库加密技术--安全保护你的信息!
请放心使用!
30),
功能:
管理宾馆客房版权:
本人所有"
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("
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("
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("
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("
lib"
//使用用户输入登录ID和密码的SQLServer验证(S)
//Connectionconn=DriverManager.getConnection("
"
sa"
password"
数据库连接成功!
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().compareTo("
)==0){
boo1=true;
//如果输入的密码等于"
ljh"
if(t[3].getText().compareTo("
321"
)==0){
boo2=true;
}
*/
//如果输入的用户名和密码都正确,则登陆
if(boo1&
&
boo2&
Type==1){
Type=0;
boo1=boo2=true;
newHoteMen(statement,"
普通员工--"
+t[1].getText());
//newStudentManager();
app.setVisible(false);
Type==2){
newHotelManagerMen(statement,"
管理员--"
//newStudentManager();
app.setVisible(false);
//如果单击"
按键,则退出登陆界面
if(source==b[1]){
System.exit(0);
publicstaticvoidmain(Stringargs[]){
newHoteLand();
}
2.客房管理管理页面的设计
客房管理管理页面主要是负责所有客房信息的维护。
其中功能主要