基于JAVA的宾馆管理系统.docx
《基于JAVA的宾馆管理系统.docx》由会员分享,可在线阅读,更多相关《基于JAVA的宾馆管理系统.docx(34页珍藏版)》请在冰点文库上搜索。
基于JAVA的宾馆管理系统
基于JAVA的宾馆管理系统
摘要
随着旅游业的发展,宾馆、餐饮娱乐行业日益发达,引入全方位的电脑服务和电脑管理日益流行。
宾馆的管理系统会随客人的需求而不断完善,及时的共享客人的信息,给客人提供人性化的服务已成为宾馆管理的目标和方向,而宾馆装潢、客房数量、价格等竞争将退居二线,可以预见的是,未来宾馆的竞争将在智能化、信息化方面展开。
本系统主要针对宾馆管理的信息系统。
本系统总体上由两大功能模块:
前台系统模块、后台数据管理模块组成。
系统涉及到三大类用户操作员、管理员、系统管理员。
采用Javaswing进行编写,SQL2000进行数据处理。
本系统易于操作,使用方便,操作性强。
关键词:
管理系统,java组件,数据库,操作性强
THEMANAGEMENTSYSTEMOFHOTELBASEDONJAVA
ABSTRACT
Withthedevelopmentoftourism,hotels,diningandentertainmentindustryisincreasinglydeveloped,theintroductionofafullrangeofcomputerservicesandcomputermanagementisincreasinglypopular.Hotelmanagementsystemwiththeguests'needsandconstantlyimprovethetimelysharingofinformationoftheguests,offerspersonalizedservicehasbecomethegoalsanddirectionofthehotelmanagement,hoteldecor,roomnumber,pricecompetitionwilltakeabackseattheforeseeablefuturecompetitioninthehotelwillcommenceintheintelligenceandinformation.
Thissystemismainlyforhotelmanagementinformationsystem.Theoverallsystemiscomposedoftwofunctionalmodules:
thefrontsystemmodule,thebackgrounddatamanagementmodule.Thesysteminvolvesthreemaintypesofuseroperator,administrator,systemadministrator.UsingtheJavaSwingforthepreparationoftheSQL2000fordataprocessing.Thesystemiseasytooperate,easytouseandoperate.
KEYWORDS:
managementsystem,javaswing,database,operable
1绪论
1.1引言
随着信息技术的不断发展,计算机网络(以下简称网络)的日益普及,特别是企业管理信息化的的推进中,使得网络广泛地融入到人们生活的各个方面,成为人们不可或缺的重要组成部分。
针对目前宾馆电子化管理的实际需求,和消费客户对跨时域地域预订住宿的要求,本需求分析定义的开发宾馆管理系统的总体要求是:
作为两类用户(一般客户和宾馆管理人员)和软件开发员互相了解的基础,系统成品提供用户登录、查询、管理员后台管理等四大功能服务。
1.2系统开发目的
对内是为了使宾馆管理更加便捷、高效,员工操作更加明晰、规范,大提高宾馆管理质量。
对外是能让用户自助登录、查询宾馆住房信息和宾馆服务、实现零距离实时预定宾馆房间,为客户提供舒心的出行住宿保证,提高社会效益。
本需求分析包含了初步分析设计各功能模块、提供性能要求、对用户影响的信息、以及对各功能模块功能的描述。
2系统开发技术概述
2.1开发语言简介
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。
非常实用。
(1)Java语言是简单的。
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
(2)Java语言是一个面向对象的。
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
(3)Java语言是分布式的。
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(javanet),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。
(4)Java语言是健壮的。
Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。
(5)Java语言是安全的。
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。
(6)Java语言是体系结构中立的。
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
(7)Java语言是可移植的。
这种可移植性来源于体系结构中立性。
Java系统本身也具有很强的可移植性,Java编译器是用Java实现,Java的运行环境是用ANSIC实现的。
(8)Java语言是解释型的。
如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。
在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
(9)Java是高性能的。
与那些解释型的高级脚本语言相比,Java的确是高性能的。
(10)Java语言是多线程的。
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
(11)Java语言是动态的。
Java语言的设计目标之一是适应于动态变化的环境。
Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。
2.2研究内容
本系统用java语言来编写宾馆管理系统,数据库用MicrosoftSQLServer2000来连接系统,通过C/S模式完成整个设计工作。
在设计系统是要实现以下功能模块:
(1)登录界面部分
登陆界面部分,包括用户名输入,密码输入。
(2)主界面部分
房间管理模块:
客房预定管理模块,包括身份录入,房间编号,房间信息;房间设置管理模块,包括信息录入,添加,查询,删除。
营业管理模块:
点菜/结账,酒菜设置,添加商品和商家信息。
系统管理模块:
用户密码重置,管理用户。
(3)数据库部分
用eclipse进行数据库连接以及对数据的处理。
2.3拟采用的研究思路方法
本系统的设计大体可分为两个模块:
前台用户操作系统、后台管理系统。
用Java语言来编写两个模块,数据库用MicrosoftSQLServer2000来连接系统。
本系统以Java语言对系统进行开发该系统主要采用eclipse开发实现各方面的功能。
同时该系统采用SQLServer作为数据库平台,既可以被应用程序访问,又可在后台操作,完成对数据的整理等。
基于java的小型宾馆管理系统系统是典型的C/S,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
因此本人结合基于java的小型宾馆管理系统的要求,对SQLServer2000数据库管理系统、SQL语言原理、进行了较深入的学习和应用,主要完成对基于java的系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。
基于java的宾馆管理系统系统包括三类用户:
操作员、C/S系统后台管理员。
前台部分主要包括用户登录用户及相关信息管理等功能后台部分由管理员使用,主要包括对用户的管理的小型宾馆管理系统。
3概要设计
3.1系统概述
宾馆管理系统系统用java语言来编写宾馆管理系统,数据库用MicrosoftSQLServer2000来连接系统,通过C/S模式完成整个设计工作。
本系运用了JavaSwing,即抽象窗口工具包,它是Java的平台独立的窗口系统。
用户界面:
采用Windows的通用图形界面,对用户友好,管理端设备以pc机和鼠标键盘输入为主。
界面设计应遵循:
(1)尽量保持一致性:
界面规范应遵循MSWindows软件界面的规范。
(2)设计完整的对话过程:
系统的每一次对话都应该有明确的次序。
(3)提供简单的错误处理机制。
(4)提供信息反馈:
用多种信息提示用户当前软件运行状态,界面元件的功能。
(5)操作可逆:
其动作可以是单个的操作,或者是一个相对独立的操作序列。
(6)设计良好的联机帮助。
宾馆管理系统系统用java语言来编写宾馆管理系统,数据库用MicrosoftSQLServer2000来连接系统,通过C/S模式完成整个设计工作。
本系运用了JavaAWT以及Swing,即抽象窗口工具包,它是Java的平台独立的窗口系统,AWT工具图形和用户界面器件工具包。
在设计系统是要实现以下主要功能模块:
详细模块见表3-1。
表3-1功能模块图
序号
功能名称
功能需求分析
描述
1
用户登录子系统
用户登录系统
用户按级限登录
2
房间管理
子系统
房间管理系统
客房预定、
客房设置功能
3
营业管理
子系统
营业管理系统
点菜、酒菜、收银、
查询供应商信息
4
信息查询子系统
信息查询
系统
按不同方式了解宾馆的营销情况
5
系统管理子系统
系统管理退出系统
重置密码、
管理用户
6
用户帮助
子系统
帮助
系统
使用手册、
系统退出
3.2功能模块详细描述
系统流程图如图3-1所示。
图3-1系统流程图
根据以上的系统功能分析,可以画系统的功能模块图,本系统包含了客房管理、营业管理、信息查询、系统管理以及帮助功能模块,如图3-2所示。
图3-2功能模块图
该系统分为超级管理员、管理员、操作员三个权限操作,它们可实现的功能分别是:
(1)超级管理员
房间管理、营业管理、信息管理、系统管理、帮助。
(2)管理员
房间管理、营业管理、信息管理、系统管理。
(3)操作员
客房设置、酒菜设置、重置密码。
4系统详细设计
4.1前台系统详细设计
4.1.1各功能模块详细介绍
(1)管理人员登录
数据库调置了管理人员登录用户名密码,若登录信息与数据库不符则提示“错误的用户名及密码”,需重新输入,如果输入错误三次,自动退出系统。
登陆页面截图,如图4-1所示。
图4-1系统登陆图
核心代码:
publicvoidlogin_actionPerformed(ActionEvente){//取得用户输入的用户名
Stringoperator=username.getText();//取得用户输入的密码
chartemp[]=password.getPassword();
StringtempPass=newString(temp);//检查用户是否为合法用户
if(cUser.isValidUser(operator,tempPass)==false){
JOptionPane.showMessageDialog(this,"错误的用户名或密码","错误",
JOptionPane.WARNING_MESSAGE);
logincount++;//如果输入错误三次,自动退出系统
setBounds(inset,inset,screenSize.width-inset*2,screenSize.height-inset*2);
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height
frameSize.height)//将当前用户的名称传送给主界面
frame.setOperator(operator);//设置用户可以使用的功能
frame.setMenuStatus(userType);//显示主界面
frame.setVisible(true);//关闭登陆窗口
this.dispose();
(2)客房预订
由操作员填写客人的信息并进行客房登记。
该功能将客人的私人信息以及所定的房间记录并存入数据库。
如图4-2所示。
图4-2房台预定图
核心代码:
voidok_actionPerformed(ActionEvente){//验证输入参数的合法性
booleanoccupied=this.roomOccupied(roomNo.getSelectedItem().toString());
Connectionconn=null;
voidcancel_actionPerformed(ActionEvente){
this.dispose();}
(3)客房设置
根据需求设置房间详细信息如:
客房编号、所属部门、客房类型以及可容纳人数等。
并可添加删除房间号,如图4-3所示。
图4-3房台设置图
核心代码:
voidaddRoom_actionPerformed(ActionEvente){
if(roomNo.getText().trim().equals(""))
{
JOptionPane.showMessageDialog(this,"客房编号不能为空","错误
",JOptionPane.ERROR_MESSAGE);
return;
}
booleanroomExist=this.roomExist();
JButtonrefreshButton=DBNavToolBar.getRefreshButton();
refreshButton.doClick();
JOptionPane.showMessageDialog(this,"已成功增加该客房","操作",JOptionPane.PLAIN_MESSAGE);
}
voiddeleteRoom_actionPerformed(ActionEvente){
Connectionconn=null;
PreparedStatementps=null;
JOptionPane.showMessageDialog(this,"已成功删除该客房","操作",
JOptionPane.PLAIN_MESSAGE);
}
}
(4)点菜/结账
输入客人所点食物的信息以及房间号、容纳人数及顾客的姓名联系电话,并结账。
如图4-4所示。
图4-4点菜结账图
核心代码:
voiddoOrder_actionPerformed(ActionEvente){
StringroomId=roomNo.getSelectedItem().toString();
booleanoccupied=this.roomOccupied(roomId);
if(!
occupied)
{
JOptionPane.showMessageDialog(this,"该房台没有客人!
","提示",
JOptionPane.PLAIN_MESSAGE);
return;
}
MenuInfomInfo=newMenuInfo(null,"菜单列表
",true,roomNo.getSelectedItem().toString(),customer.getText(),cusTel.getText(),this.operator);mInfo.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height–
frameSize.height)/2);
mInfo.setVisible(true);
}
(5)酒菜设置
设置酒菜详细信息如:
酒菜的生产地点,所属单位、批发价、零售价等,如图4-5所示。
图4-5酒菜设置图
核心代码:
if(this.foodExist(foodName.getText()))
{
JOptionPane.showMessageDialog(this,"已存在该名称的酒菜","错误",JOptionPane.ERROR_MESSAGE);
return;
}
JButtonrefreshButton=DBNavToolBar.getRefreshButton();
refreshButton.doClick();
JOptionPane.showMessageDialog(this,"已成功增加该食品","操作",JOptionPane.PLAIN_MESSAGE);
}
voiddeleteFood_actionPerformed(ActionEvente){
Connectionconn=null;
if(ps.executeUpdate()==1)
{//刷新列表显示
JButtonrefreshButton=DBNavToolBar.getRefreshButton();
refreshButton.doClick();
JOptionPane.showMessageDialog(this,"已成功删除该食品","操作",
JOptionPane.PLAIN_MESSAGE);
}
}
(6)商品入库
添加入库信息如:
商品名称、供应商、单价、经手人、数量等功能实现截图,如图4-6所示。
图4-6商品入库
核心代码:
voidok_actionPerformed(ActionEvente){
if(price.getText().trim().equals("")||discount.getText().trim().equals("")||amount.getText().trim().equals(""))
{
JOptionPane.showMessageDialog(this,"单价、数量和折扣不能为空,无折扣请输入1!
","警告",
JOptionPane.ERROR_MESSAGE);
return;
}
temp=amount.getText().trim();
voidcommodity_actionPerformed(ActionEvente){
if(commodity.getSelectedIndex()==-1)
return;
StringselectedFood=commodity.getSelectedItem().toString();
supplier.setText((foodSupplier.get(selectedFood)).toString());
}
}
(7)供应商信息
查询供应商信息如图4-7所示。
图4-7供应商信息
核心代码:
publicSupplierConfiguration(Stringtitle,booleanresizable,booleanclosable,booleanmaximizable,booleaniconifiable){
super(title,resizable,closable,maximizable,iconifiable);
}
(8)按酒菜查询
按酒菜查询得知宾馆的营业情况,宾馆便可以根据情况实时地调整营销策略如图4-8所示。
图4-8查询酒菜消费情况图
核心代码:
voidbyTime_actionPerformed(ActionEvente){
voidok_actionPerformed(ActionEvente){
StringstartDate;
StringendDate;}
QueryByFoodResultdlg=newQueryByFoodResult("查询结果",foodName.getSelectedItem().toString(),startDate,endDate);
dlg.setVisible(true);
desktop.add(dlg);}}
(9)重置密码
管理人员修改密码,如图4-9所示。
图4-9密码重置图
核心代码:
voidok_actionPerformed(ActionEvente){
MainFramek=(MainFrame)this.getOwner();
Stringoperator=k.getOperator();
if(!
cUser.isValidUser(operator,tempPass))
JOptionPane.showMessageDialog(this,"错误的原密码","错误
",JOptionPane.WARNING_MESSAGE);
else{
if(!
pass1.equals(pass2))
JOptionPane.showMessageDialog(this,"两次输入的新密码不一致","错误",JOptionPane.WARNING_MESSAGE);
JOptionPane.showMessageDialog(this,"密码已成功修改","提示",JOptionPane.WARNING_MESSAGE);}}
(10)管理用户
添加删除用户,