基于某JAVA的客房管理系统设计有源代码+大数据库.docx

上传人:b****0 文档编号:9757916 上传时间:2023-05-21 格式:DOCX 页数:27 大小:1.36MB
下载 相关 举报
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第1页
第1页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第2页
第2页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第3页
第3页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第4页
第4页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第5页
第5页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第6页
第6页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第7页
第7页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第8页
第8页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第9页
第9页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第10页
第10页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第11页
第11页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第12页
第12页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第13页
第13页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第14页
第14页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第15页
第15页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第16页
第16页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第17页
第17页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第18页
第18页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第19页
第19页 / 共27页
基于某JAVA的客房管理系统设计有源代码+大数据库.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于某JAVA的客房管理系统设计有源代码+大数据库.docx

《基于某JAVA的客房管理系统设计有源代码+大数据库.docx》由会员分享,可在线阅读,更多相关《基于某JAVA的客房管理系统设计有源代码+大数据库.docx(27页珍藏版)》请在冰点文库上搜索。

基于某JAVA的客房管理系统设计有源代码+大数据库.docx

基于某JAVA的客房管理系统设计有源代码+大数据库

 

计算机软件学专业

课程设计报告书

课程名称    SQLserver2000        

课程设计题目    客房管理系统         

 

1概述

1.1背景

客房管理是旅店管理事务中的一项重要工作,在管理过程中涉及到大量的数据处理,传统的人工管理已经无法完成胜任。

相关数据的处理带来了更大的工作量。

本系统采用目前比较流行的JDBC-ODBC数据访问技术,成功地将面向对象的程序设计思想应用到数据库应用程序设计中。

1.2开发与运行环境

本客房管理系统的开发与运行环境如下:

开发环境:

Eclipse3.1

开发工具:

JAVA1.5

数据库管理系统:

SQLServer2000

运行环境:

Windows2000/XP/2003/Vista

使用说明:

用户自己附加数据库,并且在控制面板下的数据工具中的数据源(ODBC),在用户DSN下添加名为“客房管理”,驱动程序为SQL-Server。

并且安装了JAVA虚拟机,该程序即可使用。

2需求分析

客房资管理系统涉及到:

客人信息、客房信息、入住信息、历史信息等多种数据信息。

客房管理系统的用户包括系统管理员。

系统管理员负责整理工作,如各种基本信息的添加、删除和简单的结账计算等操作。

本系统的主要功能包括:

客人信息管理:

客人信息数据的添加、删除、结账计算。

数据查询:

查看客人信息数据,查看客房信息数据。

数据统计:

统计一段时间内的客房情况和月收入等基本统计。

3系统设计

3.1系统模块设计

根据系统功能分析和一些旅店客房管理的特点,经过模块化的分析得到如下图所示的系统功能模块结构图。

客房管理

登记功能

统计功能

查询功能

已入住客房查寻

空房查询

按名字查询客人信息

按客人编号查询客人信息

添加客人信息

删除客人信息

统计入住情况

统计入住率

统计收入

安全管理模块

用户名和密码登陆

 

 

系统功能模块结构图

 

3.2数据库设计

3.2.1数据流图

顶层数据流图

 

第0层数据流图

 

3.2.2数据字典

根据系统功能模块结构图及典型旅店客房管理系统的需求,总结出来如下的数据字典:

(1)数据项说明

数据项名称

含义说明

类型

长度

记录编号

惟一标识一条记录

bigint

8

客房编号

惟一标识一间客房

varchar

10

离店时间

标识离店时间

datetime

8

金额

标识所收金额

money

8

类别

标识客房类别

smallint

2

名称

标识客房类别名称

varchar

20

价格

标识客房价格

money

8

(2)数据流说明

数据流名称

含义

来源

去向

组成

登陆

管理员进入系统操作

客房管理系统

管理员端

编号+密码

查询已住房

查询住房资料

客人信息表

统计界面

客人信息表+客房编号表

查询空房

查询空住房

客房编号表

统计界面

客房编号表

查询房号

查询房号信息

客人信息表

统计界面

客人信息表

计算

计算金额

客房管理系统

管理员端

客房管理系统

登记,删除

录入住房信息

管理员端

客房管理系统

系统数据库

统计

统计住房信息

系统数据库

统计界面

系统数据库

 

(3)数据存储说明

数据存储名称

