《基于JSP的餐厅点餐系统设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于JSP的餐厅点餐系统设计与实现毕业论文.doc(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 毕 业 论 文 题目名称:基于JSP的餐厅点餐系统设计与实现 院 系:信息工程学院 专 业:计算机科学与技术 学生姓名: 学 号: 指导教师: 摘 要 本文系统地阐述了整个餐厅点餐系统的功能及实现。实现了从餐品管理,餐品分类和查询,到订餐车实现,用户订单处理,再到系统管理。基本上实现了餐厅点餐的功能流程。本系统界面简单直观,易于操作和使用,交互性强,完全基于Internet网络。经过分析,我们使用 SUN公司的JSP开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改
2、进,直到形成满意的可行系统。关键词:点餐;管理;JSP;数据库Abstract This paper systematically expounds the whole restaurant ordering system function and the realization. From the implementation of the food management, food classification and query, to order a meal cart implementation, the user order processing, to the system m
3、anagement. Basically realized the function flow ordering a meal in a restaurant. This system simple and intuitive interface, easy operation and use, interactive, network based entirely on the Internet. After analysis, we use SUNs JSP development tool, its use of object-oriented development tools, es
4、pecially data window can be convenient and simple manipulation of the intelligent object database, the first in a short time establishes the system application prototype, then, demand for the initial prototype system iteration, and constantly revised and improved, until forming the feasible system o
5、f satisfaction.Keywords: meal; management; JSP; database目 录1 引言11.1 课题研究的背景11.2 点餐系统的优势12 开发工具及运行环境22.1 JSP技术简介22.2 JSP工作原理22.3 MYSQL数据库介绍32.4 系统实现的软硬件平台42.5 软件的安装与配置43 点餐系统功能分析53.1系统功能分析53.2可行性研究54 点餐系统总体设计54.1 系统总体结构图54.2 系统ER图74.3 系统模块设计85 点餐系统的功能实现95.1网站首页设计与实现95.2点餐功能设计与实现115.3订单信息功能的设计与实现135.4
6、 餐品查询功能的查询与实现155.5 订单管理功能的设计与实现175.6餐品发布功能的设计与实现206点餐系统的调试与测试226.1软件调试226.2软件测试237 总结24参考文献25致谢26 1 引言1.1 课题研究的背景中国的餐饮行业是朝阳行业中蓬勃发展的一种传统产业。说她古老是因为自从产生了社会分工就有了餐饮业,有了从业人员,可以说伴随了整个人类社会发展的每一个阶段。说她新兴,今天的餐饮业已经与以前的餐饮业有了很大的不同,无论从功能上、经营模式上都有了极大的变化。功能上:从解决肚子问题到社会交往、到人生享受。经营模式也是百家争鸣、异彩纷呈。当前,中国餐饮行业发展态势明显,主要体现在连锁
7、经营、品牌培育、技术创新、管理科学化为代表的现代餐饮企业,逐步替代传统餐饮业的手工随意性生产、单店作坊式、人为经验管理型,快步向产业化、集团化、连锁化和现代化迈进;大众化消费越来越成为餐饮消费市场的主体;饮食文化已经成为餐饮品牌培育和餐饮企业竞争的核心,现代科学技术、科学的经营管理、现代营养理念在餐饮行业的应用已经越来越广泛。不可否认的是,机遇与挑战并存,利润与风险同在,我们在看到发展机遇的同时,也不能忽视面临的挑战。中国的餐饮业面临着如下挑战: 1、国际著名品牌的竞争和挑战,国外大型餐饮公司以丰富的菜品和独特的文化进入中国,他们比我们更能够吸引消费者、引导消费者、同化消费者,国际著名品牌既快
8、又多地进入中国市场,必将给我们的餐饮企业带来极大的冲击。 2、来自国外的餐饮企业,将以各种手段、优惠条件、雄厚的资金实力、科学规范的管理环境来吸引餐饮技术、管理、服务、文化等方面的人才,我们餐饮业面临专业人才流失的挑战。 3、企业规模的竞争,中国餐饮企业普遍是中小企业,很难同国际大企业相提并论,而规模的大小对竞争的实力和成本有较大的影响. 4、综合服务素质的竞争和挑战,中国餐饮业从业人员的文化水平大都较低,我们的研究能力和从业水平有待提高。为了解决种种问题,提高自身的竞争能力,必须有一款既省时又省力的管理软件,这样才能在市场站住脚跟,获取更多的利益。1.2 点餐系统的优势点餐系统利用软件的全自
9、动信息化手段,实现点菜、配菜、炒菜到传菜的全部管理过程;完成点菜单计算机管理、点菜单前端收银台与各厨房的同步打印;实现菜单无纸化操作;后台经理查询;仓库进销存管理等。点餐系统可以对客户资料进行有效的管理,存档和备查,杜绝酒楼“漏单”、“跑单”现象;帮助酒楼利用计算机强大的数据处理能力和流程优化能力,实现自动化管理,简化酒楼的工作流程,减少浪费及人为管理的疏漏现象,重新优化配置企业资源,把经营成本降低到最低。 功能强大的点餐系统除支持一般的单机和局域网应用之外,还支持总店/分店多级架构的远程联网应用于分店使用POS系统实现前台销售收银、即时打印销售小票、销售日结、上报销售数据和接收新菜品信息等功
10、能。2 开发工具及运行环境2.1 JSP技术简介JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。JSP全名为java server page,其根本是一个简化的Servlet设计
11、,他实现了Html语法中的java扩张(以 形式)。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离
12、,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。自JSP推出后,众多大公
13、司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。2.2 JSP工作原理在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet。而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。 JSP引擎先把该JSP文件转换成一个Java源文件,在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功, JSP引擎用javac把该Java源文件编译成相应的class文件。然后创建一个该SERVLET的实例,该SERVLET的js
14、pInit()方法被执行,jspInit()方法在servlet的生命周期中只被执行一次。然后jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.但应该注意多线程的编程限制,由于该servlet始终驻于内存,所以响应是非常快的。如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的servlet,并继续上述处理过程。虽然
15、JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。此外,如果在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用, 然后servlet实例便被标记加入垃圾收集处理。 jspInit()及jspDestory()格式如下:可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。 2.3 MYSQL数据库介绍作为微软下一代的数据管理与商业智能平台,MYSQL将是微软5年来具有里程碑性质
16、的企业级数据库产品。和以往的数据解决方案相比,MYSQL将给您带来空前的价值、超强的功能和激动人心的全新体验。 MYSQL中包含了非常丰富的新特性:通过提供一个更安全、可靠和高效的数据管理平台,增强企业组织中用户的管理能力,大幅提升IT管理效率并降低运维风险和成本;通过提供先进的商业智能平台满足众多客户对业务的实时统计分析、监控预测等多种复杂管理需求,推动企业管理信息化建设和业务发展;同时,MYSQL将提供一个极具扩展性和灵活性的开发平台,不断拓展您的应用空间,实现Internet数据业务互联,为您带来新的商业应用机遇。 由于大大减少了应用程序宕机时间,提高了系统的可伸缩性和性能,并加以更严格
17、的安全控制,MYSQL在支持现实中最苛刻的企业级系统要求的道路上,迈出了极大的一步。MYSQL是甲骨文服务器家族中重要的一部分,通过Oracle服务器系列产品共有的Engineering strategy所实现的增强的管理性和集成性,客户可以有效降低总体拥有成本并从更快的开发部署时间中受益。 MYSQL将在安全性、高可靠性、性能、扩展性、可管理性方面有极大的提高,不仅能够确保企业级数据业务的实时稳定运行、还能够大大提高管理效率、降低操作复杂度和运维成本。例如,MYSQL将提供全新的安全认证、数据加密技术来加强您数据系统的安全性;数据库镜像、快照、时点恢复、实时在线管理等诸多功能大大提高了企业级
18、系统的可靠性、扩展性;而数据集成,各种自动化管理、调试和优化工具则为您的IT管理工作带来全新的体验。在硬件方面,MYSQL支持64位运算和海量数据存储。 MYSQL使您可以快速构建部署各类商业智能解决方案,为你提供深入的业务分析统计和监控预测平台,进一步推动企业的信息化管理和业务发展。MYSQL将提供非常完整的商业智能套件,包括相关的数据仓库、数据分析、ETL、报表、数据挖掘的一系列设计、开发、管理工具。为了满足客户日渐增强的实时BI和企业级应用规模的需求,MYSQL在构建商业智能平台的实时性、扩展性方面也有了质的飞跃。全新的数据分析工具和丰富的数据挖掘算法将帮助客户有效进行深入的业务监控分析
19、、决策支持;企业级的ETL工具将支持各种异类数据和复杂数据业务的整合;面向终端用户的报表设计及管理工具与Office的前端集成能够提供非常灵活的数据展示和自由定制功能。 MYSQL将提供更加强大的开发工具和各类新的开发特性,在大大提高开发效率的同时,将进一步拓展您的应用空间,带来新的商业应用机遇。例如,XML数据库与Web Service的支持将使您的应用实现Internet数据互联,.Net集成极大的扩展了开发空间,异构数据集成、Service Broker使您的数据和其它应用无缝集成,各种新数据类型和T-SQL扩展带来了诸多灵活性。C#、VB.Net、XQuery、XMLA、ADO.Net
20、 2.0、SMO、AMO等都将成为SQL Server数据平台上开发数据相关应用的有力工具。2.4 系统实现的软硬件平台点餐系统的开发环境:操作系统:windows 7运行环境:IE6.0 以上开发工具:MyEclipse 8.5数据库:MYSQL服务器:Tomcat 6.0点餐系统的运行环境:操作系统: Windows 7内存:1GB以上硬盘容量:160G以上应用服务器:Tomcat 6.0JDK版本:1.6IE浏览器为 IE6.0 以上2.5 软件的安装与配置(1) 软件安装:操作系统Windows 7MYSQLJDKJDK的配置:设置JAVA_HOME环境变量:JDK 安装目录 例:C:
21、j2sdk1.4;设置CLASSPATH环境变量:JDK安装目录libtools.jar 例:C:j2sdk1.4libtools.jar;.设置PATH环境变量:JDK 安装目录bin;例:C:j2sdk1.4bin;服务器的安装:Tomcat 6.0设置TOMCAT_HOME环境变量:Tomcat安装目录 例:C:Tomcat 6.0;(2)安装Tomcat6.0 安装时注意在选择Java虚拟机路径是一定要选择安装的JSDK的目录,然后再开始安装。(3)安装完毕后,启动TOMCAT,然后再浏览器中输入http:/localhost:8080时可以看见TOMCAT的欢迎页面,这时表示配置成功
22、了。3 点餐系统功能分析3.1系统功能分析从用户角度来看,用户具有以下功能:餐品浏览,购买餐品,餐品简介、订餐车等。这几个功能完全可以满足客户的点餐需求,功能简单易操作,可以让客户在最短的时间内完成想要的操作。从网站的角度看,网站应该包含(1)餐品搜索功能,可以实现按餐品关键字名查询。(2)订单处理功能,可以准确的完成对订单的各种操作(3)管理员管理,可以查看用户信息,并根据用户信息和用户订单对餐品进行发派。(4)餐品浏览与相关订餐,要求图文并茂,增加客户的食欲性。3.2可行性研究技术可行性分析:为了保证系统开发成功,必须采用工程化的系统开发方法,并研究出一些符合标准的开发方法。这些方法可以指
23、导开发者进行工程化的系统开发,从而加快系统开发的速度,保证质量以及降低开发成本。工程化的系统开发方法确实在开发实践中取得了一定的效果。经济可行性分析:开发本系统时所使用的是最便捷并且绿色版的工具,使用方便,占用磁盘空间小,最重要的是不用购买。应用的数据库工具,可以根据个人的需要下载很多不同的版本。由于该系统简洁精悍,开发所用的周期短,所以投入使用的时候消费者必定会很喜欢。所以经过上面解释,该系统具有经济上的可行性。 操作可行性分析:目前资源的操作和可操作性,只需根据相关需要对数据库中的相应表数据直接操作就可以实现系统完整、稳定的运行,不会造成系统的巨大压力,可以保证系统的正常运行。综上所述,通
24、过技术可行性、经济可行性、操作可行性分析,本系统的开发是可行的。4 点餐系统总体设计4.1 系统总体结构图系统总体结构如4.1图所示:餐厅点餐系统点餐信息管理餐品信息管理分类信息管理订单信息处理用户信息管理信息统计查询管理员设置图4.1点餐系统结构图顾客点餐流程如4.2图所示:顾客预览餐品点餐取消订单确认订单付款图4.2顾客点餐流程图收银员操作流程如4.3图所示:收银员查看订单确认付款取消订单图4.3收银员操作流程图厨房操作流程如4.4图所示:收银员查看订单做菜取消订单发货图4.4厨房操作流程图4.2 系统ER图系统ER图如4.5图所示:密码用户名系统用户管理员管理厨房人员收银人员确认收款取消
25、订单取消订单发货做菜点餐系统销售统计餐品分类餐品信息图4.5系统ER图4.3 系统模块设计在线点餐模块:A用户可查看餐品图片及餐品信息B用户可将想要的餐品放入购物车点餐信息模块:A用户可查看购物车内物品餐品查询模块:A用户可模糊搜索想要的餐品餐厅人员登录模块:A餐厅人员登录后按职务分工(分管理员,收银员,厨房)管理员模块:A餐厅人员管理B餐厅公告管理C餐品信息管理D销售信息统计收银员模块:A修改密码B提交订单管理厨房模块:A修改密码B提交订单管理5 点餐系统的功能实现5.1网站首页设计与实现首页相当重要,所以必须要重点设计,因为顾客点餐的时候是先看到首页,如果首页设计的美观大方,就会激增顾客对
26、餐厅的好感,不仅达到顾客保持良好的心情用餐,而且从另一方面也为餐厅增添了收入。界面风格以暖色为主调,清新自然,采用字画结合,文字内容贴切生活,画面温馨,让人感到回家的感觉。重要的几个功能显而易见,即使是第一次使用本软件的顾客也能很快的完成点餐操作。首页设计如5.1图所示:图5.1首页界面部分实现代码如下:function autoTable(div)fs=document.getElementById(div).getElementsByTagName(TABLE);for(var i=0;ifs.length;i+)fsi.style.width=49.5%;if(i%2=1)if (doc
27、ument.all) fsi.style.styleFloat=right;elsefsi.style.cssFloat=right;elseif (document.all) fsi.style.styleFloat=left;elsefsi.style.cssFloat=left;!-document.write(); setInterval(clock.innerHTML=new Date().toLocaleString()+ 星期+日一二三四五六.charAt(new Date().getDay();,1000) 首 页 | 在线点餐
28、|点餐信息 |餐品查询 | 餐厅人员管理入口 5.2点餐功能设计与实现点餐功能的设计主要是为顾客着想,要做到界面美观大方,让顾客一眼就能看到想知道的信息,比如餐品的名字、价格、实物图片、介绍等等,这些都是顾客在点餐之前想要知道的细节,必须把这些体现在屏幕上。本软件点餐界面设置简单大方,重要的信息一眼就可看完,并且相关餐品的图片都真实美观,能够激起顾客的食欲。点餐界面设计如5.2图所示:图5.2点餐界面部分实现代码如下:function fIsNumber (sV,sR)var sTmp;if(sV.length=0) return (false);for (var i=0; i sV.leng
29、th; i+)sTmp= sV.substring (i, i+1);if (sR.indexOf (sTmp, 0)=-1) return (false); return (true);function del()pageform.submit();%String message = (String)request.getAttribute(message);if(message = null)message = ;if (!message.trim().equals()out.println();out.println(alert(+message+););out.println();re
30、quest.removeAttribute(message); %!-document.write();/- 产品信息 %cb.setEVERYPAGENUM(6); int cou = cb.getMessageCount(select count(*) from sale); String page1=request.getParameter(page);if(page1=null)page1=1;session.setAttribute(busMessageCount, cou + );session.setAttribute(busPage, page1);List pagelist1
31、 = cb.getMessage(Integer.parseInt(page1),select * from sale order by id desc,6);session.setAttribute(qqq, pagelist1);int pageCount = cb.getPageCount(); /得到页数 session.setAttribute(busPageCount, pageCount + ); List pagelist3=(ArrayList)session.getAttribute(qqq); if(!pagelist3.isEmpty()for(int alln1=0;
32、alln1 IMG height=80 src= width=120 onload=makesmallpic(this,120,80); border=0 餐品名称: 销售价格: 餐品类型: 餐品简介: 5.3订单信息功能的设计与实现此功能的作用就是显示出所点餐品的名字,数量,和总价格。让顾客可以清楚的看到自己的账单,直到顾客满意为止。订单信息设计如5.3图所示:图5.3订单信息部分实现代码如下: 我的点餐 form action=ComServlet?method=tjDC&dnum= method=post name=form1 餐品名称 餐品价格 数量 本餐品总价 % float f=0
33、; Listlist=cb.getCom(select*from prep where dnum=+dnum+,4); if(!list.isEmpty()for(inti=0;i 5.4 餐品查询功能的查询与实现此功能主要实现餐品的查询,按餐品类别可以达到关键字查询餐品详细信息,方便顾客浏览以及订餐。餐品查询设计如5.4图所示:图5.4餐品查询部分实现代码如下:function f1()if(document.form1.jd.value=) alert(请输入餐品类别,可以为关键字!); document.form1.jd.focus(); return false; if(document.form1.title.value=) alert(请输入查询内容,可以为关键字!); document.form1.title.focus(); return false; form1.submit();function f111() if(document.form2.title.value=) alert(请输入查询内容,可以为关键字!); document.form2.title.focus(); return false; form2.submit();!-/目的是为了做风格方便document.write();/- TABLE class=dr