1、JAVA酒店管理系统项目书 Java语言程序设计小组课程设计个人报告书小组题目: 酒店管理系统 完成日期: 2012年1月4日 酒店管理系统1、问题描述随着信息的迅速发展,信息化管理已经引入并且应用到各行各业的管理领域中去,而一个大型的机电将管理信息化也是势在必行的,大量的客流量,同时还要存储各项业务的信息不断更换的客流信息,员工个人信息和工资发配等任务,若要时还是用人力管理不仅将会影响到盈利的同时无异于又给每一位员工带来了很大的工作量!本文从开发酒店管理系统的相关技术及可行性分析入手简述了管理系统采用C/S模式的好处及需要实现员工信息管理、预定、简单的财务管理以及进货系统等日程管理信息等功能
2、。详细介绍了各个功能的实现,以及系统测试的情况。本文主要功能包括:从系统安全可靠性,系统功能,软件运行环境等方面对酒店管理系统进行需求分析,说明系统的合理性与可行性,较为详细的阐述了系统的运行情况。本文最终设计并实现了一个基于C/S模式的酒店管理系统,该系统包括系统设置、日常细细管理、库存管理、预定管理、订餐管理。测试结果表明,本文所开发的管理系统具有简单管理的功能。酒店形态具有种种优点,但在目前状况下,它仍存在服务业企业所共有的落后的一面,如:不能有效地、快速地服务于每个顾客,收款结算速度慢,容易出现服务不周,不易进行服务评价等。而且在酒店日常管理中,货物的进、销、存等决策以经验为主,缺乏实
3、时分析功能,管理人员对及时传递资料的要求始终得不到满足。随着酒店形态的高速发展,其经营管理也变的愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。而企业若想再激烈的市场经济中立足并胜出,就必须拥有一套完善并适应自身特点的信息化管理系统,以实现企业降低成本、及时反馈市场信息,完善服务质量、提高经济效益、分析市场需求、制定服务计划和目标等管理目的。21世纪,酒店的竞争也进到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是酒店业的竞争核心。2、开发环境搭建目前,市场上计算机语言和开
4、发工具有很多,但是Eclipse的以其稳定和与平台无关的特性,从众多编程工具中脱颖而出,成为很多Java程序员的首选。Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,
5、PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+、COBOL和Eiffel等编程语言的插件已经可用,或预计会推出。Eclipse是一个开发源码项目,它其实是Visual Age for Java的替代品
6、,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多 大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。3、系统功能:(1)进行系统的需求分析:系统需对用户登录进行管理。使用各功能模块时,系统应验证用户身份的有效性,否则要求用户登录。另外,允许用户对自己的密码进行修改。系统应提供客房的分类管理功能,可分类制订客房面积、价格、是否配备空调等客房类型,对不同标准的客房进行有效管理。系统可
7、实现对客房信息的添加、删除以及修改。在进行入住/退房管理时,系统可以根据客房当前的状态自动提示可用服务(入住/退房)。如果客房没有客人入住,则该客房的可用服务为“入住”;否则,可用服务为“退房”。系统的客户端在Windows平台下运行,服务器端可在Windows平台或UNIX平台下运行。系统还需要有较好的安全性和可扩展性。需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出系统的功能模块,即定义用例。这个步骤是对理解需求的升华,直接关系到该系统的质量。住店部分由于考虑到人们日常生活等方面,住店的过程中可能会发生多变的情况,同时也为了方便处理,我们对
8、这个系统对订房、退房进行了处理,使前台工作人员更好为客人服务,我们的系统将会详细的显示出每个房间所处的状态,是预定了、还是有用户入住了、还是空闲,做出较详细的资料显示,同时在退房期间,按照一定规定计算消费金额。应用软件是直接被用户使用的软件,因此应具有良好的用户界面。通过用户界面,用户不必去了解许多关于计算机硬件和软件方面的知识,只需按屏幕提示便能方便地完成产品设计。用户界面的好坏是评价一个软件运行好坏的重要标志之一,一个友好的用户界面应满足以下几个方面的要求:(1).界面友好:要考虑到软件的通用。面向大多数人,尽量采用汉字显示,以克服语言障碍。(2).使用方便:提供的用户界面应方便用户使用,
9、无需对用户做过多的界面转换训练工作。(3).记忆最少原则:一个好的应用软件应使用户尽量少记各种操作规则、专门名词和特殊符号。(4).灵活的提示信息:应用软件运行时,应能给出简单易懂的提示信息,以提高用户的工作效率。(5).软件具有较强的容错能力: 以便能有效地解决设计者因误操作而造成的运算错误及系统的“死锁”等现象,提高软件使用的安全性和可靠感。(6).良好的交互方式:用户使用计算机进行设计时,应使其感到与计算机所进行的信息交换是十分自然的,与人们的日常工作习惯相符合。把握好屏幕数字菜单、图标菜单、下拉式菜单、对话框等技术的正确使用,有时甚至需要几种技术交叉应用,其目的应便于设计者操作。(2)
10、系统的总体设计住房管理模块。此模块必须具有以下功能:登录管理:只有在输入正确的户名和密码才可登录进入操作界面。房间类型的管理:可以对房间类型进行增添、删除、修改、查询功能。房间信息的管理:可以对房间信息进行增添、删除、修改、查询功能。开房功能:记录住户信息,并把相应的房间状态改为“入住”。退房:退房时算出总费用 (房间价格+ 加床价格) * 天数;退房时要判断当前退房的时间,一般酒店是在中午12点退房,超过12点理论上要多算一天. 可弹出提示“是否多加一天”;退房成功后把相应的房间状态改为“空闲”;更新用户消费总金额;更新用户的VIP状态。数据操作:可按月查看入住记录,可查看指定日期的入住记录
11、,可搜索指定姓名住户的入住记录。预订房功能:提前预定房间,注意房间的状态,预定日期前还是可以由其他房客入住,预定房间到期时未入住的处理。换房间:可以在住户需要时办理换房间业务。员工(服务员)通过输入相关信息到人员管理信息系统;软件计算交易总金额;可使用管理员动态分配的权限进行操作。酒店经理:软件录入菜品、原材料、供货商、厂商;操作软件制定进货计划;查询计划进货与入库记录;查询账务情况;查询库存明细记录;根据软件发出的库存告警进行入货;基本信息登记管理;员工(营业员)操作权限管理。客户:查询相关信息、房间信息、个人信息;可使用管理员动态分配的权限进行操作。(3)系统的详细设计主模块设计.模块子模
12、块功能主模块整体设计总界面(登陆界面)对功能模块和公共辅助模块有整体的概览和认知公共模块设计模块子模块功能公共辅助模块1.查询模块2.信息浏览模块3.前台管理4.后台管理1.查询客房等基本信息2.便于工作人员及时掌握客房及客人信息3. 在此界面可以通过单击和双击图标来查看桌台信息,可以直接通过图标来看桌台是否已使用,可以选中图标单击右键选择相应业务,非常友好和方便。4.便于查看桌台信息和使用情况功能模块设计功能模块用户登录用户登录房间类型管理模块1.增添房间类型2.修改房间类型3.删除房间类型4.查询房间类型房间信息管理模块1.增添房间信息2.修改房间信息3.删除房间信息4.查询房间信息开房功
13、能模块记录用户信息并将房间状态改为“入住”退房功能模块1.算出总费用2.判断当前退房的时间3.退房成功后把相应的房间该为“空闲”4.更新用户消费总金额5.更新用户VIP状态数据操作模块1.可按月查询入住记录2.可查看指定日期的入住记录3.可搜索指定姓名住户的入住记录4、任务模块 本人主要负责界面设计和查询部分5、测试数据 包括正确的输入及其输出结果,以及含有错误的输入及其输出结果。测试数据要能全面地测试所设计程序的功能。6、程序模块调用关系图。 7、代码查询部分代码:/* * 模块名 : 营业查询模块 * 文件实现功能 : 组织营业查询窗口及功能 */package com.hotel.que
14、ry;import javax.swing.*;/提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。import javax.swing.border.*;/提供围绕 Swing 组件绘制特殊边框的类和接口。import javax.swing.table.*;/提供用于处理 javax.swing.JTable 的类和接口。import java.awt.*;/包含用于创建用户界面和绘制图形图像的所有类。import java.awt.event.*;/提供处理由 AWT 组件所激发的各类事件的接口和类。import java.sql.*;/提供使
15、用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。import java.util.*;/包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。import com.hotelhotelsdk.sql.*; /公共类库import com.hotel.hotelsdk.system.*;import com.hotel.hotelsdk.swing.*;import com.hotel.mainframe.HotelFrame; /加载主窗口pub
16、lic class Query extends JDialog ActionListener, MouseListener /ActionListener超级接口是EventListener,子接口是:Action private JLabel top;/ 呈现列表中的一个项 private JTabbedPane tp;/一个组件,它允许用户通过单击具有给定标题和/或图标的选项卡,在一组组件之间进行切换。 /如果为制表符指定一个组件,则 JTabbedPane 将不会呈现为该制表符指定的任何文本或图标。 private JPanel panelMain;/=结帐单查询 private JTe
17、xtField tf11,tf12,tf13,tf1;/是一个轻量级组件,它允许编辑单行文本 private JButton bt11,bt12;/创建不带有设置文本或图标的按钮。 private JCheckBox chk11,chk12;/复选框的实现,复选框是一个可以被选定和取消选定的项,它将其状态显示给用户。按照惯例,可以选定组中任意数量的复选框 private JTable tb1;/ 将此对象作为其头的表,默认值为 null。 private DefaultTableModel dtm1; private JScrollPane sp1;/JScrollPane 不支持重量级组件。
18、 /=全部宾客信息查询 private JTextField tf21,tf2;/JTextField 是一个轻量级组件,它允许编辑单行文本 private JButton bt21,bt22,bt23; private JTable tb2; private DefaultTableModel dtm2; private JScrollPane sp2; /=在店宾客消费查询 private JTextField tf31,tf32,tf33,tf3; private JButton bt31,bt32; private JRadioButton rb31,rb32; private JTa
19、ble tb3; private DefaultTableModel dtm3; private JScrollPane sp3; /=离店宾客消费查询 private JTextField tf41,tf42,tf43,tf4; private JButton bt41,bt42; private JCheckBox chk41,chk42;/复选框的实现,复选框是一个可以被选定和取消选定的项,它将其状态显示给用户。按照惯例,可以选定组中任意数量的复选框 private JComboBox cb41; private JTable tb4; private DefaultTableModel
20、 dtm4; private JScrollPane sp4;/*=*/ * # public Query(JFrame frame) : 构造函数 * 参数 :JDialog对象表示本对话框的父窗口 * 返回值 :无 * 修饰符 :public * 功能 :组建营业查询模块*=*/ public Query(JFrame frame) super(frame,营业查询,true); top = new JLabel(); /假空格 panelMain = new JPanel(new BorderLayout(0,5); tab(); /制作系统设置项目标签面板 addListener();
21、 /加入事件监听 panelMain.add(North,top); panelMain.add(Center,tp); this.setContentPane(panelMain); this.setPreferredSize (new Dimension (800,500); this.setMinimumSize (new Dimension (800,500); this.setResizable(false); /不允许改变窗口大小 pack(); sunswing.setWindowCenter(this); /窗口屏幕居中 /*=*/ * # private void addLi
22、stener() : 加事件监听 * 参数 :无 * 返回值 :无 * 修饰符 :private * 功能 :加事件监听*=*/ private void addListener() bt11.addActionListener(this); /加动作监听 bt12.addActionListener(this); bt21.addActionListener(this); bt22.addActionListener(this); bt23.addActionListener(this); bt31.addActionListener(this); bt32.addActionListene
23、r(this); bt41.addActionListener(this); bt42.addActionListener(this); bt11.addMouseListener(this); /加鼠标监听 bt12.addMouseListener(this); bt21.addMouseListener(this); bt22.addMouseListener(this); bt23.addMouseListener(this); bt31.addMouseListener(this); bt32.addMouseListener(this); bt41.addMouseListener
24、(this); bt42.addMouseListener(this); /*=*/ * # private void tab() : * 参数 :无 * 返回值 :无 * 修饰符 :private * 功能 :制作系统设置项目标签面板*=*/ private void tab() JPanel jp1,jp2,jp3,jp4; /-模块接口 jp1 = pay(); /结账单查询 jp2 = allCustomer(); /全部宾客信息查询 jp3 = stay(); /在店宾客消费查询 jp4 = leave(); /离店宾客消费查询 / tp = new JTabbedPane(); t
25、p.addTab(结帐单查询, new ImageIcon(pic/u04.gif), jp1); tp.addTab(全部宾客信息查询, new ImageIcon(pic/u02.gif), jp2); tp.addTab(在店宾客消费查询, new ImageIcon(pic/u03.gif), jp3); tp.addTab(离店宾客消费查询, new ImageIcon(pic/v04.gif), jp4); /*=*/ * # private JPanel pay() : * 参数 :无 * 返回值 :JPanel * 修饰符 :private * 功能 :结帐单查询*=*/ pr
26、ivate JPanel pay() tf11 = new TJTextField (13); tf12 = new TJTextField (13); tf13 = new TJTextField (13); tf1 = new JTextField (结帐状态信息); tf1.setHorizontalAlignment (JTextField.CENTER); tf1.setBackground(new Color(199,183,143); tf1.setBorder(new LineBorder(new Color(87,87,47); tf1.setEditable(false);
27、 bt11 = new TJButton (pic/find.gif, 查询, 查询结帐单信息); bt12 = new TJButton (pic/b1.gif, 刷新, 刷新结帐单信息); chk11 = new JCheckBox( 结帐时间:); chk12 = new JCheckBox(); dtm1 = new DefaultTableModel(); tb1 = new JTable(dtm1); sp1 = new JScrollPane(tb1); /填写表格 String sqlCode = select a.chk_no 帐单号,b.r_no 房间号,b.c_name
28、宾客姓名,b.foregift 已收押金,a.money 实收金额,a.chk_time 结算时间,a.remark 备注 + from checkout as a,livein as b where a.delmark = 0 and a.in_no = b.in_no; sunsql.initDTM(dtm1,sqlCode); JLabel lb1,lb4,lb5,lb8,lb9,lb10,lb11; lb1 = new JLabel(起始时间); lb4 = new JLabel( 终止时间); lb5 = new JLabel(); lb8 = new JLabel(姓名/房间号/帐单号: ); lb9 = new JLabel(); lb10 = new JLabel( ); lb11
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1