含义说明

组成结构

历史记录表

存放客房历史的有关信息

客房编号+金额

客人信息表

存放客人相关的信息

个人信息+住店时间+金额

客房类别表

存放客房对应的价格

类别+价格

客房编号表

存放客房对应的编号

类别+编号

管理人员表

存放管理员验证信息

编号+密码

 

(4)处理过程说明

处理过程名称:

审核登陆

输入:

编号+密码

输出:

确认

加工逻辑:

根据编号和密码管理员,进入主窗体。

(其他处理过程略)

 

3.2.3概念结构设计

依据客房管理系统的实际情况,考虑了多方面的因素以后,确定系统的E-R图,如图所示:

客房管理系统E-R图

3.2.4逻辑结构设计

按照E-R图转换规则,可以得到如下的关系模式:

客人信息(客房编号,姓名,性别,年龄,身份证号码,家庭住址,工作单位,来自地的地名,预定入住时间,入住时间,离店时间,押金,需负金额)

客人类别(类别,名称,价格)

客房编号(编号,类别)

历史记录(记录编号,客房编号,离店时间,金额)

管理人员(编号,密码)

3.2.5物理结构设计

根据E-R图及数据字典,设计出公司工资管理系统数据库中的各个数据表,包括:

客人信息、客房类别、客房编号、历史记录、管理人员共5个数据表。

本系统数据库命名为“客房管理系统”,数据库中的各个数据表名称和结构分别如下所示,为便于说明,各个数据表的结构使用该表在SQLServer企业管理器中的设计视图表示。

●关系图:

●客人信息:

客人信息结构图

●客房类别:

客房类别结构图

●客房编号:

客房编号结构图

●历史记录:

历史记录结构图

●管理人员:

管理人员结构图

4详细设计

4.1界面设计

主窗口(Mainwindow)

本窗体为主窗体,用到java的swing中的菜单栏组件,主要代码如下:

panel1=newJPanel();

this.setContentPane(panel1);

lbPicture=newJLabel(newImageIcon(管理系统.Mainwindow.class.getResource("背景.jpg")));

panel1.add(lbPicture);

//主菜单

jmbMain=newJMenuBar();

jmSystem=newJMenu("系统");

jmSearch=newJMenu("查询");

jmAdd=newJMenu("登记");

jmCount=newJMenu("统计");

jmHelp=newJMenu("帮助");

setJMenuBar(jmbMain);

//添加主菜单

jmbMain.add(jmSystem);

jmbMain.add(jmSearch);

jmbMain.add(jmAdd);

jmbMain.add(jmCount);

jmbMain.add(jmHelp);

//系统子菜单

jmiLogin=newJMenuItem("登陆");

jmiLogin.addActionListener(this);

jmSystem.add(jmiLogin);

jmiCancel=newJMenuItem("注销");

jmiCancel.addActionListener(this);

jmiCancel.setEnabled(false);

jmSystem.add(jmiCancel);

jmiExit=newJMenuItem("退出");

jmiExit.addActionListener(this);

jmSystem.add(jmiExit);

//查询子菜单

jmiSearchFullRoom=newJMenuItem("查已住房");

jmiSearchFullRoom.addActionListener(this);

jmiSearchFullRoom.setEnabled(false);

jmSearch.add(jmiSearchFullRoom);

jmiSearchVoidRoom=newJMenuItem("查空房");

jmiSearchVoidRoom.addActionListener(this);

jmiSearchVoidRoom.setEnabled(false);

jmSearch.add(jmiSearchVoidRoom);

jmiSearchName=newJMenuItem("按名字或房号查");

jmiSearchName.addActionListener(this);

jmiSearchName.setEnabled(false);

jmSearch.add(jmiSearchName);

jmiLine.setEnabled(false);

jmSearch.add(jmiLine);

jmiCalculate=newJMenuItem("结账");

jmiCalculate.addActionListener(this);

jmiCalculate.setEnabled(false);

jmSearch.add(jmiCalculate);

//登记子菜单

jmiAdd=newJMenuItem("添加");

jmiAdd.addActionListener(this);

jmiAdd.setEnabled(false);

jmAdd.add(jmiAdd);

jmiDelete=newJMenuItem("删除");

jmiDelete.addActionListener(this);

jmiDelete.setEnabled(false);

jmAdd.add(jmiDelete);

//统计子菜单

