1、数据库课程设计报告4182865(此文档为word格式,下载后您可任意编辑修改!)课 程 设 计 课程名称_ 数据库系统概论 题目名称_ 宾馆管理系统 学生学院_计算机学院 专业班级_ 学 号_ 学生姓名_指导教师_ _2012年 1 月 14 日一、系统定义 1二、需求分析 1(一)系统综合需求 1(二)系统逻辑模型 21.数据流程图 22.数据字典 2三、系统设计 5(一)数据库概念设计 5(二)数据库逻辑设计 5(三)数据库与数据表设计 物理结构设计 6四、详细设计 6(一)建数据库宾馆客户数据库 6(二)建表 7(三)用户界面 81.宾馆客房管理系统登陆界面的设计 82.客房管理管理页
2、面的设计 133.客房经营管理页面的设计 174.客户信息查询页面的设计 205.员工信息管理页面的设计 23五、课程设计总结 28六、参考文献 28一、系统定义随着宾馆酒店业竞争的加剧,宾馆之间客源的争夺越来越激烈,宾馆需要使用更有效的信息化手段,拓展经营空间,降低运营成本,提高管理和决策效率.传统的宾馆酒店计算机管理系统主要包括前台管理系统和后台管理系统两大部分,基本包含了宾馆主要业务部门,初步实现了对顾客服务和进行财务核算所需要的各个功能.但传统的宾馆酒店管理系统基于财务管理为主线的设计理念,无法满足宾馆酒店全面信息化管理的需要. 现代宾馆酒店业迅速发展,新的管理观念与模式层出不穷.宾客
3、客房管理系统亦随着宾馆管理理念的发展而发展.宾馆客房管理系统依照国家星级宾馆标准化业务程序,采用了先进的数据库理论,多媒体技术,软件工程理念等,从基层,中层,高层三个管理者层次为切入点,以成本分析,预测,控制为主线,形成一套上下贯通,操作便捷的酒店系统解决方案,科学地将宾馆各种日常业务完美的结合在一起,为管理及决策提供了强有力的支持.其对客人个性化服务及全面彻底的信息化,使企业电算化管理水平提升到一个新的更高层次.提供大量丰富的基于企业管理经营过程中实际的数据。二、需求分析(一)系统综合需求本系统设计实现的目标是对宾馆的客房管理、客户信息管理和餐厅服务管理功能,前台用java实现对数据的添加,
4、删除,查询等功能,在后台用Sql server作为数据库,其中数据库设计是用PowerDesigner.v11软件设计的。本系统就是利用计算机信息提高了餐馆宾馆的管理水平,主要对系统的操作员权限、菜收银客房、客户等信息管理。系统操作权限管理可以实现对操作员的添加、删除、修改操作,并设置操作员对指定用户进行密码修改。 宾馆的信息量大,数据安全性和保密性要求高。本系统实现对宾馆信息的管理和总体的统计等,营业信息的查看和维护。操作管理人员可以浏览,查询,添加,删除等宾馆的基本信息等。 本系统基本包含了宾馆管理的主要需求,具有完善细致的功能:1) 系统具有高可靠性、安全性、操作性;2) 模块化结构,具
5、有强大的数据处理功能,可根据业务需要,十分便捷地进行模块增减,灵活地进行系统组合;3) 直观的图形用户界面,面向事务处理。随心所欲的查询,并全面支持分析和决策的功能。(二)系统逻辑模型1.数据流程图2.数据字典(1) 用户信息表用户信息表(UsersInfo)用来保存使用该系统的酒店员工的基本信息,表UsersInfo的结构如表1所示。表1 用户信息表(UsersInfo)编 号字 段 名 称数 据 结 构说 明1UserIdInt用户编号2NameVarchar(50)用户姓名3PasswordVarchar(50)密码4GenderInt性别(0男,1女)5EmailVarchar(50)
6、Email地址6AddressVarchar(50)通讯地址7TelephoneVarchar(50)联系电话8DepartmentVarchar(50)所在部门9TypeInt用户类型(1酒店管理员,2前台服务员(2) 客户信息表客户信息表(CustomersInfo)用来保存在酒店订房的客户的基本信息,表CustomersInfo的结构如表2所示。表2 客户信息表(CustomersInfo)编 号字 段 名 称数 据 结 构说 明1CIdentityIdnVarchar(50)身份证号2CNamenVarchar(50)客户姓名3CPhonenVarchar(50)联系电话(3) 客房类
7、型表客房类型表(RoomCategory)用来保存酒店所有客房类型的基本信息,表RoomCategory的结构如表3所示。 表3 客房类型表(RoomCategory)编 号字 段 名 称数 据 结 构说 明1RCategoryIdInt客房类型编号2NamenVarchar(50)类型名称3AreaFloat客房面积4BedNumInt配置床位5PriceMoney客房价格6AirConditionInt配置空调(0是,1否)7TVInt配置电视(0是,1否)(4) 客房信息表客房信息表(RoomsInfo)用来保存酒店所有客房的相关信息,表RoomsInfo结构的如表4所示。表4 客房信息
8、表(RoomsInfo)编 号字 段 名 称数 据 结 构说 明1RoomIdInt客房号2RCategoryIdInt客房类型编号3RPostitionnVarchar(50)客房位置4DescriptionnVarchar(50)描述(5) 客房状态表客房状态表(RoomStatus)用来保存客房使用情况的基本信息,表RoomStatus结构的如表5所示。表5 客房状态表(RoomStatus)编 号字 段 名 称数 据 结 构说 明1RoomIdInt客房编号2StatusInt状态(1空房,2入住)(6) 客房业务表客房业务表(RoomOperation)用来保存目前酒店正有客户入住的
9、客房的相关信息,表RoomOperation的结构如表6所示。 表6 客房业务表(RoomOperation)编 号字 段 名 称数 据 结 构说 明1RoomIdInt客房编号2BeginTimeDateTime入住时间3CIdentityIdnVarchar(50)客户身份证号4RemarksnVarchar(50)备注(7) 业务记录表业务记录表(History)用来保存酒店里所有入住过客户的客房的业务信息,表History的结构如表7所示。 表7 业务记录表(History)编 号字 段 名 称数 据 结 构说 明1BeginTimeDateTime入住时间2EndTimeDateTi
10、me退房时间3RoomIdInt客房编号4TotalPriceMoney金额5CIdentityIdnVarchar(50)客户身份证号6CNamenVarchar(50)客户姓名7CPhonenVarchar(50)客户电话8RemarksnVarchar(50)备注三、系统设计(一)数据库概念设计E-R图的分析工作通常采用自底向下的设计方法,首先对局部视图进行分析设计,然后再实现视图集成。宾馆客房管理系统一般包括如下几个表:用户信息(UsersInfo)、客户信息(CustomersInfo)、客房类型(RoomCategory)、客房信息(RoomsInfo)、客房状态(RoomStat
11、us)、客房业务(RoomOperation)、业务记录(History)。他们之间关系如图1所示。图1 宾馆客房管理系统E-R图(二)数据库逻辑设计将数据库的概念模型转换为关系模型:实体转换成的关系模式有:用户信息(编号,姓名,密码,性别,Email地址,通讯地址,联系电话,所在部门,用户类型)(用来保存使用该系统的酒店员工的基本信息)客户(身份证号,客户姓名,联系电话)客房(客房类型编号,类型名称,客房面积,配置床位,客房价格,是否配置空调,是否配置电视,客房号,客房类型编号,客房位置,描述客房编号,状态)业务(入住时间,退房时间,客房编号,金额,客户身份证号,客户姓名,客户电话,备注)(
12、三)数据库与数据表设计 物理结构设计在SQL数据库中需要建立3个数据表:员工信息数据表、房间信息数据表、客户信息数据表。员工信息数据表定义房间信息数据表客户信息数据表四、详细设计(一)建数据库宾馆客户数据库IF EXISTS(SELECT * FROM sysdatabases WHERE name=宾馆客户数据库) drop database 宾馆客户数据库GOCREATE DATABASE宾馆客户数据库ON PRIMARY(NAME=宾馆客户数据库,FILENAME=C: 宾馆客户数据库_data.mdf,SIZE=4MB,MAXSIZE=6MB,FILEGROWTH=2MB)LOG ON
13、 (NAME =宾馆客户数据库_log, FILENAME =C: 宾馆客户数据库.ldf, SIZE=1MB,MAXSIZE=25MB,FILEGROWTH=10%)(二)建表create table CustomersInfo(CIdentityId nvarchar(50) NOT NULL primary key,CName nvarchar(50),CPhone nvarchar(50),)GOcreate table History(BeginTime datetime NOT NULL,EndTime datetime,RoomId int NOT NULL,TotaPrice
14、money,CIdentityId nvarchar(50),CName nvarchar(50),CPhone nvarchar(50),Remarks nvarchar(50)GOcreate table Roomcategory(RCategoryId int NOT NULL,Name varchar(50),Area float,BedNum int,Price money,AirCondition int,TV int)GOcreate table RoomOperation (RoomId int NOT NULL primary key,BeginTime datetime,C
15、IdentityId nvarchar(50),Remarks nvarchar(50) )GOcreate table RoomsInfo (RoomId int NOT NULL primary key,RCategory varchar(50),RPosition varchar(50),Description varchar(50)GOcreate table RoomStatus (RoomId int NOT NULL primary key,Status int)GOcreate table UsersInfo (UserId int NOT NULL,Name varchar(
16、50),Password varchar(50),Gender int,Email varchar(50),Address varchar(50),Telephone varchar(50),Department varchar(50),Type int)GO(三)用户界面1.宾馆客房管理系统登陆界面的设计系统共分两类用户:酒店管理员和前台服务员当用户进入宾馆客房管理系统登陆界面后,首先需要进行身份验证,系统在验证通过后,将使用UserType变量记录其用户类型,并根据用户类型确定用户的使用权限。宾馆客房管理系统登陆界面如图2所示。现在给出登陆界面的主要代码如下:import .URL.*;i
17、mport javax.swing.*;import javax.swing.ImageIcon;import javax.swing.JLabel;import java.sql.*;import java.awt.Container;import java.awt.GridLayout;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing.JPasswordField;import jav
18、a.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.*;public class HoteLand extends JFrame implements ActionListener private boolean boo1=false,boo2=false; int Type=0; public JTextField t =new JTextField(用户名:,8),new JTextField(27), new JTextField(密码:,8),new JPasswordField(27
19、), new JTextField(宾馆客房管理系统登陆界面-(计算机1006梁嘉宏),36), new JTextField(宾馆客房管理系统登陆界面,20), new JTextField(应用数据库加密技术-安全保护你的信息!请放心使用!,30), new JTextField(功能:管理宾馆客房 版权:本人所有 ,25); public JButton b=new JButton(登陆),new JButton(退出); ImageIcon ic=new ImageIcon(HoteLand.class.getResource(dipaihotel.jpg); ImageIcon ic
20、=new ImageIcon(me.jpg); .URL imgURL = HoteLand.class.getResource(me.jpg); ImageIcon ic = new ImageIcon(imgURL); ImageIcon ic=new ImageIcon(HoteLand.class.getResource(me.jpg); JFrame app; Statement statement; 构造方法 public HoteLand() app= new JFrame(-宾馆客房管理系统登陆界面-); app.setDefaultCloseOperation(JFrame.
21、EXIT_ON_CLOSE); app.setSize(); app.setResizable(false); Container c=app.getContentPane(); c.setLayout(new FlowLayout(); JLabel aLabel=new JLabel(ic,JLabel.LEFT); t0.setFont(new Font(TimesRoman,Font.BOLD,13); t0.setForeground(Color.red); t0.setEditable(false); t2.setFont(new Font(TimesRoman,Font.BOLD
22、,13); t2.setForeground(Color.red); t2.setEditable(false); for(int i=0;i4;i+) c.add(ti); c.add(b0); c.add(b1); for(int j=4;j7;j+) c.add(tj); tj.setFont(new Font(TimesRoman,Font.BOLD,13); tj.setForeground(Color.blue); tj.setEditable(false); c.add(aLabel); t0.addActionListener(this); t2.addActionListen
23、er(this); b0.addActionListener(this); b1.addActionListener(this); app.setVisible(true); 消息响应方法 public void actionPerformed(ActionEvent e) JButton source=(JButton)e.getSource(); 如果单击登陆按键,执行StudentManager程序,该部分应用到数据库加密技术 if(source=b0) try 基于SQL Server 2000 的 JDBC-ODBC 桥数据库连接(先要创建一个数据源lib) Class.forNam
24、e(sun.jdbc.odbc.JdbcOdbcDriver); System.out.println(数据库驱动程序注册成功!); 使用网络登录ID的Windows NT 验证(W) Connection conn=DriverManager.getConnection(jdbc:odbc:宾馆客户数据库); Connection conn=DriverManager.getConnection(jdbc:odbc:lib); 使用用户输入登录ID和密码的SQL Server 验证(S) Connection conn=DriverManager.getConnection(jdbc:odb
25、c:lib,sa,password); System.out.println(数据库连接成功!); statement=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); String s1=t1.getText(); String s2=t3.getText(); ResultSet resultset=statement.executeQuery(select * from UsersInfo where Name=+s1+and Password=+s2+); result
26、set.next(); Type=resultset.getInt(Type); String a1=resultset.getString(Name); resultset.beforeFirst(); String a2=resultset.getString(Password); if(resultset!=null) boo1=boo2=true; resultset.close(); catch(Exception e1) JOptionPane.showMessageDialog(this,用户名和密码不正确!,警告,JOptionPane.WARNING_MESSAGE); e1
27、.printStackTrace(); 该方法只是一个简单的加密技术, * 如果输入的用户名等于梁嘉宏 if(t1.getText()pareTo(梁嘉宏) =0) boo1=true; 如果输入的密码等于ljh if(t3.getText()pareTo(321)=0) boo2=true; * 如果输入的用户名和密码都正确,则登陆 if(boo1&boo2&Type=1) Type=0; boo1=boo2=true; new HoteMen(statement,普通员工-+t1.getText(); new StudentManager(); app.setVisible(false);
28、 if(boo1&boo2&Type=2) Type=0; boo1=boo2=true; new HotelManagerMen(statement,管理员-+t1.getText(); new StudentManager(); app.setVisible(false); 如果单击退出按键,则退出登陆界面 if(source=b1) System.exit(0); public static void main(String args) new HoteLand(); 2.客房管理管理页面的设计客房管理管理页面主要是负责所有客房信息的维护。其中功能主要包括:录入客房信息,修改客房信息,查询客房信息,删除客房信息。他们的界面如图所示。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1