欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:13961147       资源大小:1.41MB        全文页数:27页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、基于JAVA的客房管理系统设计有源代码+数据库计算机软件学专业课程设计报告书课程名称 SQL server 2000 课程设计题目 客房管理系统1概述1.1背景客房管理是旅店管理事务中的一项重要工作,在管理过程中涉及到大量的数据处理,传统的人工管理已经无法完成胜任。相关数据的处理带来了更大的工作量。 本系统采用目前比较流行的JDBC-ODBC数据访问技术,成功地将面向对象的程序设计思想应用到数据库应用程序设计中。1.2开发与运行环境本客房管理系统的开发与运行环境如下:开发环境:Eclipse 3.1开发工具:JAVA 1.5数据库管理系统:SQL Server 2000运行环境:Windows

    2、 2000/XP/2003/Vista使用说明:用户自己附加数据库,并且在控制面板下的数据工具中的数据源(ODBC),在用户DSN下添加名为“客房管理”,驱动程序为SQL-Server。并且安装了JAVA虚拟机,该程序即可使用。2需求分析客房资管理系统涉及到:客人信息、客房信息、入住信息、历史信息等多种数据信息。客房管理系统的用户包括系统管理员。系统管理员负责整理工作,如各种基本信息的添加、删除和简单的结账计算等操作。本系统的主要功能包括:客人信息管理:客人信息数据的添加、删除、结账计算。数据查询:查看客人信息数据,查看客房信息数据。数据统计:统计一段时间内的客房情况和月收入等基本统计。3系统

    3、设计3.1系统模块设计根据系统功能分析和一些旅店客房管理的特点,经过模块化的分析得到如下图所示的系统功能模块结构图。系统功能模块结构图3.2数据库设计3.2.1数据流图顶层数据流图第0层数据流图3.2.2数据字典根据系统功能模块结构图及典型旅店客房管理系统的需求,总结出来如下的数据字典:(1)数据项说明数据项名称含义说明类型长度记录编号惟一标识一条记录bigint8客房编号惟一标识一间客房varchar10离店时间标识离店时间datetime8金额标识所收金额money8类别标识客房类别smallint2名称标识客房类别名称varchar20价格标识客房价格money8(2)数据流说明数据流名

    4、称含义来源去向组成登陆管理员进入系统操作客房管理系统管理员端编号+密码查询已住房查询住房资料客人信息表统计界面客人信息表+客房编号表查询空房查询空住房客房编号表统计界面客房编号表查询房号查询房号信息客人信息表统计界面客人信息表计算计算金额客房管理系统管理员端客房管理系统登记,删除录入住房信息管理员端客房管理系统系统数据库统计统计住房信息系统数据库统计界面系统数据库(3)数据存储说明数据存储名称含义说明组成结构历史记录表存放客房历史的有关信息客房编号+金额客人信息表存放客人相关的信息个人信息+住店时间+金额客房类别表存放客房对应的价格类别+价格客房编号表存放客房对应的编号类别+编号管理人员表存放

    5、管理员验证信息编号+密码(4)处理过程说明处理过程名称:审核登陆输入:编号+密码输出:确认加工逻辑:根据编号和密码管理员,进入主窗体。(其他处理过程略)3.2.3概念结构设计依据客房管理系统的实际情况,考虑了多方面的因素以后,确定系统的E-R图,如图所示:客房管理系统E-R图3.2.4逻辑结构设计按照E-R图转换规则,可以得到如下的关系模式:客人信息(客房编号,姓名,性别,年龄,身份证号码,家庭住址,工作单位,来自地的地名,预定入住时间,入住时间,离店时间,押金,需负金额)客人类别(类别,名称,价格)客房编号(编号,类别)历史记录(记录编号,客房编号,离店时间,金额)管理人员(编号,密码)3.

    6、2.5物理结构设计 根据E-R图及数据字典,设计出公司工资管理系统数据库中的各个数据表,包括:客人信息、客房类别、客房编号、历史记录、管理人员共5个数据表。 本系统数据库命名为“客房管理系统”,数据库中的各个数据表名称和结构分别如下所示,为便于说明,各个数据表的结构使用该表在SQL Server企业管理器中的设计视图表示。关系图:客人信息:客人信息结构图客房类别:客房类别结构图客房编号:客房编号结构图历史记录:历史记录结构图管理人员:管理人员结构图4详细设计4.1界面设计主窗口(Mainwindow)本窗体为主窗体,用到java的swing中的菜单栏组件,主要代码如下:panel1=new J

    7、Panel(); this.setContentPane(panel1); lbPicture=newJLabel(new ImageIcon(管理系统.Mainwindow.class.getResource(背景.jpg); panel1.add(lbPicture); /主菜单 jmbMain=new JMenuBar(); jmSystem=new JMenu(系统); jmSearch=new JMenu(查询); jmAdd=new JMenu(登记); jmCount=new JMenu(统计); jmHelp=new JMenu(帮助); setJMenuBar(jmbMain

    8、); /添加主菜单 jmbMain.add(jmSystem); jmbMain.add(jmSearch); jmbMain.add(jmAdd); jmbMain.add(jmCount); jmbMain.add(jmHelp); /系统子菜单 jmiLogin=new JMenuItem(登陆); jmiLogin.addActionListener(this); jmSystem.add(jmiLogin); jmiCancel=new JMenuItem(注销); jmiCancel.addActionListener(this); jmiCancel.setEnabled(fal

    9、se); jmSystem.add(jmiCancel); jmiExit=new JMenuItem(退出); jmiExit.addActionListener(this); jmSystem.add(jmiExit); /查询子菜单 jmiSearchFullRoom=new JMenuItem(查已住房); jmiSearchFullRoom.addActionListener(this); jmiSearchFullRoom.setEnabled(false); jmSearch.add(jmiSearchFullRoom); jmiSearchVoidRoom=new JMenuI

    10、tem(查空房); jmiSearchVoidRoom.addActionListener(this); jmiSearchVoidRoom.setEnabled(false); jmSearch.add(jmiSearchVoidRoom); jmiSearchName=new JMenuItem(按名字或房号查); jmiSearchName.addActionListener(this); jmiSearchName.setEnabled(false); jmSearch.add(jmiSearchName); jmiLine.setEnabled(false); jmSearch.ad

    11、d(jmiLine); jmiCalculate=new JMenuItem(结账); jmiCalculate.addActionListener(this); jmiCalculate.setEnabled(false); jmSearch.add(jmiCalculate); /登记子菜单 jmiAdd=new JMenuItem(添加); jmiAdd.addActionListener(this); jmiAdd.setEnabled(false); jmAdd.add(jmiAdd); jmiDelete=new JMenuItem(删除); jmiDelete.addAction

    12、Listener(this); jmiDelete.setEnabled(false); jmAdd.add(jmiDelete); /统计子菜单 jmiCircumstances=new JMenuItem(入住情况); jmiCircumstances.addActionListener(this); jmiCircumstances.setEnabled(false); jmCount.add(jmiCircumstances); jmiRate=new JMenuItem(入住率); jmiRate.addActionListener(this); jmiRate.setEnabled

    13、(false); jmCount.add(jmiRate); jmiIncome=new JMenuItem(收入); jmiIncome.addActionListener(this); jmiIncome.setEnabled(false); jmCount.add(jmiIncome); /帮助子菜单 jmiAbout=new JMenuItem(关于); jmiAbout.addActionListener(this); jmHelp.add(jmiAbout); /窗体属性 setBounds(300,150,800,600); setVisible(true);菜单中的键用到了Ac

    14、tionListener接口来实现 主要代码如下:public void actionPerformed(ActionEvent ae) /退出键 if (ae.getSource()=jmiExit) /登陆键 else if(ae.getActionCommand()=登陆) /注销键 else if(ae.getSource()=jmiCancel) /查已住房间键 else if(ae.getSource()=jmiSearchFullRoom) /查空房 else if(ae.getSource()=jmiSearchVoidRoom) /按名字或房号查 else if(ae.get

    15、Source()=jmiSearchName) /结账 else if(ae.getSource()=jmiCalculate) /添加 else if(ae.getSource()=jmiAdd) /删除 else if(ae.getSource()=jmiDelete) /入住情况 else if(ae.getSource()=jmiCircumstances) /入住率 else if(ae.getSource()=jmiRate) /收入 else if(ae.getSource()=jmiIncome) /关于 else if(ae.getSource()=jmiAbout) 登陆界

    16、面(Login)本窗体连接到数据库中的管理员表通过定义ResultSet来调用表中的数据,相关代码: ResultSet rs; rs=stat.executeQuery(select * from 管理人员 where 编号=+tUser.getText()+ and 密码=+password.getText()+);判断成功后实现主窗体中子菜单的setEnable()方法。登记客人信息(Add)本窗体主要用到T-SQL语句中的insert into. VALUES语句,相关代码:a1=+tName.getText().trim()+;a2=+tSex.getText().trim()+;a

    17、3=+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()+;int i = Integer.valueOf(tCash

    18、.getText().intValue();String b=insert into 客人信息 (客房编号,姓名,性别,年龄,身份证号码,家庭住址,工作单位,来自地的地名,预定入住时间,入住时间,离店时间,押金) 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-SQ

    19、L语句有(1)update 金额_viewset 需负金额=datediff(day,入住时间,getdate()*价格-押金where 客房编号=501(2)update 金额_viewset 离店时间=dateadd(day,datediff(day,入住时间,getdate(),入住时间)where 客房编号=501(3)select 客房编号,姓名,需负金额from 金额_viewwhere 客房编号=501 -(前台应用改客房编号就可以了)在前台定义stat=con.createStatement()再用 stat.executeUpdate(1); stat.executeUpda

    20、te(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

    21、)本窗体用到的T-SQL语句有:select distinct 名称,编号from 客房编号join 客房类别on 客房类别.类别=客房编号.类别where 编号 not in(select distinct 编号from 客房编号join 客人信息on 编号=客人信息.客房编号where 编号=客人信息.客房编号 and 离店时间 is null)与前台连接的相关语句有:stat=conn.createStatement(); rs=stat.executeQuery(select distinct 类别,编号 from 客房编号 where 编号 not in (select distin

    22、ct 编号 as 已定或已住 from 客房编号 join 客人信息 on 编号=客人信息.客房编号 where 编号=客人信息.客房编号 and 离店时间 is null);查询已住或已定的客房(FullRoom)本窗体用到的T-SQL有:select distinct 名称,编号from 客房编号join 客人信息on 编号=客人信息.客房编号join 客房类别on 客房类别.类别=客房编号.类别where 编号=客人信息.客房编号 and 离店时间 is null与前台连接的相关代码:stat=conn.createStatement(); rs=stat.executeQuery(se

    23、lect distinct 类别,编号 from 客房编号 join 客人信息 on 编号=客人信息.客房编号 where 编号=客人信息.客房编号 and 离店时间 is null);统计月收入(InCome)本窗体用到的T-SQL语句:select month(离店时间) as 月份,sum(金额) as 收入from 历史记录join 客房编号on 客房编号=编号where year(离店时间)=2008group by month(离店时间)与前台连接的相关语句有:stat=con.createStatement();rs=stat.executeQuery(select month(

    24、离店时间) as 月份,sum(金额) as 收入 from 历史记录 join 客房编号 on 客房编号=编号 where year(离店时间)=+tYear.getText()+ group by month(离店时间);统计一段时间内各客房入住率(Rate)本窗体用到的T-SQL语句有:select 客房编号,cast(cast(count(*) as float)/(select count(*) from 历史记录)*100.00 as varchar)+% as 入住率from 历史记录where 2008-1-1=离店时间 and 离店时间=+tStart.getText()+

    25、and 离店时间=+tOver.getText()+ group by 客房编号);统计一段时间内各类客房的入住情况(StatisticsInto)本窗体用到的T-SQL语句有:select 名称,cast(cast(count(*) as real)/(select count(*) from 历史记录)*100.00 as varchar)+% as 入住率,sum(金额) as 收入金额from 历史记录join 客房编号on 客房编号=编号join 客房类别on 客房类别.类别=客房编号.类别where 2008-1-1=离店时间 and 离店时间=+tStart.getText()+

    26、 and 离店时间=+tOver.getText()+ group by 名称);4.2代码设计-建立客房管理数据库(使用默认设置)create database 客房管理系统-创建客人信息表create table 客人信息(客房编号 varchar(10) primary key,姓名 varchar(10) not null,性别 char(2) not null,年龄 tinyint,身份证号码 varchar(20) not null,家庭住址 varchar(50) not null,工作单位varchar(50) not null,来自地的地名varchar(50) not null预定入住时间 datetimr not null,入住时间datetimr not null,离店时间datetimr,押金 money not null,需负金额money)-创建客房类别表create table 客房类别(类别 smallint primary key,名称 varchar(20) not null,价格 money)-创建客房编号表create table 客房编号( 编号varchar(10) primary key, 类别smallint) -创建历史


    注意事项

    本文(基于JAVA的客房管理系统设计有源代码+数据库.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开