还剩53页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
北京理工大学继续教育学院毕业设计(论文)北京理工大学继续教育学院毕业设计(论文)北京理工大学继续教育学院毕业设计任务书类 别高起本专业计算机科学与技术班级计算机科学与技术A班姓名李强毕业设计题目在线订餐系统指导教师姓名宋晔负责人签字年月日任务书题目在线订餐系统应用通过采用JavaWeb+JDBC+MySQL技术,实现在线订餐系统的功能设计要求管理员能够实现对管理员登录、餐品管理、餐品分类管理、会员订单管理以及会员管理等功能模块;要求会员能够实现会员登录、餐品信息检索、餐品分类信息检索以及订单信息检索;会员修改个人信息、管理订单等功能模块任务要求一.任务内容描述1.系统开发环境JAVA开发环境,开发集成工具Eclipse
10.0+MySQLServer
5.
02.开发语言JAVA3.系统主要功能1实现会员对系统前台登录;餐品的购买;对餐品信息、餐品分类信息、订单信息的检索以及会员自身信息修改等功能2实现管理员对系统的后台登录;以及登录成功后对注册用户、个人订单信息、餐品信息、餐品分类信息的管理以及对管理员信息的修改等二.要求按期完成毕业设计(论文)各阶段任务要求应用软件工程的方法与数据库设计技术完成系统需求分析;系统概要设计及详细设计;应用Eclipse
10.0工具与MySQLServer
5.0数据库技术等完成在线订餐系统的实现与测试;根据毕业设计论文的格式要求完成毕业设计论文的撰写,要求论文重点阐述本课题的设计方案,详细论述系统各功能的实现过程及测试结果三.进度安排1.第一阶段要求完成系统需求分析;2.第二阶段要求完成系统设计;3.第三阶段要求完成系统实现与测试;4.第四阶段要求完成毕业设计论文的撰写指导教师签字年月日北京理工大学继续教育学院毕业论文论文题目在线订餐系统专业计算机科学与技术班级计算机科学与技术A班姓名李强学号20100112400085摘要本文题目是《在线订餐系统》,该系统采用了软件工程分析、概要设计和详细设计系统采用Java语言作为网站的开发语言,使用的数据库是MySQL
5.0,基于Struts和Hibernate架构完成系统开发本论文绪论论述了选题背景及意义第一章讲述项目开发背景和意义;第二章主要论述了系统的基本内容和课题构想;第三章论述了系统开发所运用的相关技术、工具和开发环境配置;第四章比较系统的讲述了系统需求分析、功能分析、数据库相关的设计以及系统功能设计,并且附带主要窗口界面以及程序代码;第五章主要阐述了系统的测试方法及结果本论文重点阐述了基于Java技术的在线订餐系统的开发全过程本系统实现会员和管理的系统登录,以及餐品信息管理、餐品分类管理、订单信息管理、会员信息管理等功能模块本系统解决了在线订餐的基本问题,达到了系统设计的预期目标关键词网购;网络化管理;JAVA;JDBC;网上订餐AbstractThisthesistopicistheonlinereservationsystemthesystemUSESsoftwareengineeringanalysisgeneraldesignanddetaileddesign.SystemUSESJavalanguageasadevelopmentlanguagetheuseofdatabaseisMySQL
5.0basedonStrutsandHibernateframeworktocompletethesystemdevelopment.Inthethesistheintroductionselectedtopicbackgroundandsignificancearediscussed:thefirstchaptertellstheprojectdevelopmentbackgroundandsignificance;Thesecondchaptermainlydiscussesthebasiccontentandsystemoftopicidea;Thethirdchapterdiscussesthesystemasappliedtothedevelopmentofrelatedtechnologiestoolsanddevelopmentenvironmentconfiguration;Fourthchaptersystematictellsthesystemrequirementanalysisfunctionanalysisdatabasedesignandsystemfunctiondesignandwiththemainwindowinterfaceandprogramcode;Thefifthchaptermainlyelaboratedthesystemtestmethodandresults.ThisthesisexpoundstheonlinereservationsystembasedonJavatechnologydevelopmentprocess.Membersandmanagementsystemloginthissystemaswellastheproductsinformationmanagementproductsclassificationmanagementorderinformationmanagementmemberfunctionsuchasinformationmanagementmodule.Thissystemsolvedthefundamentalproblemoftheonlineorderachievedtheanticipatedtargetofthesystemdesign.Keyword:E-shoppingNetworkManagementJAVAJDBCOnlineOrder目录TOC\o1-3\h\z\u前言1第一章选题的背景及意义
21.1项目背景
21.2研究意义
21.3国内外现状3第二章课题的基本内容与构想
42.1课题的基本内容
42.
1.1管理员功能
42.
1.2会员功能
42.2课题的构想4第三章系统相关技术与开发环境概述
53.1系统相关技术
53.
1.1JAVA框架
53.
1.2Eclipse开发工具
53.
1.3MySQL
53.
1.4Tomcat
63.
1.5Javascript
63.2系统的开发环境
63.
2.1硬件环境
63.
2.2软件环境6第四章系统需求分析与概要设计
74.1系统业务流程分析与设计
74.2系统功能模块分析和设计
74.3数据库概念模型设计
84.4数据字典
114.
4.1数据流
114.
4.2数据处
124.
4.3数据存储
134.5系统界面设计
164.
5.1网站主体界面如下
164.
5.2会员登录界面
164.
5.3会员下单流程界面
174.
5.4会员订单管理界面
224.
5.5管理员登录界面
244.
5.6后台管理界面
254.
5.7餐品分类的管理界面
254.
5.8餐品的管理界面
274.
5.9会员的管理界面29第五章系统测试
315.1软件测试概述
315.2软件测试的目标
315.3软件测试的方法
315.
3.1静态测试
315.
3.2动态测试
315.
3.3黑盒测试与白盒测试
325.4主要功能模块测试
335.
4.1会员管理模块的测试
335.
4.2管理员后台功能模块测试37结论45致谢46参考文献47前言随着21世纪的到来,人们更深刻的感受到了计算机在生活和工作中作用的重要,越来越多的职业需要具有计算机的应用技能掌握计算机是职业的需要,社会的需要,更是事业发展的需要今天,计算机技术不但广泛地应用在办公自动化中,还全面渗透到各行各业所有与计算机相关的职业都要求工作者有很强的计算机操作技能,做到运用自如,熟练而且深入的掌握软件的应用随着计算机技术的飞速发展,今后,计算机作为一种崭新的生产力,将在信息社会即新技术革命中发挥越来越重要的作用,并进一步推动人类社会更快的向前发展在线订餐的研发与应用,是为了解决中小餐饮行业信息化意识薄弱的而设计的它有利于中小餐饮行业建立信息化的营销模式,同时可以更大的提高自身的经济效益在线订餐系统作为一种新型的餐饮营销模式,能更快捷的帮助中小餐饮行业解决商业竞争生存难的问题基于这些问题,决定开发《在线订餐系统》,使在线订餐需求系统化,程序化,提高信息处理的速度和准确性整个研究过程经过需求分析、系统设计、系统开发、系统运行和测试五个阶段的工作,本论文对整个过程进行了详细描述由于所学有限,时间紧迫,本系统还有许多不足之处,恳请批评指正第一章选题的背景及意义
1.1项目背景随着我国餐饮行业的发展,餐饮行业发展趋于大众化,中国的大多数餐饮企业的老板是从小店发展起来的,家族式管理的居多,许多还是“人治”,并没有一套现代企业制度和监督管理体制,所以从观念意识、经营思想和管理水平还有待专业化随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位努力在当前餐饮行业日趋激烈的竞争中脱颖而出,已成为每位餐饮业经营者所追求的目标网络订餐实现了小店面大作为的成本效益,解决了因为店面小的限制而无法提高营业额的难题,是一个小投入大成效的经营新模式在计算机高速发展的今天,一切原本属于现实生活中的行为方式慢慢地向网络转移,传统的购物方式也正在向网络方面发展,出现了“网购”这种越来越受欢迎的新型消费方式同样,作为服务业支柱的餐饮业不可避免地趋向网络化发展本系统是基于JAVA的网上订餐系统,本系统开发前我们调查研究了很多网上订餐的网站,总结了很多优点与缺点,在充分研究的基础上开发的本系统希望本系统开发后会带给人们更多的方便,得到更多的人的认可
1.2研究意义随着社会经济的发展,人们的生活节奏不断加快,上班时间相当紧张,但一日三餐却不可少通过网上订餐系统,不必亲临现场,在家中或在办公室上网,便可以为自己、家人、朋友聚会等制办一份既营养又实惠的美食为了实现对客户点菜信息收集、处理、共享和再利用,以提高餐饮业务水平和效率,实现比电话订购更方便、更迅速、更有效的送餐业务通过对订餐流程的考察,对业务细节进行了全面的分析,结合目前最先进的软件开发技术,实现了订餐的数字化、网络化管理餐饮系统不仅需要将整个餐饮业务通过信息系统进行系统管理,同时需要将各类人工服务的工作交由计算机处理,比如点菜和菜单的传送等等同时,本网站是一个网上订餐系统,能为客户提供网络选择商家、浏览菜品介绍、点菜订餐、约定用餐时间、就餐或送餐以及注明货币支付方式等服务这样,传统的订餐方式也正在转向网络化发展,但目前,网上订餐业务还处于形成期,成长空间还很大
1.3国内外现状与强劲的网络购物需求相比,我国受到计算机软硬件基础比较薄弱,技术水平比较低下,系统开发人员十分紧缺等斯德哥尔摩不利因素的影响,现有购物网萨博站系统普遍存在着功能比较单一,维护比较复杂,通用性又不强等问题,有的购物网站甚至直接采用静态网页发布餐品信息所有这些,已经严重制约了我国电子商务的发展在开发过程中,我们应该根据实际的需要来使用最合适的技术,本系统则采用较新的Jsp技术,一方面Jsp的安全性和跨平台性比较好,另一方面,我也希望能从开发该系统的过程中,深入学习一下这门编程语言电子商务的出现和发展,餐品流通领域将面临全方位的深刻变革,美国等经济发达国家正在抓紧推进的电子商务革命,将对中国餐品流通领域和整个经济发展带来种种影响,确实值得我们认真研究第二章课题的基本内容与构想
2.1课题的基本内容本课题研究基于JAVA的在线订餐系统,在线订餐销售系统从功能角色上划分为会员和管理员两种用户在系统实现上最重要的就是信息的交互,这点是由需求分析和可行性分析直接决定的,必须做好餐品销售的及时性,准确性及真实性,并由管理员亲自监督和管理,及时对不按规则录入的信息进行及时的审查和删除
2.
1.1管理员功能管理员主要实现管理员登录;登录成功后对注册用户的、订单的信息、餐品信息、餐品分类信息的管理以及对管理员信息的修改等
2.
1.2会员功能会员主要实现会员的登录;以及登录成功后对餐品的购买;对餐品信息、餐品分类信息、个人订单信息的检索以及会员自身信息的修改等功能
2.2课题的构想用Eclipse
10.0编写jsp功能页面,以及用Java编写功能业务模块的代码,数据存储采用MySQLServer
5.0数据库,实现在线订餐系统的设计与实现同时结合使用Dreamweaver和Photoshop等工具来完成网页界面的设计使设计美观大方第三章系统相关技术与开发环境概述
3.1系统相关技术
3.
1.1JAVA框架Java是由SunMicrosystems公司于1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称JavaEE是Java体系中企业版,适用于企业级应用的开发JavaEE为搭建WEB程序具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制,具有可保留现在有IT资产、高效开发、支持异构环境、可伸缩性、稳定可用性特点且Java编程语言的风格十分接近C和C++语言,有集成且成熟的开发工具eclipse,可大大提高开发效率本系统还使用JDK
1.7,用Java实现了Javascript的执行引擎,在JavaEE框架下实现了请求转发和Javascript运行环境的构建
3.
1.2Eclipse开发工具Eclipse是IBM开发并维护的集成开发工具,具有良好的可扩展性是Java的优秀开发工具
3.
1.3MySQLMySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性选择MySQL的理由,因为MySQL有如下特性完全支持多线程,意味着它很容易地利用多CPU服务器;支持C、C++、Java、Perl、PHP、Python等多种语言的客户端API;可运行在不同操作系统上;有灵活且安全的权限和口令系统;支持集群,为系统水平扩展创建集群提供可行性
3.
1.4TomcatTomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器本系统采用Tomcat
7.0版本
3.
1.5JavascriptJavascript最初是由Netscape公司设计被命名为LiveScript,后与Sun公司合作改名为Javascript,并在Netscape浏览器中实现Javascript是一种动态、弱类型、基于原型的脚本语言业务代码均使用Javascript编写,实现MVC模型,大大提供程序的可扩展性
3.2系统的开发环境
3.
2.1硬件环境CPU InterRCoreTMi5-4200HCPU@
2.800GHz内存DDR
34.00GB硬盘250G
3.
2.2软件环境系统服务器Windows764位操作系统Web服务器Tomcat
7.0开发平台Eclipse
10.0数据库MySQLServer
5.0开发语言JDK
1.6第四章系统需求分析与概要设计
4.1系统业务流程分析与设计根据以上业务需求分析可得出主要业务流程如下图所示图4-1会员登陆模块业务流程图图4-2管理员登陆信息模块业务流程图
4.2系统功能模块分析和设计一个易于修改的系统应该由一些相对独立、功能单一的模块按照层次结构组成这些模块之间不必要的联系都已去掉,而且它们的功能及相互关系都已阐明这就是结构化设计的基本思想系统的功能模块图如图所示:图4-2系统功能模块分析和设计图
4.3数据库概念模型设计本阶段是在需求分析的基础上,把用户需求抽象为信息结构,建立出一个面向问题的概念模型,此模型采用实体-联系方法Entity-RelationshipApproach它用E-R图描述现实世界中的实体用这种方法表示的概念模型又称为E-R模型E-R模型中包含“实体”、“联系”、和“属性”等三个基本成分,其中
1、实体是指客观世界中存在的并可以相互区分的事物用方框表示,方框内为实体的名称;
2、联系是指客观世界中的事物彼此间的联系用菱形表示,菱形内为联系的名称
3、属性是指实体或联系所具有的性质用椭圆表示,椭圆内为属性名称使用线段将其和相应的实体连接起来;系统中包含的实体描述如下1)管理员实体图4-3-1管理员实体属性图2)会员实体图4-3-2会员实体属性图3)订单实体图4-3-3订单实体属性图4)餐品实体图4-3-4餐品实体属性图5)购物车信息实体图4-3-5购物车信息实体属性图6)购物车记录信息实体图4-3-6购物车记录信息实体属性图7)在线订餐系统的主要实体关系E-R图图4-3-7在线订餐系统主要实体关系E-R图
4.4数据字典数据字典是对所有与系统相关的数据元素的一个有组织的列表和精确的、严格的定义,根据前面对网站各个权限用户模块的功能分析和对数据库中实体关系的设计
4.
4.1数据流编号名称组成来源去向D
1.1餐品检索要求餐品名称关键字会员检索处理D
1.2餐品信息检索结果没有相关餐品│符合条件的餐品数量+餐品名称+餐品图片+餐品价格+餐品分类状态检索处理会员D
2.1会员订单信息检索会员订单编号会员检索处理D
2.2会员订单信息检索结果订单信息为空│订单编号+餐品名称+餐品数量+餐品价格检索处理会员D
3.1餐品分类检索餐品分类编号管理员餐品分类表D
3.2餐品分类检索结果餐品分类+餐品描述检索处理管理员D
4.1后台餐品信息检索餐品编号管理员餐品信息表D
4.2后台餐品信息检索结果没有相关餐品│餐品编号+餐品名称+餐品图片+餐品价格检索处理管理员D
5.1订单信息检索订单编号管理员订单信息表D
5.2订单信息检索结果没有相关订单处理│订单编号+订单金额+订单日期+订单状态检索处理管理员D
6.1会员信息检索会员编号管理员会员信息表D
6.2会员信息检索结果没有会员信息│会员名称+真实姓名+联系电话+注册日期检索处理管理员D
7.1系统用户信息检索系统用户编号管理员系统用户表D
7.2系统用户信息检索结果管理员姓名+账号+管理类别检索处理管理员
4.
4.2数据处
4.
4.3数据存储1管理员表,主要用于管理用户及处理用户的订单等,表结构如表4-4-3-1所示表4-4-3-1管理员表名称数据类型长度备注AIDint4管理员编号AdminTypeint4管理员类型AdminNamechar12真实姓名LoginNamechar12帐号LoginPwdchar12密码2会员表,主要用于存储用户的注册信息,表结构如表4-4-3-2所示表4-4-3-2会员表名称数据类型长度备注MemberIDint4会员编号Memberlevelint4会员级别LoginNamechar12登录账号LoginPwdchar12密码MemberNamechar20真实姓名Phonechar15联系电话Addressvarchar100联系地址Zipchar10邮政编码RegDatedatetime0注册日期LastDatedatetime0最后登录日期LoginTimesint4登录次数EMailvarchar100电子邮箱3订单表,主要用于用户的订单资料的存储,表结构如表4-4-3-3所示表4-4-3-3订单表名称数据类型长度备注OrderIDint4订单编号Memberint4会员Cartint4购物车OrderNOchar20订单编号OrderDatedatetime0下单日期OrderStatusint4订单状态4反馈信息表,主要用于会员留言及投诉等信息的存储,表结构如表4-4-3-4所示表4-4-3-4信息反馈表名称数据类型长度备注MessageIDint4留言编号Memberint4会员Titlechar60留言标题Contenttext0留言内容LeaveDatedatetime0留言时间AnswerContenttext0回复内容AnswerDatedatetime0回复日期5餐品表,主要用于餐品信息的存储,表结构如表4-4-3-5所示表4-4-3-5餐品表名称数据类型长度备注MerIDint4餐品编号Categoryint4类别idMerNamechar40餐品名称Pricedecimal8市场价SPricedecimal8特价MerModelchar40餐品型号Picturevarchar100餐品图片MerDesctext0餐品描述Manufacturerchar60生产厂家LeaveFactoryDatedatetime0出厂日期Specialint4有无特价6餐品类别,主要用于餐品分类信息的存储,表结构如表4-4-3-6所示表4-4-3-6餐品表名称数据类型长度备注IDint4餐品类别编号CateNamechar40餐品类别CateDesctext0餐品描述
4.5系统界面设计
4.
5.1网站主体界面如下图4-5-1网站主体界面在线订餐系统主体界面实现了会员登录、后台登录、餐品下单、餐品展示、餐品分类展示、订单管理以及餐品搜索等功能
4.
5.2会员登录界面图4-5-2会员登录界面登陆功能实现是会员实现订餐功能的第一步点击登录按钮执行的核心代码业务代码如下publicMembermemLoginStringloginNameStringloginPwdthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;Membermem=null;try{Stringhql=selectafromMemberasawherea.loginName=:loginNameanda.loginPwd=:loginPwd;Queryquery=session.createQueryhql;query.setStringloginNameloginName;query.setStringloginPwdloginPwd;query.setMaxResults1;tx=session.beginTransaction;mem=Memberquery.uniqueResult;mem.setLoginTimesInteger.valueOfmem.getLoginTimes.intValue+1;mem.setLastDatenewDate;session.updatemem;tx.commit;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnmem;}
4.
5.3会员下单流程界面
(一)图4-5-1点餐成功界面会员登陆成功后,就可以实现在线订购餐品的功能下面是实现在线点餐功能的核心代码选购餐品添加到购物车的核心业务代码/**选购餐品*/publicbooleanaddCartMembermemberMerchandisemerintnumberthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;booleanstatus=false;try{Cartselectedmersel=null;intfavourable=member.getMemberlevel.getFavourable.intValue;Stringhql=fromCartasawherea.member=:memberanda.cartStatus=0;Queryquery=session.createQueryhql;query.setEntitymembermember;query.setMaxResults1;tx=session.beginTransaction;Cartcart=Cartquery.uniqueResult;ifcart==null{cart=newCart;cart.setCartStatusnewInteger0;cart.setMembermember;cart.setMoneyDouble.valueOfnumber*mer.getPrice.doubleValue;cart.getMerchandises.addmer;session.savecart;}else{hql=selectafromCartselectedmerasawherea.cart=:cartidanda.merchandise=:meridorderbya.iddesc;query=session.createQueryhql;query.setIntegercartidcart.getId.intValue;query.setIntegermeridmer.getId.intValue;query.setMaxResults1;sel=Cartselectedmerquery.uniqueResult;inttotal=number;System.out.printlntotal*mer.getPrice.doubleValue*favourable/100;ifsel!=null{total=number+sel.getNumber.intValue;sel.setNumberInteger.valueOftotal;ifmer.getSpecial.intValue==1{sel.setPricemer.getSprice;sel.setMoneyDouble.valueOftotal*mer.getSprice.doubleValue;}else{//普通餐品sel.setPriceDouble.valueOfmer.getPrice.doubleValue*favourable/100;sel.setMoneyDouble.valueOftotal*mer.getPrice.doubleValue*favourable/100;}session.updatesel;}else{cart.getMerchandises.addmer;}ifmer.getSpecial.intValue==1{//特价餐品cart.setMoneyDouble.valueOfcart.getMoney.doubleValue+number*mer.getSprice.doubleValue;}else{//普通餐品cart.setMoneyDouble.valueOfcart.getMoney.doubleValue+number*mer.getPrice.doubleValue*favourable/100;}session.updatecart;}tx.commit;ifsel==null{tx=session.beginTransaction;hql=selectafromCartselectedmerasawherea.cart=:cartidanda.merchandise=:meridorderbya.iddesc;query=session.createQueryhql;query.setIntegercartidcart.getId.intValue;query.setIntegermeridmer.getId.intValue;query.setMaxResults1;sel=Cartselectedmerquery.uniqueResult;ifsel!=null{sel.setNumberInteger.valueOfnumber;ifmer.getSpecial.intValue==1{//特价餐品sel.setPricemer.getSprice;sel.setMoneyDouble.valueOfnumber*mer.getSprice.doubleValue;}else{//普通餐品sel.setPriceDouble.valueOfmer.getPrice.doubleValue*favourable/100;sel.setMoneyDouble.valueOfnumber*mer.getPrice.doubleValue*favourable/100;}session.updatesel;}tx.commit;}status=true;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnstatus;}
(二)图4-5-3-1购物车管理界面购买后的商品在没有生成订单前,都放置在购物车中以上是对购物车中的餐品管理界面点击清空购物车的核心业务代码/**清空购物车*/publicbooleanclearCartMembermemberthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;booleanstatus=false;try{Integercartid=newInteger0;Stringhql=fromCartasawherea.member=:memberanda.cartStatus=0;Queryquery=session.createQueryhql;query.setEntitymembermember;query.setMaxResults1;tx=session.beginTransaction;Cartcart=Cartquery.uniqueResult;ifcart!=null{cartid=cart.getId;cart.setMoneyDouble.valueOf0;session.updatecart;}tx.commit;Connectioncon=session.connection;Statementstat=con.createStatement;Stringsql=deletefromCartselectedmerwherecart=+cartid;tx=session.beginTransaction;stat.executeUpdatesql;tx.commit;ifstat!=nullstat.close;status=true;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnstatus;}
(三)图4-5-3-2生成订单的界面会员在提交购物车中的清单后,就会生成一个用户订单信息生成订单的核心业务代码/**新增订单*/publicbooleanaddOrderOrdersorderthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;booleanstatus=false;try{tx=session.beginTransaction;session.saveorder;tx.commit;status=true;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnstatus;}
4.
5.4会员订单管理界面图4-5-4会员订单管理界面会员所有的订单会在订单管理界面查询到,同时可以对订单进行删除和查看会员订单管理的核心业务代码/**浏览所有订单*/publicListbrowseOrderthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;Listlist=null;try{Queryquery=session.createQueryfromOrdersasaorderbya.iddesc;tx=session.beginTransaction;list=query.list;if!Hibernate.isInitializedlistHibernate.initializelist;tx.commit;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnlist;}/**删除订单*/publicbooleandelOrderIntegeridthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;booleanstatus=false;try{tx=session.beginTransaction;Ordersorder=Orderssession.loadOrders.classid;session.deleteorder;tx.commit;status=true;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnstatus;}
4.
5.5管理员登录界面图4-5-5管理员登陆界面后台登陆功能,只有管理员才可以登陆,管理员是拥有对该系统的最大操作权限管理员登录核心业务代码/**系统管理员登录*/publicAdminadminLoginStringloginNameStringloginPwdthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;Adminadmin=null;try{Stringhql=selectafromAdminasawherea.loginName=:loginNameanda.loginPwd=:loginPwd;Queryquery=session.createQueryhql;query.setStringloginNameloginName;query.setStringloginPwdloginPwd;query.setMaxResults1;tx=session.beginTransaction;admin=Adminquery.uniqueResult;tx.commit;}catchExceptionex{iftx!=nulltx.rollback;logger.info在执行AdminServiceImpl类中的adminLogin方法时出错\n;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnadmin;}
4.
5.6后台管理界面图4-5-6后台管理界面后台管理界面系统运行的与完善的主要模块后台模块实现了餐品分类管理、餐品管理、订单处、会员的管理功能
4.
5.7餐品分类的管理界面图4-5-7餐品分类管理界面餐品分类的管理界面实现了对餐品分类的管理,主要功能包括餐品分类的增、删、改、查餐品分类管理的核心业务代码/**新增餐品分类*/publicbooleanaddCategoryCategorycatethrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;booleanstatus=false;try{tx=session.beginTransaction;session.savecate;tx.commit;status=true;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnstatus;}/**浏览餐品分类*/publicListbrowseCategorythrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;Listlist=null;try{Queryquery=session.createQueryfromCategoryasaorderbya.id;tx=session.beginTransaction;list=query.list;tx.commit;if!Hibernate.isInitializedlistHibernate.initializelist;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnlist;}/**装载指定的餐品分类*/publicCategoryloadCategoryIntegeridthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;Categorycate=null;try{tx=session.beginTransaction;cate=Categorysession.getCategory.classid;tx.commit;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returncate;}/**更新餐品分类*/publicbooleanupdateCategoryCategorycatethrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;booleanstatus=false;try{tx=session.beginTransaction;session.updatecate;tx.commit;status=true;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnstatus;}
4.
5.8餐品的管理界面图4-5-8餐品的管理界面餐品的管理界面实现了对餐品的管理,主要功能包括餐品的增、删、改、查餐品管理的核心业务代码/**新增餐品*/publicbooleanaddMerMerchandisemerthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;booleanstatus=false;try{tx=session.beginTransaction;session.savemer;tx.commit;status=true;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnstatus;}/**浏览餐品*/publicListbrowseMerStringhqlthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;Listlist=null;try{Queryquery=session.createQueryhql;tx=session.beginTransaction;list=query.list;tx.commit;if!Hibernate.isInitializedlistHibernate.initializelist;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnlist;}/**装载指定的餐品*/publicMerchandiseloadMerIntegeridthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;Merchandisemer=null;try{tx=session.beginTransaction;mer=Merchandisesession.getMerchandise.classid;tx.commit;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnmer;}
4.
5.9会员的管理界面图4-5-9会员的管理界面会员的管理界面实现了对会员的管理,主要功能包括对会员的删除和查询会员的添加和修改功能由会员自己实现会员的管理界面核心业务代码/**装载注册会员*/publicMemberloadMemberIntegeridthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;Membermember=null;try{tx=session.beginTransaction;member=Membersession.getMember.classid;tx.commit;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnmember;}/**删除注册会员*/publicbooleandelMemberIntegeridthrowsException{Sessionsession=MySessionFactory.getSession;Transactiontx=null;booleanstatus=false;try{tx=session.beginTransaction;Membermember=Membersession.loadMember.classid;session.deletemember;tx.commit;status=true;}catchExceptionex{iftx!=nulltx.rollback;ex.printStackTrace;}finally{MySessionFactory.closeSession;}returnstatus;}第五章系统测试
5.1软件测试概述软件测试是软件开发过程中最关键的阶段当测试成功时可以尽早发现产品中存在的问题并及时解决尽早解决可以使软件发布后维护的费用降低测试的目的是为了保证软件的质量,满足设计的要求和客户的要求因此软件测试是保证质量的关键步骤,也是对软件的规格说明、设计和编码的最后复审
5.2软件测试的目标测试是指“用意在于发现错误而执行一个程序的过程”,一个成功的测试是指它成功地发现了一个尚未发现的错误软件进行测试,可以分为单元测试、编码测试和综合测试,单元测试可以测试单一模块的功能并确定其功效;编码测试可以测试各模块之间的连接是否有效;综合测试是对软件最后的审定软件的各项功能是否齐全有效,是否能顺利完成设计的目的
5.3软件测试的方法软件测试方法一般分为动态测试方法与静态测试方法动态测试方法中又根据测试用例的设计方法不同,分为黑盒测试与白盒测试两类
5.
3.1静态测试静态测试是采用人工检测盒计算机辅助静态分析的手段对程序进行检测,方法如下1人工检测是指不依靠计算机运行程序,而靠人工审查盒评审软件2计算机辅助静态分析指利用静态分析软件工具对被测试程序进行特性分析,从程序中提取一些信息,来检查可能出错的变量、参数与代码等
5.
3.2动态测试动态测试与静态测试相反,只要是设计一组输入数据,然后通过运行程序来发现错误一般有两种方法黒盒测试和白盒测试
5.
3.3黑盒测试与白盒测试
1、黑盒测试黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息,并且保持外部信息的完整性在功能测试中,被测软件的输入域和输出域往往是无限域,因此穷举测试通常是不可行的必须以某种策略分析软件规格说明,从而得出测试用例集,尽可能全面而又高效地对软件进行测试下面就说明几种功能测试的方法a.等价类划分所谓等价类,就是指某个输入域的集合,集合中的每个输入对揭露程序错误来说是等效的,把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例,这就是等价类划分方法它是功能测试的基本方法b.因果图法因果图是一种形式语言,由自然语言写成的规范转换而成,这种形式语言实际上是一种使用简化记号表示数字逻辑图因果图法是帮助人们系统地选择一组高效测试用例的方法,此外,它还能指出程序规范中的不完全性和二义性c.边值分析实践证明,软件在输入、输出域的边界附近容易出现差错,边值分析是考虑边界条件而选取测试用例的一种功能测试方法所谓边界条件,是相对于输入和输出等价类直接在其边缘上,稍高于和稍低于其边界的这些状态条件边值分析是对等价类划分的有效补充黑盒测试主要是为了发现以下几类错误
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
2、白盒测试白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能其主要方法有逻辑驱动、基路测试等,主要用于软件验证白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试白盒法是穷举路径测试在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据贯穿程序的独立路径数是天文数字但即使每条路径都测试了仍然可能有错误第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身错误的程序第二,穷举路径测试不可能查出程序中因遗漏路径而出错第三,穷举路径测试可能发现不了一些与数据相关的错误与功能测试不同的是,结构测试涉及程序内部结构尽管用户更倾向于基于程序规格说明的功能测试,但是结构测试能发现潜在的逻辑错误,而这种错误往往是功能测试发现不了的它们各有利弊,常常结合使用白盒测试主要是想对程序模块进行如下检查
1、对程序模块的所有独立的执行路径至少测试一遍
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍
3、在循环的边界和运行的界限内执行循环体
4、测试内部数据结构的有效性,等等本系统主要采用黑盒测试
5.4主要功能模块测试
5.
4.1会员管理模块的测试测试验证会员登录界面当会员登录失败的时,无法获取餐品和餐品分类信息,显示如下界面如图5-17所示图5-4-1-1会员登录失败时的界面测试会员登录成功后,在线下订单的界面当会员登录成功后,即可获取餐品和餐品分类信息,显示如下界面如图5-17所示图5-4-1-2-1会员登录成功的界面测试购买餐品信息在用户登录成功后,即可测试餐品选购,下图是购买餐品成功后的提醒界面图5-4-1-2-2购买餐品成功界面测试购物车信息购买成功后,立即跳转到购物车查看选购餐品信息图5-4-1-2-3购物车界面测试确认信息显示界面确认选购信息无误后,即可提交订单,下面是选购餐品的确认信息界面图5-4-1-2-4订单信息确认界面测试生成订单测试提交订单后,可生成订单信息,下图是订单生成信息界面图5-4-1-2-5生成订单信息成功界面测试修改用户信息用户登录成功后可以修改自身的注册信息下面是测试修改用户信息失败界面图5-4-1-2-6修改用户注册信息失败用户登录成功后可以修改自身的注册信息下面是测试修改用户信息成功界面图5-4-1-2-7修改用户注册信息成功
5.
4.2管理员后台功能模块测试管理员后台登录测试测试验证后台管理员登录界面,下面是当让用户提交登录信息失败时的界面图5-4-2-1-1管理员后台登录失败界面管理员登录成功后,即可查看管理信息,下面是后台管理信息的界面图5-4-2-1-2后台成功后管理界面餐品分类管理模块测试新增餐品分类测试,如果输入餐品分类信息为空,新增分类不成功,下面是新增分类失败界面图5-4-2-2-1新增餐品分类失败界面下面是测试新增餐品分类成功界面图5-4-2-2-2新增餐品分类成功界面下面是展示新增成功后餐品分类成功界面图5-4-2-2-1餐品分类显示界面餐品管理模块测试新增餐品测试,如果输入餐品信息为空,新增餐品不成功,下面是新增餐品失败界面图5-4-2-3-1新增餐品失败界面测试新增餐品,下面是新增餐品成功界面图5-4-2-3-2新增餐品成功界面测试查看单个餐品详情的功能,下面是单个餐品详情展示界面图5-4-2-3-3查看餐品详情界面测试修改餐品信息功能,修改餐品信息成功后的界面如下图5-4-2-3-4修改餐品成功界面订单信息管理块测试测试查询所有会员订单信息功能,查询成功后的界面如下图5-4-2-4-1会员订单显示界面测试查询单笔订单详细信息,下面是测试成功界面图5-4-2-4-2查看会员订单详情界面测试受理订单功能,下面是测试受理订单信息成功界面图5-4-2-4-3受理会员订单成功界面测试结单功能,下面是测试结单信息成功界面图5-4-2-4-4结单成功界面会员管理模块测试测试查询所有会员信息功能,查询会员信息成功后的界面如下图5-4-2-5-1会员信息界面测试查看会员详情功能,下面是查看会员详细信息成功界面图5-4-2-5-2会员详细信息界面测试删除会员功能,下面是删除会员信息成功界面图5-4-2-5-3删除会员成功界面系统用户管理模块测试图5-4-2-6-1管理员信息界面测试修改管理员信息功能,修改管理员信息界面如下测试删除管理员功能,下面是删除管理员成信息成功界面结论本《在线订餐系统》运用软件工程的概念进行系统分析和设计,应用数据库原理的基本知识进行概念结构设计,运用网页前端技术(htmljspjavascript),以及运用以Java为基础的部分开源框架完成了该对系统的设计和实现在测试阶段采用黑盒和白盒测试方式完成系统的测试整个系统开发经过需求分析、系统设计、系统开发、系统运行和测试五个阶段的工作完成后的系统实现了预期的任务功能
1、会员功能普通会员登录,以及会员登录成功后对餐品信息检索、餐品分类信息检索以及订单信息检索;会员修改个人信息、管理个人订单等功能
2、管理功能管理员实现了管理员的登录,以及登录成功后对会员、餐品、餐品的分类、会员订单以及管理员信息的管理等功能本系统解决了在线订餐的基本问题,达到的系统设计的预期目标,通过网上订餐系统,不必亲临现场,在家中或在办公室上网,便可以为自己、家人、朋友聚会等制办一份既营养又实惠的美食为了实现对客户点菜信息收集、处理、共享和再利用,以提高餐饮业务水平和效率,实现比电话订购更方便、更迅速、更有效的送餐业务本系统采用B/S结构,但是界面尚不美观,功能不够强大,今后将以此系统为开发原型,把握客户需求,继续完善各个方面的功能,使系统慢慢真正运用实践,不断满足客户的真正需求致谢在论文的设计和开发过程中,宋晔导师给予了我细心的指导与有力的帮助任务书阶段,宋老师给我明确了系统设计方向,为我毕业设计的顺利进行扫清了障碍,使我少走了不少弯路在后期阶段,宋老师又不断地提出很好的改进意见,使得我的开发项目日趋完善从宋老师身上,我体会到了对待科学应该保持严谨的态度,以及对待开发项目的高标准要求,为我今后参加实际的项目开发打下了坚实的基础总之,宋晔老师的敬业精神和广博的知识使我受益匪浅感谢所有教育过和帮助过我的老师们,你们的教导是我一生中最宝贵的财富感谢我所有的朋友和同学,一起生活和学习的美好时光里,你们给予我的真诚的鼓励和无私的帮助令我终身难忘在此再一次衷心地谢谢宋晔老师对我的辛勤培养和指导!!!参考文献
[1]刘晓义.XML技术及应用[M].哈尔滨工程大学出版社2011年06月.
[2]MySQL公司.MySql中文帮助文档[M].页面文档.2006-02-
11.
[3]林信良.JSPServlet学习笔记[M].清华大学出版社 2012年05月.
[4]张峋杨三成.关键技术JSP与JDBC应用详解[M].中国铁道出版社2010年11月.
[5]吴其东.JAVA模块设计实例经典[M].北京冶金工业出版社.2004-
06.
[6]刘升华等.Java从入门到实践[M].北京清华大学出版社.2009-09-
01.
[7]良葛格.Java学习笔记(第一版)[M].北京清华大学出版社.2006-
08.
[8]叶志军等.由浅入深--Java2自学教程[M].北京人民邮电出版社.2004-
10.
[9]孙卫琴.精通Struts基于MVC的JavaWeb设计与开发[D].电子工业出版社.2006-11-
13.
[10]陈火旺,徐建波,周新莲.Web设计原理与编程技术[M].中南大学出版社.2005-07-
14.
[11] 赵俊峰等.Java Web应用开发案例教程基于MVC模式的JSP+Servlet+JDBC和AJAX[M].清华大学出版社2012年01月.
[12][美]HerbertSchild著.鄢爱兰,鹿江春等译.Java参看大全J2SE5Edition[M].北京清华大学出版社.2006-
01.编号P1输入的数据流D
1.1输出的数据流D
1.2功能说明会员检索餐品处理按餐品关键字检索条件查找餐品信息将检索结果返回.出错信息出错后提示会员编号P2输入的数据流D
2.1输出的数据流D
2.2功能说明会员检索订单处理按订单编号检索条件查找会员订单信息将检索结果返回.出错信息出错后提示会员编号P3输入的数据流D
3.1输出的数据流D
3.2功能说明管理员检索餐品分类处理按餐品分类编号检索条件查找餐品分类信息将检索结果返回.出错信息出错后提示管理员编号P4输入的数据流D
4.1输出的数据流D
4.2功能说明管理员检索餐品处理按餐品编号检索条件查找餐品信息将检索结果返回.出错信息出错后提示管理员编号P5输入的数据流D
5.1输出的数据流D
5.2功能说明管理员检索订单处理按订单编号检索条件查找订单信息将检索结果返回.出错信息出错后提示管理员编号P6输入的数据流D
6.1输出的数据流D
6.2功能说明管理员检索会员信息按会员编号检索条件查找会员信息将检索结果返回.出错信息出错后提示管理员编号P7输入的数据流D
7.1输出的数据流D
7.2功能说明管理员检索系统用户按系统用户编号检索条件查找系统用户信息将检索结果返回.出错信息出错后提示管理员。