题目:基于Java的酒店管理系统的设计与实现
摘 要
当前酒店管理系统己经得到了充足的发展和完善,一些大的酒店购买了功能强大、数据量处理快速、客户行为研究的软件,借此来提升酒店的核心竞争力。
但是对于一些中小规模的酒店而言,昂贵的系统花费、专人的维护是不现实的,
也是非常不灵活的。一款简单、灵活、经济适用的中小型酒店管理系统的开发非
常具有市场前景。
本文针对上面提到的问题,基于JAVAEE平台设计并实现了一套基于B/S模
式的中小型酒店管理系统,其主要研究的内容如下:
1.本文基于B/S的应用实现模式,设计并实现了一套中小型酒店管理系统,包括了客户订房管理、接待管理、收银管理、客房管理和系统管理五大功能模块,重点解决了人工管理酒店方式的缺点、客房信息的及时反馈问题以及系统访问安全性等难题。
2.本文的开发过程遵守软件工程的理论,详细地介绍了中小型酒店管理系统的开发背景、研究现状、系统业务需求、功能需求、非功能需求、系统架构设计、数据库设计、安全设计,给出了核心功能模块的界面实现和代码实现过程,并对系统做了较为详细的功能测试和性能测试,保证了系统的正确性。
通过在酒店的模拟运行,本系统能够实现简化酒店原有工作流程、提高人员
与相关资源利用率的目的,同时B/S模式的应用能够在一定程度上节约酒店成
本,提高了酒店科学化管理水平。
关键词:酒店管理系统;JAVAEE平台;SQL Sever 2008 R2
Abstract
With the rapid development of the recovery of the global economy and the domestic economy, to date, the hotel is an irreplaceable part of commercial development, the speed of development of the hotel industry is moving beyond traditional industries, changing into a special service industry. And the hotel management is one of top ten industries in the world.
With the widespread popularity of computers and networks, at this stage, the service of the hotel is no longer limited to “check in - check out” as traditional and simple operating mode did. But in the context of the informational technology and electronic commerce, gradually developed into a modern business mode given its wide range of services, comprehensive business, sophisticated infrastructure. With the help of informational technology and network, a professional large hotel management system, that is simpler to operate, provide more convenient for services,give more satisfaction to customer and show higher market competitiveness, is arisen at the historic moment. If this mechanism is applied in the management of small or medium-scale hotels, it is a waste of resources, and the system is too complicated to maintain.In order to improve the management of small or medium-scale hotels, make it more convenient, fast, and accurate, as well as to obtain tremendous economic benefit and work more efficiently, to prepare and program an information management system for small or medium-scale hotels is inevitable.
Through market research and feasibility analysis, this paper presents hotel information management system specifically for small and medium-scale hotel, the main contents includes:
- Requirements analysis of hotel information management system. Firstly, this study gives a preliminary analysis and argumentation for the feasibility of the system from the aspect of technical, operational and economic. Secondly, roughly draw the overall design of the system and a functional block diagram of each module, and the management system is divided into five levels, the level of analysis were carried out then.
- Specific design for hotel information management system. Firstly, determine the overall design of the system overview of basic management modules. Secondly, design of key technologies, development environment and database in detail, which involved in the development of the system. Finally, we drawn diagrams for the implementation of the main function modules, including room management module, financial statistics module, personnel management module and warehouse management module.
- Process and system testing. At beginning, home page of the hotel management
system was tested. Secondly, the development tools were used to test each subsystem interface, the testing include the interface of user registration and log in, the interface of room reservation for users, the interface of users manage for reception, the interface of objects query, the interface of checkout for reception, the interface of personnel management for manager and the interface of warehouse management. And the final testing was carried out for the operating environment.
From the current perspective, no matter large, small or medium sized hotel companies, hotel management does a good job or not is a key factor directly affect the development of the hotel itself. The system can be effective in helping to save the daily management of the hotel appeared in a variety of problems and improve the operational capacity of the hotel, the hotel to promote good services and rapid development.
Keywords: JavaEE; small or medium-scale hotels; SQL Server 20098 R2
目 录
Abstract 3
第1章 绪论 1
1.1背景 1
1.2酒店管理系统的现状 2
1.3本文的主要工作及组织结构 2
第2章 开发工具 4
2.1开发工具 4
2.1.1 Eclipse 4
2.1.2 SQL Sever 2008 R2 5
图2-2 SQL Sever 2008 R2 6
第3章 需求分析 7
3.1可行性分析 7
3.2 系统功能分析 8
第四章 系统设计 10
4.1数据库设计 10
4.2系统界面设计 12
12
12
13
14
15
15
16
第5章 系统的实现 17
5.1系统框架设计 17
17
18
19
5.2基本信息管理模块 20
20
21
23
24
5.4旅客信息管理模块 25
25
第6章 系统运行与测试 27
参 考 文 献 28
致 谢 29
第一章 绪论
酒店管理系统对于现代化企事业单位来说,就像一个润滑剂,使原本大量
且复杂的人事数据工作变得简单并且方便,并且对于企事业的领导者来说,它使
领导者对员工信息一目了然。在当前社会中,办公自动化已经在企业办公中无处
不在,无纸办公已经是大的潮流,而酒店管理系统就是这个办公自动化潮流当中
不可或缺的重要内容,它使酒店管理工作变得简单方便,并且是普及办公自动化
过程的一个催化剂。
1.1背景
当今随着科技的日新月异,电脑的普及率越来越高,在日常的生活中人们使
用它也越来越多,因此电脑在人们工作和生活中起到了非常重要的作用。而随着
计算机的普及[1],人们对计算机的需求也越来越高,尤其是大中型企业等对计算机的需求任务都不尽相同,但目的都是一致的,那就是去解决他们管理工作上的难题,为了解决这些难题,提高管理水平和办事效率,他们就结合着自身的企业文化,把他们的管理理念和计算机结合在一起形成了以管理员为核心的人机交式管理系统,人机交互已经成为企业发展必不可少的推进力量。
自中国入世后,各行各业更面临着一些从未出现过的发展机遇,其实,这些
都带来了非常严峻的挑战。中国的酒店行业也伴随着这股漩涡开始和国际上酒店
行业之中的先进理念以及管理方法等进行竞争和学习[2]。最原始的酒店看起来机构过于庞大,随着季节的不同服务的项目也越来越多,这些都导致了最原始的酒店管理方法的失败。因为它们的过程复杂又艰辛,工作人员执行起来效率都不够高,有的时候出现错误就前功尽弃,因此这种原始的管理模式已经不能在市场经济下存在,满足不了客户的需求。因此,各酒店都在努力学习最新的酒店管理制度和经验。在网络风暴来临之时,酒店行业也开始试图采用网络服务来实现它们的管理模式和方法,来实现资源的共享。采取网络服务可以更加普及酒店的信息,实现网上的信息资源共享。酒店信息系统的创建不仅仅可以方便客户的使用,还可以方便工作人员对客户信息的管理,提高他们的工作效率。总体来说,酒店管理与计算机相结合不仅仅可以带来行为上的效率,还可以降低一些管理上的成本支出,可谓“一箭双雕”。当然,酒店行业的成功与否不单单是计算机所能决定的,但计算机的辅助绝对可以起到更加积极的效果[[3]。因此,实现系统平面由用面向B/S和C/S模式代替单机方式,采用最新的计算机网络和管理系统,必然成为提高酒店的管理效率、改善服务质量的重要手段之一。
1.2酒店管理系统的现状
信息是经济学决定生产力最活跃的要素之一,可以说从古至今信息就一直决
定着人类生活进步的关键因子,信息所起到的作用不置可否。但真正出现信息与
企业经营管理系统相结合是在五十年代末[4-5]。
现实中,我们常常提到的管理信息系统,一般都是指用计算机对管理数据进
行收集、存储等操作。这些管理信息系统可以应用于一些组织机构、政府机构、
企业等,构成所谓的“人机系统”,此系统是在后工业经济时代所产生的。企业管理信息、系统最早发展时,只是单一的“人一机系统,”[6-7]。那时候的系统功能非常地简单。
改革开放以来,我国的计算机网络领域发展愈发地迅速,普及面之广可谓惊
叹,随着这种普及,企业开始应用管理系统的风潮也开始席卷祖国的大江南北。
当今,例如美国、英国等一些发达国家已经建立了非常完善的管理信息系统体系
[8],它们在社会中都起着举足轻重的作用。
我国的管理信息系统大约开始于80年代末和90年代初期,那时,我国开始
大力推行网络工程,许多企事业单位都响应政府的号召建立起局域网和广域网信
息系统[9_10]。现今,无论世界各国经济都已经开始步入知识化时代,无论是工业经济,还是面向少数管理人员的专家系统或者决策支持系统,它们的处理能力都有所提高,处理对象和服务对象种类和数量都大大增加。
我国的许多酒店都没有采用管理信息系统体系,甚至连一些星级酒店业只是
采用单机操作,这样的管理根本不够科学,酒店的工作效率也得不到提高,更不
用提取得好的收益了「”]。在当今网络时代,依旧采用原始的信息发布这样的人工模式,根本不会取得更好的效果,而单单使用微机进行管理,但那也只是单机方式,无法与外界客户直接进行联系。大家可以相信,随着电脑的普及,管理系统的网络化必然是发展的趋势。
1.3本文的主要工作及组织结构
本文首先对中小酒店本身的企业文化及基本业务等特征进行全面综合地分
提出了将把中小酒店的管理模式与计算机网络技术相结合,开发出最新的酒店信
息综合管理系统,本文详细介绍了系统的开发过程和各个子系统的功能。本文的
具体结构如下:
第一章绪论。主要介绍了本系统的开发背景以及酒店管理系统的现状,并
介绍了本文的主要工作以及组织结构。
第二章相关技术与开发工具。本章主要介绍了本系统需要用到的体系结构,
以及本系统所使用的开发工具以及数据库。
第三章酒店信息综合管理系统的分析。本章首先介绍了信息综合管理系统
的特点,包括它的组成结构以及界面特点。其次介绍了信息综合管理系统的开发
过程。最后对本文系统进行需求分析,并进行功能需求的描述。
第四章酒店信息、综合管理系统的设计与实现。本章首先介绍了目标系统的
要求,并对系统平台的开发环境选择进行了介绍。其次,对系统进行了概要设计,
包括网络结构的设计以及系统结构的设计。第三,划分了子系统,对划分系统的
原则和并划分了九大子系统并介绍了相应的功能。其次对每个子系统的实现进行
了详细的介绍。最后对数据库的设计与实现进行了详细地介绍。
第五章系统测试及分析。对每个功能模块进行了详细的功能性测试。
第六章工作总结与展望。本章对本文工作进行了详细的工作总结,并进行
了展望。
第二章 开发工具
2.1开发工具
2.1.1 Eclipse
图2-1 Eclipse
Eclipse是基于的可扩展开发平台[27],它源代码是对外开放的。如果单单就它来讲,它只是一个框架和一组服务,通过插件、组件来构建开发环境。比较好的一点在于,它有一套标准的插件集,包括开发工具。大多数开发者很喜欢使用当作来使用,但其实Eclipse的目标不只在于只是简单作为编辑器。还包括插件开发环境,这个组件可以扩展软件,因为它允许它们来构建出和集成的工具,可以说此插件开发环境主要是对那些希望扩展Eclipse的程序员。可以说,Eclipse中的每样东西都能当作插件来使用,因此对于这些插件以及给用户提供的开发环
境来说,所有的工具都可以拿来使用,发挥长处。
它不仅仅只是针对于java开发工具。即使Eclipse的开发语言是java,但是它的用途可不仅仅只是针对于java。它还支持C/C+十、COBOL和Eiffel等编程语言,只要添加此类插件即可。Eclipse框架也还可成为与程序开发无关的其他应用类型的基础。Eclipse的本身只是一个框架平台,但是众多插件的支持使
得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以、Eclipse为框架开发自己的IDE。基于Eclipse的应用程序的最典型例子是IBM的WebSphere Studio Workbench。因为它添加了对JSP, servlet. EJB, XML,Web服务以及数据库访问的支持。
Eclipse是于1999年由OTI和IBM这两家公司的IDE产品开发组创建出来的[28l。它是Visual Age for Java的替代品,它们的界面都很类似,但两者不同在于,由于Eclipse开放源码,任何人都可以免费得到。
Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发一个全功能具有商业品质的平台。它具体可以包括四大分:EclipsePlatform,JDT, CDT和PDE o JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。
2.1.2 SQL Sever 2008 R2
美国Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
主要特性:
(1)高性能设计,可充分利用WindowsNT的优势。
(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
(3)强壮的事务处理功能,采用各种方法保证数据的完整性。
(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。
语言运用:
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
图2-2 SQL Sever 2008 R2
第三章 需求分析
3.1可行性分析
目的是为了在最短时间内和最快的速度内实现最高的效率,能够能否确定问题的解决。需要实现这一过程,必须要去分析利弊,分析主要可能解决的,去分析自己所开发的系统能否实现自己原来规划的目标,判断完成后的系统能否带来最大的效益,这种效益是否应该值得去投资开发这个系统。这一可行性分析可以大大减少系统分析和设计,可行性分析的能否准确直接影响着即将开发的系统的工作效率,也就是以比较抽象的方式来进行系统分析和设计的过程。
系统的可行性分析主要涉及到技术的可行性和操作的可行性等;
一、技术的可行性
酒店管理系统是主要是 java 来实现的。它是一种解释型语言。也就是说,跟c++语言相比 java 执行起来较慢。它在不同的环境通过 java 解释器能实现运行,对代码的解析,实现每一个环境下都能运行的优势。为了更好简化编写过程,我们选用 Eclipse 作为该系统的开发工具。为了达到目标,牺牲效率还是值得的,并且酒店管理系统的目的是要实现更准确,功能完备,简捷使用,维护简单。而为了维护该系统的稳定运行,则要求建立数据一致性,这就需要通过SQL Sever 2008 R2 数据库来实现。,使用 SQL Sever 2008 R2数据库的优势在于:
1.保护您的信息。SQL Server 2008 R2 利用全面审核功能、透明数据加密和外围应用配置器(仅启用所需服务最大限度地减少安全攻击)来提高符合性和安全性。
2.确保业务连续性。SQL Server 2008 R2附带提供的数据库镜像可提高应用程序的可靠性,简化发生存储失败后的恢复过程。
3.提供可预测响应。SQL Server 2008 R2提供更广泛的性能数据收集、新的中央数据存储库(存储性能数据),以及改进的数据压缩(使您可以更有效地存储数据)。
4.最大限度地减少管理监视。Declarative Management Framework (DMF) 是 SQL Server 2008 R2中一个基于策略的新型管理框架,它通过为大多数数据库操作定义一组通用策略来简化日常维护操作,降低总拥有成本。?
5.成任何数据。SQL Server 2008 R2提供改进的查询性能和高效且具成本效益的数据存储,允许您管理和扩展数量庞大的用户和数据。
6.提供相关信息。SQL Server 2008 R2使用户可以在 Microsoft Office Word 和 Microsoft Office Excel 中创建复杂报表,并在内部和外部分享那些报表。 即时访问相关信息使员工可以做出更好、更快和更多相关决策。
二、操作上可行性
酒店管理系统是在利用现代化的技术来实现管理,这不仅为用户提供更好的服务,可以减轻酒店管理人员的负担,为酒店本身带来了很高的工作效率和资金收入。酒店管理系统不仅容易维护系统,系统本身具备华丽的用户界面可以让用户很方便的进行相关操作,相应功能易懂容易操作,可以让用户易于接受,用户只需熟练计算机基础操作即可。从而操作方面这种系统的开发是可行的。
三、经济上可行性
本酒店管理系统软件只需在 Windows 系统,Eclipse ,SQL Server 2008 R2 即可。硬件只需有一台正常的电脑即可。对于这样的条件每个酒店都有相应的条件,这种成本都是很小的成本支出。
3.2 系统功能分析
本系统功能模块图如下图 3-1 所示:
图3-1 系统功能模块图
第四章 系统设计
4.1数据库设计
根据前面我们所确定的酒店管理信息系统的需求,我们对酒店进行了数据库的需求分析与设计。计出该系统的数据结构及相关设置,如下面的图所示。
表4-1 用户信息表
列名 数据类型 允许null值
pk decimal(20, 0)
userid varchar(50)
pwd varchar(50)
puis varchar(50)
delmark int
other1 varchar(50) Y
other2 varchar(50) Y
表4-2结账信息表
列名 数据类型 允许null值
pk decimal(20, 0)
chk_no varchar(50)
in_no varchar(50)
days int
money float
chk_time varchar(50)
remark varchar(50) Y
delmark int
other1 varchar(50) Y
other2 varchar(50) Y
表4-3结账信息表1
列名 数据类型 允许null值
pk decimal(18, 0) Y
r_type_id varchar(50) Y
r-no varchar(50) Y
price float Y
discount int Y
Dis_price float Y
account float Y
money float Y
In_time varchar(50) Y
表4-4旅客类型表
列名 数据类型 允许null值
pk decimal(20, 0)
id varchar(50)
C_type varchar(50)
Dis_attr varchar(50)
discount int
price float
Dis_price Y
remark varchar(50) Y
delmark int
other1 varchar(50) Y
other2 varchar(50) Y
表4-5预订信息表
列名 数据类型 允许null值
pk decimal(20, 0)
C_name varchar(50)
C_ip varchar(50) Y
C_tel varchar(50)
R_type_id varchar(50)
R_no varchar(50)
Pa_time varchar(50) Y
Keep_time varchar(50)
Eng_time varchar(50)
Remark varchar(50) Y
engagemark Int
duemark int
delmark int
Other1 varchar(50) Y
Other2 varchar(50) Y
4.2系统界面设计
登录界面如4-1图所示。
图4-1 登录界面
主界面设计如图4-2所示。
图4-2 主界面
1.订房信息
订房管理充分考虑到客房选择问题,输入订单信息页而如图4-3所示。
图4-3 订房信息界面
2.订房信息查询
订房信息查询如图4-4所示。
图4-4 订单查询界面
1.入住登记界面设计
入住登记页面包含的个人信息包括:客户名称、电话、性别、身份证号等,如图4-5所示。
图4-5 入住登记界面
2.入住记录查询界面
入住记录查询界面可以统一查询入住记录。入住记录查询界面如图4-6所示。
图4-6 入住记录查询界面
结账界面设计如图图4-7所示。
图4-7 结账界面
客户管理界面设计如图4-8所示。
图4-8 客房类型查询
退出系统界面设计如图4-9所示。
图4-9 退出系统界面
第五章 系统的实现
5.1系统框架设计
为了系统的安全性,必须为该系统添加一个系统登录模块。
添加登录类login,定义成员变量用来记录当前登录名和用户密码信息,并且通过触发事件判断用户名和密码是否存在,然后进行登录操作。其代码如下:
public class Login extends JFrame implements ActionListener, KeyListener, ItemListener, FocusListener {
JLabel top, bott;
JComboBox cb;
JPasswordField pf;
JButton bt1, bt2;
JPanel panelMain, panelInfo;
String clue = " 提 示 : “;
int flag = 0; // 登记次数记数器
public statichotelFrame;//
public static String dluser;
public static String dlpassword;
public Login() {
super(“系 统 登 录”);
top = new JLabel(new ImageIcon(“pic/login_top.jpg”)); bott = new JLabel();
panelMain = new JPanel(new BorderLayout(10, 10));
bott.setBorder(new LineBorder(new Color(184, 173, 151)));
buildCenter();
panelMain.add(“North”, top);
panelMain.add(“South”, bott);
panelMain.add(panelInfo);
bt1.addActionListener(this);
bt2.addActionListener(this);
bt1.addFocusListener(this);
bt2.addFocusListener(this);
bt1.addKeyListener(this);
bt2.addKeyListener(this);
cb.addItemListener(this);
cb.addFocusListener(this);
pf.addFocusListener(this);
cb.addKeyListener(this);
pf.addKeyListener(this); this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
quit();
}// End windowClosing
});
主界面是整个系统通往各个功能模块的窗口,所以要将各个功能模块的窗体加入主界面中,同时要保证各窗体在主界面中布局合理,让用户方便操作。因此,在主界面中应加入整个系统的入口方式main,通过执行该方法进而执行整个系统。Main方法在窗体初始化时调用。主窗体文件HotelFrame.java的实现代码如下:
public class HotelFrame extends JFrame implements ActionListener, MoseListener, Runnable {
Individual idv = new Individual(this); // 散客开单
CheckOut co = new CheckOut(this); // 宾客结帐
Engage eg = new Engage(this); // 客房预定
Query qr = new Query(this); // 营业查询
Customer ct = new Customer(this); // 客户管理
Setup st = new Setup(this); // 系统设置
sunsql类用于建立与数据库的连接,通过获得的Default_Link标志,可以判断数据库采用的连接方式,此处是通过sunini类从文件中读取配置文件信息,并且赋值给相应的变量实现的,其代码如下:
public class sunsql {
private static Statement ste = null;
private static Connection conn = null;
private static final String DRIVERCLASS = ;
static {
try {
String user = sunini.getIniKey (“UserID”);
String pwd = sunini.getIniKey (“Password”);
String ip = sunini.getIniKey (“IP”);
String acc = sunini.getIniKey (“Access”);
String dbf = sunini.getIniKey (“DBFname”);
String url = + ip + “:” + acc + “;” + “databasename=” + dbf;
//注册驱动
Class.forName(DRIVERCLASS).newInstance();// 加载数据库 conn = DriverManager.getConnection (url, user, pwd);
conn.setAutoCommit (false);
ste = conn.createStatement();// 创建连接状态对象
catch (Exception ex) {
JOptionPane.showMessageDialog (null, “数据库连接失败…”, “错误”, JOptionPane.ERROR_MESSAGE);
System.exit(0);
}//End try
}
private sunsql(){
}
public static int executeUpdate(String sql) {
int i = 0 ;
try {
i = ste.executeUpdate(sql) ;
conn.commit();
}catch(Exception e) {
e.printStackTrace() ;
}
return i ;
}
5.2基本信息管理模块
在工程中增加系统设置类Setup,为此继承Java系统的JDialog类;同时实现监听器,只要在窗体上发生动作或者单击鼠标,都会触发相应事件;再定义 “系统设置”窗体需要的各种组件。其代码如下:
public class Setup extends JDialog implements ActionListener, MouseListener,WindowListener{
public Setup(JFrame frame) {
super (frame, “系统设置”, true);
top = new JLabel(); //假空格
panelMain = new JPanel(new BorderLayout(0,10));
tab(); //制作系统设置项目标签面板
addListener(); //加入事件监听
panelMain.add(“North”,top);
panelMain.add(“Center”,tp);
this.setContentPane(panelMain);
this.setPreferredSize (new Dimension (718,508));
this.setMinimumSize (new Dimension (718,508));
this.setResizable(false); //不允许改变窗口大小
pack();
sunswing.setWindowCenter(this); //窗口屏幕居中
this.addWindowListener(this);
}
private void addListener() {
bt11.addActionListener(this); //加动作监听
bt12.addActionListener(this);
bt13.addActionListener(this);
bt14.addActionListener(this);
bt15.addActionListener(this);
bt16.addActionListener(this);
在工程中增加客户类的添加类AddCustomerType,此类继承Java系统的JDialog类,同时实现监听器,只要窗体上发生动作或者单击鼠标,都会触发相应事件;再定义该窗体需要的各种组件。其代码如下:
public class AddCust omerType extends JDialog implements ActionListener {
public AddCustomerType(JDialog dialog) {
super(dialog, “客户类型”, true);
JLabel lb, lb1, lb2, lb4;
JPanel panelMain, panelInfo, p1, p2, p3, p4, p5;//定义组件面板
p1 = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 0));
p2 = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 0));
p3 = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 0));
p5 = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 0));
p4 = new JPanel(new FlowLayout(FlowLayout.CENTER, 30, 6));
panelInfo = new JPanel(new GridLayout(4, 1, 0, 0));
panelMain = new JPanel(new BorderLayout());
lb1 = new JLabel(“客户类型:”);
lb2 = new JLabel(“打折比例:”);
lb4 = new JLabel(“类型编号:”);
lb = new JLabel(”注:此打折比例仅适用于商品项目!
8为八折,10为不打折“);
lb.setForeground(new Color(255, 138, 0));
tf1 = new TJTextField(7);
tf2 = new TJTextField(7);
tf3 = new TJTextField(“10”, 7);
bt1 = new TJButton (“pic/save.gif”, “确定”, “确定添加客户类型”);
bt2 = new TJButton (“pic/cancel.gif”, “取消”, “取消操作”);
private void addListener() {
bt1.addActionListener(this);
bt2.addActionListener(this);
tf1.addActionListener(this);
tf2.addActionListener(this);
tf3.addActionListener(this);
}
}
(1)下面定义actionPerformed方法,其代码如下:
public void actionPerformed(ActionEvent ae) {
Object o = ae.getSource();
if(o == bt1) { //确定
saveAddCustomerType(); //保存数据
}else if(o == bt2) { //取消
this.setVisible(false);
}else if(o == tf1) { //客户类型
tf2.requestFocus(true);
}else if(o == tf2) { //客户类型
tf3.requestFocus(true);
}else if(o == tf3) { //折扣
saveAddCustomerType(); //保存数据
}//Endif
}
在setup类中增加jiFei方法,其代码如下:
private JPanel jiFei() {
JLabel lb1, lb2, lb3, lb4, lb5, lb6, lb7, lb8, lb9, lb10,
lb11, lb12, lb13, lb14, lb15, lb16;
//定义各方位面板
JPanel panelJF, jfTop, jfLeft, jfRight, jfBott;
JPanel jp1, jp2, jp3, jp4, jp5, jp6, jp7, jp8, jp9;
//定义标签
lb1 = new JLabel(” 客人开房时间在");
lb2 = new JLabel(“点之后按新的一天开始计费”);
lb3 = new JLabel(" 客人退房时间在");
lb4 = new JLabel(“点之后计价天数自动追加半天”);
lb5 = new JLabel(" 客人退房时间在");
lb6 = new JLabel(“点之后计价天数自动追加一天”);
lb7 = new JLabel(" 开房后");
lb8 = new JLabel(“分钟开始计费”);
lb9 = new JLabel(" 最少按");
lb10 = new JLabel(“小时计费,小于这个时间的按此时间计费”);
lb11 = new JLabel(" 若不足一小时但超过");
lb12 = new JLabel(“分钟的部分按1小时计费”);
lb13 = new JLabel(" 不足上面分钟数但超过");
lb14 = new JLabel(“分钟的部分按半小时计费”);
lb15 = new JLabel(“注:此设置仅限于标准计费的钟点房! “);
lb16 = new JLabel(” “);
lb15.setForeground(new Color(255, 138, 0));
//初始化计时计费设置
tf41 = new TJTextField(sunini.getIniKey(“In_Room”), 5);
tf42 = new TJTextField(sunini.getIniKey(“Out_Room1”), 5);
tf43 = new TJTextField(sunini.getIniKey(“Out_Room2”), 5);
tf44 = new TJTextField(sunini.getIniKey(“ClockRoom1”), 5);
tf45 = new TJTextField(sunini.getIniKey(“ClockRoom2”), 5);
tf46 = new TJTextField(sunini.getIniKey(“InsuHour1”), 5);
tf47 = new TJTextField(sunini.getIniKey(“InsuHour2”), 5);
在工程中添加营业查询类Query,并且定义好“营业查询”窗体需要的各种组件。本模块的查询操作包括结账单查询、全部宾客信息查询、在店宾客消费查询、离店宾客消费查询等。本项目集查询功能于同一窗体。在代码中增加各种查询所需的监听器,只要窗体上发生动作或者单击鼠标,都会触发相应事件。其代码如下:
public class Query extends JDialog implements ActionListener, MouseListener {
public Query(JFrame frame) {
super(frame,“营业查询”,true);
top = new JLabel(); //假空格
panelMain = new JPanel(new BorderLayout(0,5));
tab(); //制作系统设置项目标签面板
addListener(); //加入事件监听
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); //窗口屏幕居中
}
5.4旅客信息管理模块
在工程中添加客户管理类Customer,并且定义“客户管理”窗体需要的各种组件,此类继承Java系统的Jdialog类;同时实现监听器,只要窗体上发生动作或者单击鼠标,都会触发相应事件。其代码如下:
public class Customer extends JDialog implements ActionListener,MouseListener {
public void actionPerformed(ActionEvent ae) {
Object o = ae.getSource();
if(o==bt1) {//保存
long pk = sunsql.getPrimaryKey();//得到主键
String m_id,m_name,sex,zj_no,m_tel,address;
m_id = tf1.getText();
m_name = tf2.getText();
sex = cb1.getSelectedItem()+””;
zj_no = tf3.getText();
m_tel = tf4.getText();
address = tf5.getText();
if(m_id.equals(“”)||m_name.equals(“”)||zj_no.equals(“”)||m_tel.equals(“”)||address.equals(“”)) {
//若添加项有空值
JOptionPane.showMessageDialog(null,“会员信息有空值,请重新输入!”);
return;
}else {
try {
ResultSet rs = sunsql.executeQuery(“select m_id from member where m_id = '”+m_id+“’ and delmark = 0”);
if(rs.next()) {
JOptionPane.showMessageDialog(null,“该会员编号已存在,请重新输入!”);
tf1.requestFocus();
tf1.setText(“”);
}else if(!suntools.isNum(tf4.getText())) {//判断电话是否由数字组成
JOptionPane.showMessageDialog(null,“联系电话必须由数字组成,请重新输入!”);
tf4.setText(“”);
}else {//将添加的信息插入会员表
String sqlCode = “insert into member (pk,m_id,m_name,sex,zj_no,m_tel,address)” + “values (”+pk+“,'”+m_id+“‘,’”+m_name+“‘,’”+sex+“‘,’”+zj_no+“‘,’”+m_tel+“‘,’”+address+“')”;sunsql.executeUpdate(sqlCode);
this.setVisible(false);
}
}
catch (Exception ex) {
}
}
第六章 系统运行与测试
该系统在经过多次登录系统测试,确定了登录系统运行一切正常。随之逐项
进行界面的测试,在这一过程中,难免会出现一些问题与不足,比如数据库中未
及时更新物品消耗数量,客户退房结算金额计算不准确等。但是经过多次逐项的
测试,测试结果都是通过的。从而说明该系统是可行的,是一套成本低、执行效
率高、易于操作的适用于中小型酒店的管理系统。
该系统的测试环境如下:
软件:
操作系统:windows 7
数据库:SQL Sever 2008 R2 数据库
Java 环境:Java EE
参 考 文 献
[1] 王辰.基于Java 的中小型酒店管理系统设计与实现[D].吉林.软件学院.2015年12月
[2] 曾艳.中小型酒店管理系统的设计与实现[D].厦门.厦门大学.2013年10月
[3].曹琳.基于的酒店信息综合管理系统的设计与实现[D].吉林.吉林大学.2011年5月
致 谢
我首先要感谢我的导师付岩老师。在论文的完成过程中,是在付岩老师的指下完成的,在论文的完成过程之中,我的导师对我耐心地指导,提出了建设性意见给了我巨大的帮助,倾注了大量的心血。我的导师严谨的治学态度,一丝不苟的敬业精神,高水平的教学能力,都给我树立了成功的典范,这对于我以后的生活和学习中都起到了巨大的积极的影响。与此同时,我要感谢我班的同学们对我的关怀和帮助,他们又是我的同学,又是我的朋友,同时也是我学习的榜样,正是由于大家给予我的大力支持才使我顺利地完成了三年学业。感谢三年来给予我帮助的所有老师和同学们。最后,我还要感谢我的祖国,没有你伟大的教育事业,就没有我现在的成长。我还要感谢我的父母,你们的养育之恩我永远不会忘记,将来我也要用我的成绩回报你们。