基于JAVA的酒店管理系统毕业设计论文.doc
. .酒店前台管理系统摘要:酒店前台管理系统是伴随着计算机的普及和IT产业的兴起而出现的产物,该系统的产生为酒店的经营管理带来了很大的便捷-为此而得到了大X围的推广和使用;本系统是根据当前市场需求而设计;能够实现酒店前台与酒店各项管理制度的一体关联与带动性;能实现酒店管理的规X化和一体化;具有较长的市场存活周期。大西洋酒店前台管理系统是典型的信息采集系统, 系统开发的任务主要包括数据库的设计与维护、客户应用程序的开发这两个主要方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用,具有较强的可移植性等特点。酒店前台管理系统是当前市场酒店管理实现一体化和简洁话的一个不可缺的系统,该管理系统所提供的详细管理记录与管理资料使得酒店主管或酒店运营者能在较短的时间内做出准确而明智的决策,该系统的所提供的全面和便捷的功能使得酒店能比较健康的运营下去,因此我们所要开发的酒店前台管理系统应该能够为用户提供充足的信息和快捷的查询手段;我们所要开发的大西洋酒店前台明细查询管理系统是计算机管理本酒店的各种业务需求和业务实现的一种计算机应用技术的创新,本系统是根据当前酒店行业是发展需求而开发的系统经过分析,我们使用 Sun公司的 eclipse5.5 开发工具,利用其提供的各种面向对象的开发工具-如swing图形界面的设计;MYSQL来实现数据库的建立和数据库的相关操作;JDBC实现对数据库的连接操作。能在短时间内建立系统应用雏形,然后-对初始雏形系统进行需求的分析和系统个方面功能的不断补充和完善,对系统各功能模块的不断的修正和改进,最后形成当前的可行系统。目 录第一章 引言41.1课题背景41.2系统概述4第二章 系统开发平台52.1数据库技术概述52.2系统开发工具的选择5第三章 系统的分析63.1系统开发的思想和目标63.2 系统现状的分析63.3 系统分工及协作7第四章 系统总体结构设计74.1系统的数据流程设计74.2 系统的功能结构设计84.3 系统的数据库设计91. 酒店前台界面的设计. .122管理员登录及权限设定功能木快的实现流程. . . . .143酒店客房管理功能模块的实现流程. . . . .164. 酒店客房相关信息的查询功能的实现流程. . . . . . . . .175。酒店客房退房功能模块的实现流程. . . .19第五章 小结.20参考文献21第一章 引言11 课题背景酒店前台管理系统是当前市场酒店管理实现一体化和简洁话的一个不可缺的系统,该管理系统所提供的详细管理记录与管理资料使得酒店主管或酒店运营者能在较短的时间内做出准确而明智的决策,该系统的所提供的全面和便捷的功能使得酒店能比较健康的运营下去,因此我们所要开发的酒店前台管理系统应该能够为用户提供充足的信息和快捷的查询手段;我们所要开发的大西洋酒店前台明细查询管理系统是计算机管理本酒店的各种业务需求和业务实现的一种计算机应用技术的创新,本系统是根据当前酒店行业是发展需求而开发的系统,是典型的信息管理系统, 系统开发的任务主要包括数据库的设计与维护、客户端应用程序的开发这两个主要方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用和具有较强的可移植性等特点。1. 2 系统概述:本系统主要应用于酒店服务前台,服务于本酒店的各项业务需求。负责管理本酒店的酒店前台相关名细工作。大西洋酒店前台管理系统主要由以下几大功能模块构成:一:数据录入录入酒店已入住和未入住的客房相关信息:录入入住顾客相关信息:二:数据修改修改客房的相关属性:修改入住者的相关信息:修改当前管理员XX密码:实现新管理员的创建和旧管理员的删除功能:四:删除数据删除退房后顾客的相关信息:删除酒店不用或废弃的客房相关信息:六:查询明细将入住者信息与客房相关属性使用外键连接实现查询机制的一体化:七:退出系统第二章 系统开发平台2. 1 系统采用的数据库技术概述MYSQL 是目前最流行的开放源代码的数据库管理系统;MYSQL是一个高性能,多线程,多用户的建立在客户和服务器上的数据库管理系统:MYSQL所采用的SQL查询语言语言则集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中全部活动,包括定义关系模式、建立数据库、插入数据、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统的开发提供了良好的环境。用户在数据库投入了运行后,还可根据需要随时地逐步地修改模式,且并不影响数据库的运行,从而使系统具有良好的可扩展性。2. 2 系统开发工具的选择Eclipse是由Sun公司提出的免费开源软件;具有强大的java程序开发扩展性,能实现java程序的编写编译测试和运行的一体化;还支hibernate,cvs,xml,uml,Spring等面向对象编程的基于映射来实现的编程扩展性;是一款比较理想的开发软件。在开发的过程中我们只要应用是的Sun公司提供是Swing图形界面工具来实现主要模块和框架;故该系统是用纯java语言来实现的。2. 3 系统开发与数据库的连接的实现在系统开发的过程中我们采用的是JDBC在实现当前系统和数据库的连接;24 系统开发应用到的其他工具在系统开发的过程中我们使用了Photoshop作为系统开发过程中所需要处理的图象的图象处理工具。第三章 系统的分析3. 1 系统开发的思随着人们的物质精神生活的不断提高,酒店这一个行业作为一种民族传统与饮食文化的结合体而不断的得到发展和提升;而人们的物质生活上的需求导致了酒店这个行业的不断做大做好;显然在这样的条件下还依赖于以往的传统人工模式来实现酒店的前台管理不仅浪费了人力和物力:而且在很大的程度上制约了酒店的发展;使得酒店只能在狭小的空间中生存-然而在酒店行业发展的同时IT产业得到了飞速的发展;于是便诞生了将人们的所有需求与计算机相集合的发展模式;酒店前台管理系统也就是这样有供与需的前提下产生的。我们毕业设计的题目是大西洋酒店前台管理系统;该系统的各项管理功能的实现都集中的体现了该系统是一个典型的信息系统。系统JSP技术+MYSQL开发。我们所设计的系统将解决酒店前台管理凌乱而毫无规律的众多弊端、为酒店的管理提供一个系统化,合理化的管理系统:使得酒店能实现有效,有叙和高性能管理;所以该系统的设计和开发具有很大的现实意义。本系统开发的目标是服务于酒店行业的各项管理业务需求,方便工作人员,收集相关信息,发布相关信息,同时力求做到界面人性化,功能齐全,数据存储安全。32 系统现状的分析目前,有很多同类的系统,但由于各用户需求不同,在实际使用过程中,不能完全比较具有针对性的完成酒店前台管理系统的相关功能实现,而且存在维护困难等弊端。如果自主开发软件,而且使得软件能尽量的做到界面的人性化管理;在使用维护方面便能通过管理员及时、高效的完成软件的更新提高,从而尽最大可能的满足酒店前台业务管理的需求。技术上:本系统采用Sun公司提供的eclipse为开发工具和用MYSQL作为数据库,使用纯java进行开发;似的系统在安全性能方面得到了保障。经济上:本系统实现了酒店前台管理的基本业务需求的功能,系统的开发费用相对低廉-能被绝大多数的酒店接受,而且可大幅度降低人工管理过程中的费用,提高管理效率。操作上:本系统运行在通用的Windows操作系统上,具有Windows相似的操作界面。具有简单易学,使用方便等特点。管理人员只需懂得计算机基本操作,经过简单的培训即可操作。33 系统分工及系统协作经过对系统的分析,由于系统的特殊性,我们才用的是相互讨论-共同设计与共同完善的方式;小组共有两人。第四章 系统总体结构设计4. 1 系统的流程设计1 酒店前台需求分析与酒店业务需求分析。2 酒店客房布局与客房属性分析。3 系统设计与系统功能分析得到系统的最初雏形。4 系统详细设计与系统设施分析。5 系统测试与完善流程得到已经实现基本酒店业务需求的管理系统。6 系统设计完成打包并在其他系统下调试其性能。42 系统功能结构的设计:酒店前台管理系统的具体功能实现如下图所示: 在下图中设置有一个超级管理员既享有一切特殊管理权限的管理员,可以有多个普通管理员;均能够实现酒店前台管理系统的-一切界面面向对象的操作。酒店前台管理系统普通-管理员权限设置管理员登陆界面的管理操作查询-业务操作删除-业务登陆权限管理数据库-管理密码登入取消登入客房信息录入顾客信息录入顾客信息查询客房信息查询删除用户信息删除客房信息清除废弃客房清空当前记录重置用户名密码消除不用XX创建新XX创建数据库表实现界面管理实现数据库的维护统43 具体功能实现模块及其相关代码简介:在该过程中我们主要介绍以下功能模块:1 大西洋酒店管理系统主界:2 大西洋酒店管理系统-管理员登陆界面:3 大西洋酒店管理系统-超级管理员权限设置界面:4 大西洋酒店管理系统-添加管理员界:5 大西洋酒店管理系统-用户及客房信息查询界面:6 大西洋酒店管理系统-查询所有客房当前状态界面:431大西洋酒店管理系统主界面: 该界面主要功能是为管理员提供详细功能实现的组件-从而实现对酒店前台的详细管理:其中组件及其实现的相关功能为:1 管理员信息栏实现-超级管理员功能:具体的详细代码如下:publicclass FrameOnly implements ActionListenerJFrame jf0 = new JFrame("-大西洋酒店前台管理系统,是.bysj. 计算机毕业设计网提供辅导-");Date d1;Timer ti= new Timer(1000,this);JTextField jt1 = new JTextField(8);JTextField jt2 = new JTextField(8);public FrameOnly()jf0.setLayout(new BorderLayout(); JMenuBar jmb = new JMenuBar(); JMenu jm = new JMenu5; JMenuItem jmi = new JMenuItem9; String ss = " 管理员设置 ", ,"客房管理 ","当天经营额度 ","酒店概况 "String ss1 = "登陆管理","密码管理","权限管理","后台维护", "客房等级","客房入住","顾客退房","现有房间","酒店简介"for (int i = 0;i<ss.length;i+) jmi= new JMenu(ssi); jmb.add(jmi);/jf.add(jmi); for(int j= 0; j<ss1.length;j+) jmij = new JMenuItem(ss1j); jmij.addActionListener(this);if(0<=j&&j<3) jm0.add(jmij); if(4<=j&&j<4) jm1.add(jmij); if(8<=j&&j<6) jm2.add(jmij); if(12<=j&&j<7) jm3.add(jmij); if(j=9) jm4.add(jmij); String ss0 = "C:Documents and SettingsAdministratorworkspacejiudianqiantaitarenajiudianqiantaijframe000044.jpg"JPanel jp0 = new JPanel();Icon ic = new ImageIcon(ss0);JLabel jl0 = new JLabel(ic);JLabel jl3 = new JLabel(":欢迎您来到大西洋酒店:");jl3.setFont(new Font("kkk",20,30);jl3.setForeground(new Color(220,125,220);jl0.add(jl3);jp0.add(jl0);jl3.setBounds(50, 20, 430, 60);/jf.add(jp0); JLabel jl4 = new JLabel("-客房入住简况-"); jl0.add(jl4); jp0.add(jl0); jl4.setBounds(10, 75, 250, 50);jl4.setFont(new Font("kkk",15,25); jl4.setForeground(new Color(110,125,220); JTable jtl = new JTable(18,6);jl0.add(jtl);jtl.setBounds(5, 120, 250,288);jtl.setBackground(Color.green); jtl.setGridColor(Color.BLUE);/主界面中表格的初始赋值; String ss2 = "115","116","118","118","119","120",“121","122","123","124","125","126","127","128","129","130","131","132"for(int i =1;i<18;i+) jtl.setValueAt(ss2i, i, 0); String ss3 = "房号:","价格:","等级:","设施:","状态:" ;for(int i=0;i<ss3.length;i+) jtl.setValueAt(ss3i, 0, i); String ssc = JDBCUTIL.selectFull();for(int i=2 ;i<18;i+)for(int j=1;j<4;j+) jtl.setValueAt(ssci-1j,i-1,j ); 432 大西洋酒店管理系统-管理员登陆界面:该功能模块主要实现了普通管理员的创建和后台的管理功能:在做这个界面的时候,我参考了.bylw120.计算机毕业论文网的酒店管理系统界面设计,再此说明报告下噢。:实现该功能与数据库连接的相关代码如下:package .tarena.jiudianqiantai.util;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import .tarena.jiudianqiantai.jframe.Login;import .tarena.jiudianqiantai.jframe.PasswordManager;import .tarena.jiudianqiantai.jframe.Record;public class ChangeAdmin static boolean b1 ;public static Boolean selectAdmin() Connection con = null; con = JDBCUTIL.getConnection();/通过工具类的方法实现数据库的连接。 PreparedStatement ps = null; ResultSet rs = null; /StringBuffer sb = new StringBuffer();String sql = "select T_Admin,T_Pass from T_XS_User where T_Admin='"+Login.ss1+"'and T_Pass='"+Login.ss2+"'"ps = con.prepareStatement(sql);/获取一个可执行对象执行当前的sql。rs = ps.executeQuery(sql); public static void changeName()/创建一个方法实现管理员的名字的改变。Connection con = null;con = JDBCUTIL.getConnection();String sql = "select T_Admin from T_XS_User"String sql1 = "update T_XS_User set T_Admin='"+PasswordManager.ssp1+"'where T_Admin='"+PasswordManager.ssp+"'"/通过sql语句查询输入的酒密码是否存在,如果已经ResultSet re = null;/存在则将其替换为用户输入的新密码是实现过程: PreparedStatement ps = null; try ps= con.prepareStatement(sql); re = ps.executeQuery(sql);/通过可执行对象的操作返回一个结果集。while(re.next()String ss = re.getString("T_Admin"); if(ss.equals(PasswordManager.ssp) ps.executeQuery(sql1); public static void changePassword()/创建一个方法实现管理员的密码的更改。Connection con = null; con = JDBCUTIL.getConnection();String sql = "select T_Pass from T_XS_User"String sql1 = "update T_XS_User set T_Pass='"+PasswordManager.ssp1+"'where T_Pass='"+PasswordManager.ssp+"'" ResultSet re = null;PreparedStatement ps = null; try ps= con.prepareStatement(sql);re = ps.executeQuery(sql);while(re.next()String ss = re.getString("T_Pass"); if(ss.equals(PasswordManager.ssp) ps.executeQuery(sql1); 433大西洋酒店管理系统-添加管理员界:实现该功能的具体功能模块的界面为: public static void createUser()/创建一个方法实现新管理员的创建Connection con = null;con = JDBCUTIL.getConnection();PreparedStatement ps = null;try con.setAutomit(false); catch (SQLException e1) e1.printStackTrace(); String sql ="insertinto T_XS_User(T_Admin,T_Pass) values('"+PasswordManager.ssp+"','"+PasswordManager.ssp1+"')"try System.out.println(sql);ps = con.prepareStatement(sql);ps.executeUpdate(sql);con.mit();:对前边提到的实现数据库连接的工具类的描述代码如下:publicclass JDBCUTIL /注册驱动的实现;static String ss = "oracle.jdbc.driver.OracleDriver"try Class.forName(ss); catch (Exception e) e.printStackTrace(); /建立java程序与数据库的相关性连接;publicstatic Connection getConnection() Connection con = null; String url = "jdbc:oracle:thin:172.16.0.6:1521:tarena" String user = "sd0902" String pass ="sd0902"try con = DriverManager.getConnection(url,user,pass); catch(Exception ee) ee.printStackTrace(); return con; 434 大西洋酒店管理系统-用户及客房信息查询界面:实现该功能的界面和详细代码如下:实现该功能的详细代码为:String sql = "insert into guesthouse22(RoomNo,t_price,t_mode,t_ame) values('"+Record.ss0+"','"+Record.ss1+"','"+Record.ss2+"','"+Record.ss3+"')"String sql1 = "insert into t_customer(t_name,t_sex,t_o) values('"+Record.ss3+"','"+Record.ss4+"','"+Record.ss5+"')"String sql = "delete from guesthouse22 where RoomNo='"+OutRoom.ssd+"'"String sql1 = "delete from t_customer where t_name='"+OutRoom.ssd+"'"上边为用户信息入住和退房的核心sql语句:435:将数据库中的具体字段值在主界面的表格中展示出来的具体实现代码:String ss2 = "1101","1102","1201","1202","1203","1204","1301","1302","1303","1304","1401","1402","1403","1404","1501","1502","1503","1504"for(int i =1;i<18;i+) jtl.setValueAt(ss2i, i, 0); String ss3 = "房号:","价格:","等级:",":","性别:","证号:"for(int i=0;i<ss3.length;i+) jtl.setValueAt(ss3i, 0, i); String ssc = JDBCUTIL.selectFull();for(int i=2 ;i<18;i+)for(int j=1;j<4;j+) jtl.setValueAt(ssci-1j,i-1,j ); : 本段代码为:通过三个循环来实现下边的步奏:1 是在new有Jtabel并且将该对象添加到主界面Jframe中的前提下。2 利用第一个 for循环实现将Jtabel的第一列设置为房间管理表格的房号。3 利用第二个for循环实现将Jtabel的第一行设置为房间管理表格的属性字段值。4 利用第三个循环实现表格中去掉第一行第一列之外的空余表格的赋值。publicstatic String selectFull()String ssc =new String184;Connection con = null;PreparedStatement ps = null;ResultSet rs = null;String sql = "Select * from guesthouse22"try con = JDBCUTIL.getConnection();ps = con.prepareStatement(sql);rs = ps.executeQuery(sql); catch (SQLException e) e.printStackTrace();tryint i=0;while(rs.next()for(int j =0;j<4;j+) sscij =rs.getString(j+1);System.out.println( sscij);i+;catch(Exception ee)ee.printStackTrace();return ssc;:上段代码实现的是客房管理表格字段的取值:具体实现步骤如下:1 通过工具类获取一个数据库连接;一个数据库的可执行对象;一个数据库结果集。2 New出一个没有初始值的二维数组。3 利用一个while循环实现结果集的遍例查询。4 利用结果集的rs.next()实现结果的迭代取出。5 利用一个for循环和定义一个变量i字加来实现将迭代出来的值传递给二维数组。第五章 小结在大西洋酒店前台管理系统的开发过程中,我小组遇到了多方面的相关难题;从系统开发跨出第一步时-我小组组员都比较困惑,不了解自己将要开发的系统的具体需求分析;不了解自己将要开发的系统应实现的具体功能模块;也不了解自己将要开发的系统应具有那些可用性,实用性,安全性与系统维护的简易性,以及系统运行的便捷性。但是在和指导老师的交流过程以及和本组组员的相互探讨后思路逐渐清晰;对于酒店前台管理系统在现在社会的酒点行业中的供需关系;酒店前台管理系统应该实现的功能和目标也逐渐明确;在此明确了相关需求的前提下建立了最初的系统基本构架既系统的雏形产生。可是在之后的具体实施过程中又出先了很多新的问题。比如:1 怎样才能搭建出一个功能与实际生活接洽的使用性系统平台。2 怎样才能实现数据库和相应数表的建立。3 怎样才能用jdbc或者hibernate实现数据库与java程序之间的嵌接。4 怎样才能让用户同过界面性的东西对相关数据库进行操作。5 怎样才能实现超级管理员的权限设置等等.最后都是在和指导教师的指引和讲解下才慢慢的使得这些功能得以实现。通过本次毕业设计过程中对酒店前台管理系统的开发使得自己在java程序开发的过程中,面向对象的思想得到了锻炼和提高;使得自己明确了系统开发过程中应该注意的相关知识;以及让自己明确了在系统开发过程中必经的(需求分析-系统概要-系统设计-系统实施-系统的编译调试和运行)的重要性和必行性。系统开发的参考文献:1.Eclipse完全使用手册2.达内培训公司java自编教材3.达内培训公司JDBC自编教材4.达内培训公司MYSQL自编教材5.java核心技术机械工业(美国) Cay Shorstmann,Gary Cornell著由 叶乃文 翻译。6.java 学习笔记 JDK6.0清华大学()良格葛编写。7.SQL 入门经典清华大学(美国 )Paul Wilton/John Colby著。 . .word.