ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:1.40MB ,
资源ID:9056205      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9056205.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(酒店管理系统设计报告书.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

酒店管理系统设计报告书.docx

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

2、000运行环境:Windows 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价格标识客

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

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

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

7、swing中的菜单栏组件,主要代码如下:panel1=new JPanel(); 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=ne

8、w JMenu(帮助); setJMenuBar(jmbMain); /添加主菜单 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

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

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

11、e.setEnabled(false); jmSearch.add(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 JM

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

13、stener(this); jmiRate.setEnabled(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,6

14、00); setVisible(true);菜单中的键用到了ActionListener接口来实现 主要代码如下: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()=jmiSearchV

15、oidRoom) /按名字或房号查 else if(ae.getSource()=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

16、 if(ae.getSource()=jmiAbout) 登陆界面(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

17、()+;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(

18、)+;int i = Integer.valueOf(tCash.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中的de

19、lete语句。客人结账(Calculate)本窗体用到的T-SQL语句有(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.ex

20、ecuteUpdate(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 客房编号=

21、+tName.getText()+);查询空房(VoidRoom)本窗体用到的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 客房编

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

23、ement(); rs=stat.executeQuery(select 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

24、=stat.executeQuery(select month(离店时间) 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=离

25、店时间 and 离店时间=+tStart.getText()+ 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=

26、离店时间 and 离店时间=+tStart.getText()+ 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(1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1