jmiCircumstances=newJMenuItem("入住情况");

jmiCircumstances.addActionListener(this);

jmiCircumstances.setEnabled(false);

jmCount.add(jmiCircumstances);

jmiRate=newJMenuItem("入住率");

jmiRate.addActionListener(this);

jmiRate.setEnabled(false);

jmCount.add(jmiRate);

jmiIncome=newJMenuItem("收入");

jmiIncome.addActionListener(this);

jmiIncome.setEnabled(false);

jmCount.add(jmiIncome);

//帮助子菜单

jmiAbout=newJMenuItem("关于");

jmiAbout.addActionListener(this);

jmHelp.add(jmiAbout);

//窗体属性

setBounds(300,150,800,600);

setVisible(true);

菜单中的键用到了ActionListener接口来实现主要代码如下:

publicvoidactionPerformed(ActionEventae){

//退出键

if(ae.getSource()==jmiExit)

{

}

//登陆键

elseif(ae.getActionCommand()=="登陆")

{

}

//注销键

elseif(ae.getSource()==jmiCancel)

{

}

//查已住房间键

elseif(ae.getSource()==jmiSearchFullRoom)

{

}

//查空房

elseif(ae.getSource()==jmiSearchVoidRoom)

{

}

//按名字或房号查

elseif(ae.getSource()==jmiSearchName)

{

}

//结账

elseif(ae.getSource()==jmiCalculate)

{

}

//添加

elseif(ae.getSource()==jmiAdd)

{

}

//删除

elseif(ae.getSource()==jmiDelete)

{

}

//入住情况

elseif(ae.getSource()==jmiCircumstances)

{

}

//入住率

elseif(ae.getSource()==jmiRate)

{

}

//收入

elseif(ae.getSource()==jmiIncome)

{

}

//关于

elseif(ae.getSource()==jmiAbout)

{

}

}

登陆界面(Login)

本窗体连接到数据库中的管理员表通过定义ResultSet来调用表中的数据,相关代码:

ResultSetrs;

rs=stat.executeQuery("select*from管理人员where编号="+"'"+tUser.getText()+"'and密码="+"'"+password.getText()+"'");

判断成功后实现主窗体中子菜单的setEnable()方法。

登记客人信息(Add)

本窗体主要用到T-SQL语句中的insertinto…..VALUES语句,相关代码:

a1="'"+tName.getText().trim()+"'";

a2="'"+tSex.getText().trim()+"'";

a3="'"+tAge.getText().trim()+"'";

a4="'"+tIdentication.getText().trim()+"'";

a5="'"+tAddress.getText().trim()+"'";

a6="'"+tWorkPlace.getText().trim()+"'";

a7="'"+tFrom.getText().trim()+"'";

a8="'"+tRoomNo.getText().trim()+"'";

a9="'"+tWillIn.getText().trim()+"'";

a10="'"+tIn.getText().trim()+"'";

a11="'"+tLeave.getText().trim()+"'";

inti=Integer.valueOf(tCash.getText()).intValue();

Stringb="insertinto客人信息(客房编号,姓名,性别,年龄,身份证号码,家庭住址,工作单位,来自地的地名,预定入住时间,入住时间,离店时间,押金)VALUES("+a8+","+a1+","+a2+","+a3+","+a4+","+a5+","+a6+","+a7+","+a9+","+a10+","+a11+","+i+")";

stat=conn.prepareStatement(b);

r=stat.executeUpdate();

删除客人信息(Delete)

删除窗体与添加窗体相类似,用到T-SQL中的delete语句。

客人结账(Calculate)

本窗体用到的T-SQL语句有

(1)update金额_view

set需负金额=datediff(day,入住时间,getdate())*价格-押金

where客房编号=501

(2)update金额_view

set离店时间=dateadd(day,datediff(day,入住时间,getdate()),入住时间)

where客房编号=501

(3)select客房编号,姓名,需负金额

from金额_view

where客房编号=501--(前台应用改客房编号就可以了)

在前台定义stat=con.createStatement()再用

stat.executeUpdate(

(1));

stat.executeUpdate(

(2));

rs=stat.executeQuery((3));

来实现。

查询客人信息(SearchForName)

本窗体主要用到JTable和连接客人信息表,相关代码:

stat=conn.createStatement();

