《基于jsp酒店管理系统设计学士学位论文.doc》由会员分享,可在线阅读,更多相关《基于jsp酒店管理系统设计学士学位论文.doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目 录论文摘要1Abstract2第一章 论序11.1 酒店餐饮管理发展现状11.2系统开发可行性分析21.3论文的结构21.4本章小结2第二章 酒店餐饮管理系统方案设计分析42.1系统流程分析42.2系统功能需求分析6第三章 酒店餐饮管理系统数据库设计193.1数据库设计193.2本章小结26第四章 酒店管理系统界面详细介绍284.1系统界面284.2 系统实现部分代码方法334.3 系统测试334.4 本章小结33第五章 总计33致谢38参考文献38 论文摘要 在积极建立科学管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,管理部门面对大量的信息,无法有效率地将其中的重要部分提取出来,
2、并做出相应的判断和处理。管理者的决策只能依据手工表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的管理思想就成为了一个可望而不可及的目标。酒店餐饮管理急需一套既有先进管理思想的系统,作为实现目标和提高现有管理水平的一种重要手段。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 编写在餐椅管理系统,最重要的一点就是如何从烦琐的菜品信息中,直观的展现在系统之中,便于操作。开发该系统我主要采用java语言和MYSQL数据库相结合的方式。,JAVA作为一种面向对象语言,自身定义了
3、很多类,使用起来方便,并且在图形界面方面的方法通俗易懂,容易上手,开发成本低。 Abstract Actively establish a scientific management system oftoday,only bythe original manual management orsimple stand-alonemanagement,management department of information,can not effectivelyextracted from one of the important part,and make the corresponding
4、judgment and handling.The managers decision to vote onlyaccording to the statement data,can not do real-time monitoringin a largewaste of manpower and material resourcesat the same time,it is difficult toensure the accuracy and timeliness of data.Therefore,the advanced management ideas to becomeanel
5、usive goal.Hotel and catering managementin urgent need ofa set ofadvanced management thought ofsystemas agoal andan important means to improvethemanagement level.Withthe continuous improvement of science and technology,computer science increasingly mature,and its powerful functions for the peoples p
6、rofound understanding,it hasentered the human society in various fieldsand is playing an increasingly important role. Written in thediningmanagement system management system,the most important point ishow tofrom the cumbersomemenu information,visual display ofthesystem,easy to operate.Development of
7、 the system I mainly usejavalanguage and MYSQL databasecombination.JAVA,as a kind ofobject oriented language,itsdefinition of a lot ofclass,easy to use,graphical interfaceandmethod inthepopular and easy to understand,easy to use,low cost of development. 第一章 绪论 第一节 酒店餐饮管理发展现状随着旅游业的发展,酒店、餐饮娱乐行业日趋发达,引入
8、全方位的电脑服务和电脑管理日益流行。同时,餐厅娱乐业引入电脑服务和管理也取得了优良的经济效益和社会效益。为此,国家建设部已于最近作出明确规定:凡星级餐饮酒店在项目审批时,其设计方案必须包括电脑管理系统,否则不予立项。可见,餐饮酒店管理电脑化势在必行。酒店管理系统将先进的电脑技术与现代餐饮服务管理完美地结合起来,实现了餐饮全新概念的服务和管理方式。传统的餐饮酒店管理往往令管理者花大量的时间来处理顾客的订单,例如错误查询、烦琐的登记和结帐手续、费用计算错误、菜品资料不能及时提供等,从而影响酒店餐饮销售,使的管理人员不得不集中精力规划管理运行策略和进行决策。以上问题可通过电脑系统辅助解决,酒店管理的
9、电脑化,不仅是体现餐饮酒店现代化形象的一个重要标志 ,而且对于提高员工工作效率,加速资金周转、降低各项成本及改善服务质量都有十分积极的作用。第二节 系统可行性研究 一、 经济可行性 由于本酒店餐椅管理系统所要求的硬件(计算机及相关硬件)和软件环境(WINDOW系统+MYSQL),市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对酒店不造成过重的经济负担。而一旦此系统投入使用,不仅可以减少酒店餐饮工作的强度,提高工作效率,而且方便了酒店对信息的管理,延续了传统的管理模式,极大限度的方便了酒店管理人员,而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节
10、省的大量人力、财力产生的效益将远远大于本系统的开发成本,所以从经济方面讲开发此系统是可行的。 二、技术可行性1)本系统采用java开发,首先先Java 语言是简单的,Java 虽然与C+有很多相似的地方,但它却比java简单得多。在java语言中省去了算符过载、标题文件、预处理、指针运算、结构、联合、多维数组、模板及隐式类型变换等很难把握的方法。其次Java语言是一种面向对象的编程语言。除了简单的类型,如数字和布尔算子之外,Java语言中的大部分都是对象。在JAVA中每个类定义一组规定对象行为的方法。一个类可以继承另一个类的行为。在类的根层次上,通常是类对象。Java支持单继承,这避免了继承的
11、混乱。不仅如此Java语言中还用到了接口类,因此我们在编程之前不必急于把握方法的实现。而是定义类的方法,一个类允许有多个接口,使其实现了真正多继承性的许多优点。Java 是静态类型的,在一个 Java 程序中,必须定义所用对象(数字、字符、数组等)的类型。这有利于编程人员很快查找问题并解决问题。 2)本系统使用的数据库为MYSQL,MYSQL兼容SQL,SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。MYSQL是一个小型关系型数据库管理系统,MYSQL被广泛地应用在软件开发上的中小型系统中。由于其体积小、速度快、总体拥有成本低,尤其是开放源
12、码这一特点,许多中小型系统为了降低系统开发总体拥有成本而选择了MYSQL作为网站数据库。 3)编程语言和开发工具(1)编程语言:java(2)数据库:MYSQL数据库(3)开发工具:Myeclipse 8.5、MYSQL5.5等 因此,系统的软件开发平台已成熟可行。 三、操作可行性传统是用人工的方式来进行的各项酒店订单管理,比如人工进行记录,人工进行记录顾客下单信息、价格变动和菜品采购,统计信息管理,口头通知或者通过电话等方式联系进行关于交易的信息传递与交流,拿最平常的统计管理来讲,光是每天进账报审就是一道令人费解的过程,而在当今计算机技术不断发展的今天,这些问题可以轻而易举的通过计算机和网络
13、来完成,不仅方便快捷而且简单易操作。同时对于库存信息里面的内容管理,过去也多数是以纸质材料进行保存,这样查询起来不仅麻烦不方便,性能比较差,而且容易丢失,不易保存,另外时间一旦较长,将会产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。如果采用电子文档的方式进行保存,不仅查询起来方便,而且安全性比较高,只有有权限的人才可以看到,只要多备份几个,而且多出备份也更容易。可以保存很多年,不会发生像传统的纸质材料保存所出现的问题。 四、法律可行性 由于本系统是在相关法律法规下实施完成的,所以不存在任何法律问题,在法律上是完全可行的。从以上四种可行性分析可看出,本系统是可行的。第三节 论文
14、结构第一章:酒店管理系统的开发背景、开发意义、可行性分析。第二章:从系统的发展历史、酒店餐饮管理系统的发展现状、管理方式阐明酒店餐饮管理系统的作用。第三章:对将要创建系统的需求分析、目标系统要求的分析和数据库的设计。第四章:对系统概要设计的分析。第五章:对系统的实现方法和编码设计的分析。第六章:对整个系统的功能测试。第七章:总结。第四节 本章小结 传统的酒店餐饮管理往往令管理者花大量的时间来处理顾客投诉,例如错误查询、烦琐的登记和结帐手续、旅客费用计算错误、空余客房资料不能及时提供等,从而影响出租率,使的管理人员不得不集中精力规划管理运行策略和进行决策。以上问题可通过电脑系统辅助解决,酒店餐饮
15、管理的电脑化,不仅是体现酒店餐饮管理现代化形象的一个重要标志 ,而且对于提高员工工作效率,加速资金周转、降低各项成本及改善服务质量都有十分积极的作用。所以酒店餐饮管理系统的开发是必然的。第二章 酒店管理餐饮管理系统的设计分析第一节 系统流程分析一、菜品管理流程 如图2-1:进入主界面选择菜品管理自动生成编号点击添加填写菜品相关信息图2-1 菜品管理流程二、 菜系管理流程进入主界面选择菜系管理菜系管理界面点击添加填写菜系信 息 图2-2 菜系管理流程三、管理员登录流程 管理员登录流程,如图2-3所示: 登录入口 取得用户名和密码 将UserID存入session中 用户是否存在核对密码是否正确
16、登录成功进入系统主界面是是否否 图2-3 管理员登录流程四、 管理员用户管理流程 管理员管理用户流程,如图2-4所示:主界面添加用户查看用户信息填写用户相关信息点击添加用户管理删除查询修改 图2-4 管理员登录流程客人五、台号管理流程台号管理用户流程,如图2-5所示:主界面台号管理添加填写信息删除查看确认 图2-5 台号管理用户流程六、结帐管理流程结帐管理如图2-6所示:主界面日结帐年结帐月结帐选择日期选择月份日结帐信息年结帐信息月结帐信息选择年份结帐界面 图2-6 结帐管理流程七、 修改登录密码流程 修改密码部分流程图如图2-7所示:主界面修改密码填写原始密码填写新密码确认新密码确认 图2-
17、7 修改密码部分流程图 八、 订菜系统流程 订菜系统流程,如图2-8所示:主界面输入菜单编号或者菜单助记码取消选择台号开单签单 图2-8 订菜系统流程九、 菜品管理流程 菜品管理部分流程,如图2-8所示:菜品管理自动生成编号填写菜系助记号点击添加填写菜品其它信息 图2-9 菜品管理部分流程 十、 订菜系统流程订菜系统流程,如图2-9所示:主界面输入菜单编号或者菜单助记码取消选择台号开单签单 图2-10 订菜系统流程十一、 找零管理流程 找零管理部分流程,如图2-10所示:主界面提 示是否显示消费金额选择台号输入实收金额找 零 图2-11 找零管理部分流程第二节 系统功能需求分析一、订单系统台号
18、的选择菜单添加 由于人们生活水平的提高,生活节奏的加快,酒店餐饮行业需求出现了供不应求的趋势,基于此,酒店管理系统中订单系统是客房管理信息系统中不可缺少的一部分,住客可以通过订单业务向酒店工作人员预先定下菜单。以便于客户能在约定好的时间,能正常的就餐和就坐在自己想要就餐的位置。酒店方面也可及时的安排调度。二、下单系统台号的选择菜单的添加菜单确认和取消下单系统主要是用于在客户在来店时所点的菜单,工作人员可以通过系统填写菜单的助记号(或者菜单编号)和数量来下单,下单后可以选择签单来确认所点的菜已经上桌,临时取消的菜可以在选择后取消。三、账单统计报表日账单统计月账单统计年账单统计统计报表是用于对可放
19、的经营状况进行统计,包括对收银数据的账单的分类统计统计,便于酒店管理,明确收支情况。四、收银系统消费的金额实收金额找零方便收银人员可以通过直接明了的看到用户的消费金额,系统还可以自动结算找零,减少了工作人员的工作量,出错少。五、菜系管理菜系名称餐饮酒店菜系种类多,有多种菜系选择。为了体现实现智能化的管理系统,菜系名称由具有工作人员填写。六、菜品管理菜品名称助记符价格单位等菜品信息的录入是在点餐过层中最重要的环节,这过程要求快而且准确。不能出错,所以加入助记符,服务员可以通过助记符或者菜品编号输入菜品。 七、台号管理台号名称人数酒店餐饮不同台号对应的位置和人数不一样,台号的选择可以根据到店客户的
20、人数,由服务人员安排与之相符合的台号。 八、系统管理更改密码系统设置系统管理是每个系统所必须具备的功能,主要是对操作该系统的使用者进行管理(即用户管理),包括用户的增加、删除、密码的修改以及管理各用户操作该系统的权限。并且实现房间基本设置功能以及各种系统设置功能,比如说房价设置等等。第三节 本章小结本章主要对系统的设计与流程进行分析与设计。阐述了系统主要实现的功能。第三章 酒店餐饮管理系统数据库设计第一节 数据库设计一、数据库需求分析根据上面对该系统每个模块的详细分析,以及在系统分析中数据流程图的分析,设计的数据项和数据结构如下:台号信息:台号主要包括桌子的位置,号码及容纳的人数等等。预定登记
21、信息:包括预定时间、预定就餐时间、预定台号、预定人姓名性别、预定就餐人数、联系电话、预定方式、预订菜单等等。帐单信息:包括帐单编号、就餐台号、消费时间、消费金额、折扣、操作管理员编号、以及其他消费的项目收费菜品信息:主要包括更新日期、数量、菜品编号、菜品单位、菜品价格、菜品名称、菜品的助记符、菜品系别、菜品是否在售。统计信息:主要包括结帐时间、收费编号、入账日期、菜品编号、入账的金额、菜品的数量等等。菜系信息:包括菜系的名称、时间、菜系的备注。操作员基本信息及其权限设置。包括操作员代号、姓名、密码、权限、以及各种模块的操作权限设置标志。二、数据库概念结构设计 ER图及其间的关系如图3-1:管理
22、员 管理 台号台号人数位置 菜系名称图3-1 管理员 管 理操作人员用户名联系方式级别密码性别入职时间图3-2三、数据库逻辑结构设计(1)名称:入住登记表表名称标识:menu数据来源:菜品模块进行录入表结构如图3-2:是否关键字列名数据类型长度允许空备注是numchar8no菜品编号否Sort_idint11no菜系id(外键)否Namevarchar20no菜品名否codevarchar20no助记号否unitvarchar4no单位否Unit_priceint11no单价否statevachar4no是否在售图3-2表menu(2) 名称:台号信息表名称标识:desk数据来源: 台号管理模
23、块进行更新查询:表名称标识:desk表结构如图3-3:是否关键字列名数据类型长度允许空备注是numint8no台号否seatingInt11yes座位人数否positionchar10yes位置信息图3-3 表GuestRoom(3) 名称:下单信息表名称标识:order_form数据来源: 订单模块进行录入查询表结构如图3-4:是否关键字列名数据类型长度允许空备注是 numchar11no下单编号否 Desk_numvachar5yes台号信息否datetimedatetime12yes时间否 moneyint11yes金额否User_idint11yes工作人员id图3-4 表order_
24、form(4)名称:入账信息统计情况表名称标识:order_item数据来源: 房间状况模块进行更新查询表结构如图3-5:是否关键字列名数据类型长度允许空备注是idint11noid否order_form_numvarchar11no订单编号否amountint11no否totalint11no总计图3-5 表order_item(5) 名称:房间预定信息表名称标识:id数据来源: 菜系管理模块进行录入表结构如图3-6:是否关键字列名数据类型长度允许空备注是idint11no主键否namevachar20yes菜系名否smvarchar20yes说明图3-6 表roomyd(6) 名称:操作员
25、基本信息和权限表名称标识:users数据来源: 系统管理模块进行录入表结构如图3-7:是否关键字列名数据类型长度允许空备注是UIDint4no管理员编号否UNamevarchar30no姓名否UPasswordvarchar20no密码否UStatechar10no用户状态否USexchar10no性别否UPositionchar10no用户的职位否UTelint4no联系电话否UEmailvarchar40noUEmail否UDepartmentvarchar50no用户所在部门图3-7 表users第二节 本章小结本章主要阐述了对数据库的设计。第三章 系统界面详细设计第一节 系统功能介绍一
26、、登录界面这个界面是公司员工进行的操作,对系统的管理必须在登录状态下才能进行操作,登录信息包括管理员的账户和密码,只要两者都正确的情况下才能登录成功进入系统。登录界面如下界面如图4-1-1所示: 图4-1-1 登录界面如果在登入时所填写的密码不正确就会出现提示,显示页面如图4-1-2所示: 图4-1-2 登录界面二、 用户管理界面 用户管理界面主要是增加和删除酒店管理员的界面,在酒店人事变更的情况下,酒店管理经常需要对操作人信息进行更换。操作人信息主要包括姓名,性别,出生日期,身份证号以及原始登录密码。此界还可以选择删除操作人员,查看已有的操作人员信息。 具体界面信息如图4-2所示: 图4-2
27、 用户管理界面 三、 密码修改界面 密码修改界面主要用于用户修改密码。输入的密码都不会显示,以加强安全。在原始密码正确的条件下,输入新密码并确认新密码后,修改密码成功。 具体操作如图4-3所示: 图4-3 密码修改界面四、 菜系管理界面 进入菜系管理界面可以查看,添加和删除菜系名称。如若要添加新的菜系名称则只需输入名称点击添加即可。菜系分类管理主要是对不同菜品进行分类,相同口味的不同的菜品归属于相同的分类,使得管理更加科学。 具体操作如图4-4-1所示: 图4-4-1 菜系管理界面 删除菜系名称,则需选中删除菜系名,点击删除。如图4-4-2所示: 图4-4-2 删除菜系名界面五、 台号管理界面
28、 台号管理界面的操作和界面风格与菜系管理基本相同。台位信息主要包括座位号,座位人数等。具体操作界面如图4-5所示 图4-5台号管理界面六、 菜品管理界面 菜品管理是本系统很重要的一个部分,添加菜品时,系统会自动生成一个菜品编号,菜品其他信息由用户填写,菜品信息主要包括菜品的助记号,菜系,菜品名称,菜品的价格等。其中菜系只能从已经添加的菜系中选择。 具体界面如图4-5所示: 图4-6 菜品管理界面七、 点单系统界面 此界面是系统的核心界面,主要用于替客户下单操作。客户来店时操作人员可以根据客户的所店菜单来点菜。操作人员只需先选择台号,然后通过输入菜品的助记号或者菜品的编号,可以自动获得菜品名称,
29、如若输入错误则不会显示菜品名称,请重新输入。开单操作是将此菜品加入此桌的菜单。当把所有菜品全部输入完毕,在核实后。可以通过桌台号来确认,确认无误,点击签单,签单后的菜品无法取消。如果核实时,发现误入的菜品,可以在签单前选择取消。 具体界面如图4-7所示: 图4-7 点单系统界面八、 结帐系统在客户就餐完毕后可以通过选择台桌,获得消费金额,工作人员手动输入实收金额,点击结帐(结帐前必须签单),即可自动获得找零金额,此交易到此结束。具体操作如图4-8所示: 图4-8结帐系统界面第二节 系统部分程序设计一、 登录界面部分代码界面登录实现部分代码如下: public class DrinkeryMan
30、age public DrinkeryManage() / Center the windowToolkit toolkit = Toolkit.getDefaultToolkit();Dimension screenSize = toolkit.getScreenSize();LandFrame landFrame = new LandFrame(); / LandFrame中定义了登陆界面的面板尺寸在此处调用Dimension frameSize = landFrame.getSize(); if (frameSize.width screenSize.width) /可视化面板调整fra
31、meSize.width = screenSize.width;if (frameSize.height screenSize.height) frameSize.height = screenSize.height;landFrame.setLocation(screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2);landFrame.setVisible(true);public static void main(String args) /显示面板SwingUtilities.i
32、nvokeLater(new Runnable() public void run() try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch (Exception exception) exception.printStackTrace();new DrinkeryManage(););二、 菜品管理界面部分代码菜单管理中界面布局及方法的实现过程部分代码如下:public MenuDialog() super();setModal(true);getContentPane().setLayou
33、t(new BorderLayout();setResizable(false);setTitle(菜品管理);setBounds(80, 80, 800, 600);final JPanel operatePanel = new JPanel();operatePanel.setLayout(new GridBagLayout();getContentPane().add(operatePanel, BorderLayout.NORTH);final JLabel numLabel = new JLabel();numLabel.setText(编 号:);final GridBagCons
34、traints gridBagConstraints_6 = new GridBagConstraints();gridBagConstraints_6.insets = new Insets(15, 0, 0, 0);gridBagConstraints_6.gridx = 0;gridBagConstraints_6.gridy = 0;operatePanel.add(numLabel, gridBagConstraints_6);numTextField = new JTextField();numTextField.setText(getNextNum(dao.sMenuOfMaxI
35、d();numTextField.setHorizontalAlignment(SwingConstants.CENTER);numTextField.setEditable(false);numTextField.setColumns(10);final GridBagConstraints gridBagConstraints_15 = new GridBagConstraints();gridBagConstraints_15.insets = new Insets(15, 0, 0, 0);gridBagConstraints_15.gridy = 0;gridBagConstrain
36、ts_15.gridx = 1;operatePanel.add(numTextField, gridBagConstraints_15);final JLabel nameLabel = new JLabel();final GridBagConstraints gridBagConstraints = new GridBagConstraints();gridBagConstraints.insets = new Insets(15, 15, 0, 0);gridBagConstraints.gridx = 2;gridBagConstraints.gridy = 0;operatePan
37、el.add(nameLabel, gridBagConstraints);nameLabel.setText(名称:);nameTextField = new JTextField();/ nameTextField.setName(名称);final GridBagConstraints gridBagConstraints_1 = new GridBagConstraints();gridBagConstraints_1.insets = new Insets(15, 0, 0, 0);gridBagConstraints_1.gridx = 3;gridBagConstraints_1
38、.gridy = 0;operatePanel.add(nameTextField, gridBagConstraints_1);nameTextField.setColumns(21);final JLabel unitPriceLabel = new JLabel();unitPriceLabel.setText(单价:);final GridBagConstraints gridBagConstraints_9 = new GridBagConstraints();gridBagConstraints_9.insets = new Insets(10, 15, 0, 0);gridBag
39、Constraints_9.gridy = 1;gridBagConstraints_9.gridx = 4;operatePanel.add(unitPriceLabel, gridBagConstraints_9);final JLabel unitLabel = new JLabel();unitLabel.setText(单位:);final GridBagConstraints gridBagConstraints_8 = new gridBagConstraints_11.gridwidth = 2;gridBagConstraints_11.insets = new Insets
40、(10, 0, 0, 0);operatePanel.add(unitTextField, gridBagConstraints_11);final JLabel codeLabel = new JLabel();final GridBagConstraints gridBagConstraints_2 = new GridBagConstraints();gridBagConstraints_2.insets = new Insets(15, 0, 0, 0);gridBagConstraints_2.gridx = 0;gridBagConstraints_2.gridy = 1;operatePanel.add(codeLabel, gridBagConstraints_2);codeLabel.setText(助记码:);codeTextField = new JTextField();codeTextField.setName(助记码);codeTextField.setColumns(10);final GridBagConstraints gridBagConstraints_3 = new GridBagConstraints();gridBagCons