rs=stat.executeQuery("select姓名,性别,工作单位,客房编号,入住时间from客人信息where姓名="+"'"+tName.getText()+"'");

rs=stat.executeQuery("select姓名,性别,工作单位,客房编号,入住时间from客人信息where客房编号="+"'"+tName.getText()+"'");

查询空房(VoidRoom)

本窗体用到的T-SQL语句有:

selectdistinct名称,编号

from客房编号

join客房类别

on客房类别.类别=客房编号.类别

where编号notin

(selectdistinct编号

from客房编号

join客人信息

on编号=客人信息.客房编号

where编号=客人信息.客房编号and离店时间isnull)

与前台连接的相关语句有:

stat=conn.createStatement();

rs=stat.executeQuery("selectdistinct类别,编号from客房编号where编号notin(selectdistinct编号as已定或已住from客房编号join客人信息on编号=客人信息.客房编号where编号=客人信息.客房编号and离店时间isnull)");

查询已住或已定的客房(FullRoom)

本窗体用到的T-SQL有:

selectdistinct名称,编号

from客房编号

join客人信息

on编号=客人信息.客房编号

join客房类别

on客房类别.类别=客房编号.类别

where编号=客人信息.客房编号and离店时间isnull

与前台连接的相关代码:

stat=conn.createStatement();

rs=stat.executeQuery("selectdistinct类别,编号from客房编号join客人信息on编号=客人信息.客房编号where编号=客人信息.客房编号and离店时间isnull");

 

统计月收入(InCome)

本窗体用到的T-SQL语句:

selectmonth(离店时间)as月份,sum(金额)as收入

from历史记录

join客房编号

on客房编号=编号

whereyear(离店时间)=2008

groupbymonth(离店时间)

与前台连接的相关语句有:

stat=con.createStatement();

rs=stat.executeQuery("selectmonth(离店时间)as月份,sum(金额)as收入from历史记录join客房编号on客房编号=编号whereyear(离店时间)="+"'"+tYear.getText()+"'"+"groupbymonth(离店时间)");

 

统计一段时间内各客房入住率(Rate)

本窗体用到的T-SQL语句有:

select客房编号,cast(cast(count(*)asfloat)/(selectcount(*)from历史记录)*100.00asvarchar)+'%'as入住率

from历史记录

where'2008-1-1'<=离店时间and离店时间<='2008-12-31'

groupby客房编号

与前台连接的相关语句有:

stat=conn.createStatement();

rs=stat.executeQuery("select客房编号,cast(cast(count(*)asfloat)/(selectcount(*)from历史记录)*100.00asvarchar)+'%'as入住率"+"from历史记录where离店时间>="+"'"+tStart.getText()+"'and离店时间<="+"'"+tOver.getText()+"'groupby客房编号");

统计一段时间内各类客房的入住情况(StatisticsInto)

本窗体用到的T-SQL语句有:

select名称,cast(cast(count(*)asreal)/(selectcount(*)from历史记录)*100.00asvarchar)+'%'as入住率,sum(金额)as收入金额

from历史记录

join客房编号

on客房编号=编号

join客房类别

on客房类别.类别=客房编号.类别

where'2008-1-1'<=离店时间and离店时间<='2008-12-31'

groupby名称--(前台应用改时间就可以了)

与前台连接的相关语句有:

stat=conn.createStatement();

rs=stat.executeQuery("select名称,cast(cast(count(*)asreal)/(selectcount(*)from历史记录)*100.00asvarchar)+'%'as入住率,sum(金额)as收入金额"+"from历史记录join客房编号on客房编号=编号join客房类别on客房类别.类别=客房编号.类别"+"where离店时间>="+"'"+tStart.getText()+"'and离店时间<="+"'"+tOver.getText()+"'groupby名称");

4.2代码设计

●--建立客房管理数据库(使用默认设置)

createdatabase客房管理系统

--创建客人信息表

createtable客人信息(

客房编号varchar(10)primarykey,

姓名varchar(10)notnull,

性别char

(2)notnull,

年龄tinyint,

身份证号码varchar(20)notnull,

家庭住址varchar(50)notnull,

工作单位varchar(50)notnull,

来自地的地名varchar(50)notnull

预定入住时间datetimrnotnull,

入住时间datetimrnotnull,

离店时间datetimr,

押金moneynotnull,

需负金额money)

--创建客房类别表

createtable客房类别(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2