资源描述
课 程 设 计 报 告 学 院: 天津理工大学华信软件学院专业名称:软件工程课程名称:专业设计课程代码:1480010 所在班级:2班学 号:20105780姓 名:课题名称:MrPizza网站指导老师:完成时间:2013年4月-2013年6月专业设计课程评分表学号: 姓名: 班级: 题目MrPizza网站评 价 项 目得分选题质量符合专业培养目标,体现综合训练基本要求(5分)课程设计选题专业结合度高,具有较高科学性、创新性、应用性和可行性:45分有专业关联性,一定的科学性、应用性和可行性,属于课程设计类型:13分无专业关联性,可行性较差:0分题目难易度(5分)课程设计题目难易适度,设计目标明确,符合课程设计的时间、技术限制等特点:45分选题题目太宽泛或太小,课程设计选题目标不十分明确:13分选题题目太小或不适于作课程设计,课程设计过于简单,达不到综合性训练要求:0分题目工作量(5分)在指导教师指导下独立完成,课程设计文档齐全且充实规范,符合要求的工作量:45分。独立完成性较好,课程设计文档齐全,但但内容、质量欠缺:13分未按规定时限独立完成课程设计,文档不齐全:0分理论意义或实际价值(5分)课程设计具有较高的理论研究意义和实用价值,能充分锻炼实践能力:45分课程设计具有一定的理论研究意义和实用价值,在一定程度上锻炼学生实践能力:13分课程设计不具有理论研究意义或实际应用价值:0分能力水平查阅文献资料能力(5分)参考文献具有适合性、准确性、专业性和权威性,原始文献使用比例高:45分参考文献具有适合性、准确性、专业性不足,原始文献使用比例偏低:13分无参考文献:0分综合运用知识能力(5分)能综合运用专业基础理论分析、解决设计中的问题:45分基础知识较扎实,分析解决问题的能力较强,具有一定的综合运用知识能力:13分研究方案的设计能力(15分)方案分析准确,系统流程、数据流、功能模块划分科学完整,文理通顺,层次清楚:1315分方案构思合理、系统流程、数据流、功能模块划分基本完整,分析较深入:1012分有一定的分析能力和概括能力,能运用所学理论和知识阐述问题,但系统流程、数据流、功能模块划分不完整:59分分析能力和概括能力较差,阐述问题不明确,没有系统模型、流程分析或不正确:14分软件运行与测试情况(15分)软件运行正常且预计完成功能均顺利实现:1315分软件运行正常且预计完成功能大多数顺利实现:1012分软件运行正常且预计完成功能只有个别实现:59分软件运行不正常但错误较多:14分没有运行软件或未完成软件设计:0分外文应用能力(5分)根据选题需要,阅读、翻译一定量的本专业外文文献资料,有外文参考文献:45分根据选题需要,阅读、翻译少量的本专业外文文献资料,外文参考文献少或没有:13分无外文参考文献:0分成果质量创新程度(5分)在设计方案、算法、研究方法与手段等方面具有一定的创新并实施:45分有创新思路,且思路科学但并未实现:13分设计中没有创新思想:0分写作水平(10分)结构严谨,层次分明,论述清晰,语言流畅,表达准确:910分结构合理,符合逻辑,语言通顺,表达准确:58分结构合理,语言表达符合基本文法:14分结构不甚合理,文字语言表达不清:0分写作规范(10分)论文的版式符合要求、注释体例和参考文献规范、内容摘要和关键词,符合规范性:610分论文的注释体例和参考文献基本符合规范、内容摘要和关键词,基本符合规范性:15分完全不符合规范或规范性较差:0分界面美观大方,操作合理(5分)口界面美观大方,操作合理使用,有应用Ajax的相关的技术:5分口界面美观,可以合理应用div+css 基本达到设计标准:34分 口界面设计不统一,有拼凑现象:12分 口界面设计不能很好的实现,只是简单的背景、颜色、图片:0分 成果完成情况及质量(5分)完成预期成果且质量较高:45分基本完成预期成果或质量不高:13分指导教师评定成绩 天津理工大学专业课程设计选题表届:2010 学院(系):华信软件学院 专业:软件工程 年 月 日设计题 目MrPizza网上订餐系统学生姓名赵文宇 学号20105780一、 实现的功能销售管理菜品管理(菜品的添加、查看和统计报表、修改等操作) 订单管理(订单的添加、查看订单、删除订单) 送餐员管理(添加、查看、修改、和删除的功能)购物车(添加购物车、查看购物车、删除购物车)二、 采用的主要技术Struts2、spring、hibernate、jquery、json、分页、mysql数据库、jsp3、 研究内容Struts2+Hibernate+Spring框架的整合Hibernate与Spring框架 Struts2框架,jsp的巩固使用AJAX技术的使用以“网上订餐”为例锻炼团队合作能力,沟通能力四研究步骤系统分析可行性分析 业务流程图 数据流图 系统功能模块 系统设计数据库E-R图 前台界面展示 后台界面展示 购物车功能描述 餐品管理描述 系统测试 五参考文献书名: 作者: 黄缙华 出版社: 清华大学出版社书名: 作者: 刘志国等编著 出版社: 清华大学出版社书名: 作者: 张海藩 出版社: 清华大学出版社书名: 作者: 王少锋 出版社: 清华大学出版社序号起止日期计划完成内容13.6-3.3.9系统销售管理模块进行可行性分析23.9-3.14对网站的销售管理模块进行需求分析(E-R图,顺序图,流程图,功能图)33.15-3.17数据库设计(菜品表,菜品类型,订单表,总订单表)43.18-3.20网站首页设计(菜品显示,布局)53.21 -3.25网站后台页面设计63.26 -3.28菜品信息录入73.29-4.2菜品信息修改84.3-4.6菜品信息删除94.7-4.17菜品信息查询,显示在首页上104.18-4.30购物车115.1-5.5订单修改125.6-5.7订单删除135.8-5.10订单查询145.11-5.15根据指定日期统计各菜品销售额,并绘制(柱状图)155.16-5.20按照指定日期统计菜品类型统计各类型的销售额, 并绘制(柱状图)165.21-5.25同一类型统计各菜品销售量.并绘制(饼状图)175.26-6.6文档编写目 录1. 引言11.1. 项目背景及研究意义11.1.1. 项目背景11.1.2. 研究意义11.2. 国内外研究现状21.3. 主要研究内容31.4. 论文结构31.4.1. 背景41.4.2. 性能41.4.3. 限制条件51.4.4. 运行环境51.4.5. 功能模块52. 系统需求分析62.1. 系统的可行性分析62.1.1. 技术可行性62.1.2. 社会可行性72.1.3. 经济可行性82.1.4. 可行性研究结论82.2. 用户需求分析82.2.1. 功能分析82.2.2. 用例分析102.3. 系统设计目标分析133. 系统概要设计143.1. 系统的流程分析143.1.1. 使用的技术163.2. 数据库设计163.2.1. 数据流程163.2.2. 数据库需求163.2.3. 类的设计173.2.4. 主要的E-R模型18194. 系统详细设计与实现204.1. 类的关联关系204.1.1. 持久化类的设计214.1.2. 数据库操作类的设计224.1.3. 数据字典245. 功能的实现265.1. 邮箱验证功能的实现265.1.1. 功能说明265.1.2. 主要代码描述285.1.3. 运行结果295.2. 会员名找回功能的实现305.2.1. 功能说明305.2.2. 主要代码描述325.2.3. 运行结果345.3. 密码找回功能的实现345.3.1. 功能说明345.3.2. 主要代码描述375.3.3. 运行结果395.4. 菜品添加功能的实现405.4.1. 功能说明405.4.2. 主要代码描述425.4.3. 运行结果445.5. 菜品查看功能的实现455.5.1. 功能说明455.5.2. 主要代码描述485.5.3. 运行结果505.6. 菜品删除和修改功能的实现515.6.1. 主要代码描述545.6.2. 运行结果565.7. 购物车功能的实现575.7.1. 功能说明575.7.2. 主要代码描述605.7.3. 运行结果645.8. 送货地址添加及查看功能的实现655.8.1. 功能描述655.8.2. 主要代码描述695.8.3. 运行结果715.9. 送货地址删除及修改功能的实现725.9.1. 功能描述725.9.2. 主要代码描述755.9.3. 运行结果776. 系统的部署与测试786.1. 运行环境的搭建786.1.1. 系统运行环境的搭建786.2. 系统测试796.2.1. 常见错误806.2.2. 测试的方法806.3. 系统维护836.4. 问题及解决方案846.4.1. javamail问题846.4.2. jquery问题866.4.3. fineReport的问题866.4.4. FusionCharts的使用876.4.5. fineReport 报表的使用89结 论93参考文献95MrPizza网站设计文档1. 引言1.1. 项目背景及研究意义1.1.1. 项目背景 时代在发展,科技在不断的进步着,人民的生活水平也有了很大的提高,随着餐饮行业的发展,由于餐饮业门坎较低,中国的大多数餐饮企业的老板是从小店发展起来的,家族式管理的居多,许多还是“人治”,并没有一套现代企业制度和监督管理体制,所以从观念意识、经营思想和管理水平还有待专业化。随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。努力在当前餐饮行业日趋激烈的竞争中脱颖而出,已成为每位餐饮业经营者所追求的目标。网络订餐实现了小店面大作为的成本效益,解决了因为店面小的限制而无法提高营业额的难题,是一个小投入大成效的经营新模式。 那么在现在这个数字的时代,在计算机普及后的今天,中国进入了互联网信息时代,生活方式和工作节奏都随着信息传递速度的加快而变得急促。从信件传递发展成Email,从传统电话交流到IP电话网络电话,一切原本属于现实生活中的行为方式慢慢地向网络转移,传统的购物方式也正在向网络方面发展,出现了“网购”这种越来越受欢迎的新型消费方式。同样,作为服务业支柱的餐饮业不可避免地趋向网络化发展。1.1.2. 研究意义 随着社会经济的发展,人们的生活节奏不断加快,上班时间相当紧张,但一日三餐却不可少。通过网上订餐系统,不必亲临现场,在家中或在办公室上网,便可以为自己、家人、朋友聚会等制办一份既营养又实惠的美食。为了实现对客户点菜信息收集、处理、共享和再利用,以提高餐饮业务水平和效率,实现比电话订购更方便、更迅速、更有效的送餐业务。通过对订餐流程的考察,对业务细节进行了全面的分析,结合目前最先进的软件开发技术,实现了订餐的数字化、网络化管理。 餐饮系统不仅需要将整个餐饮业务通过信息系统进行系统管理,同时需要将各类人工服务的工作交由计算机处理,比如点菜和菜单的传送等等。同时,本网站是一个网上订餐系统,能为客户提供网络选择商家、浏览菜品介绍、点菜订餐、约定用餐时间、就餐或送餐以及注明货币支付方式等服务。这样,传统的订餐方式也正在转向网络化发展,但目前,网上订餐业务还处于形成期,成长以及发展的空间还是有很大的,当今的服务行业发展的非常的快,大家对于生活水平的质量有了很大的要求,这样对于第三产业即:服务行业在今后的发展有了相当大的推动作用,为一些企业提供了很大的客源,在需求和网络的普及下,网上订餐有很大的发展空间,在市场上也会占有一席之地的。1.2. 国内外研究现状 近一段时间以来,热衷于“网上订餐”的群体悄然壮大,上班族和学生更把它看成潮流浪尖上的亮点。在网上订餐的人都是一般都是对电脑比较熟练的人,也就是比较年青化的消费群体,包括白领、大学生、高中生和对计算机操作相对比较熟的人。因为这些人工作都比较忙,而且对计算机也比较熟,思想也比较超前,对于在网上订餐能够接受,并经常上网订餐。登录订餐网站,输入“地址”后点击搜索,出现“外卖店列表”,点击进入店面,明码标价的菜单立即跃入眼帘,用鼠标逐个点击你所要的品种,系统会累计放入“购物车”,输入具体送餐地址即可下订单,外送人员就会将美食送到你面前。网上订餐存在一部分的缺陷和不足。从生产分工来看,网上订餐最终得引入专业物流配送,由现代化的物流公司提供配送服务,这是它要突破的第一个瓶颈。其次,网上订餐送餐和其它网络服务一样,要面临网络信用问题,从而影响网上订餐业务。而网络技术问题则是网上订餐送餐的第三个瓶颈,如因技术问题丢失了客户订单,将会造成很大的负面影响。在网上订餐的人相对来说还是比较少的情况下,对网上餐馆的信用度持疑虑态度就成为了一个问题。另一方面,就是网上订餐只可以看到物品的说明简介和外观,没有看到实体于细节处,无法通过快速浏览确定是不是自己想要的菜品。而这正是传统的实体餐馆优于网上餐馆的地方。1.3. 主要研究内容 定义MrPizza网站的体系结构,为管理者在进行人员管理方面提高工作的效率,为网站面向的客户群体,在进行相应业务交易时提供尽可能的简洁操作。介绍项目的工作流程,给项目的使用人员做出详细的使用介绍,使设计的项目在交互过程中体现人性化,合理化,为了最大化的提高项目的可操作性以及业务功能的使用性,而进行项目设计,以及项目的讲解,也为了使软件的详细设计,需求分析与编程更加的合理化,人性化。本文主要研究网上订餐系统的设计与实现,在整个过程中主要完成以下工作:1. 分析网上订餐系统的现状和发展趋势,探讨、选择系统开发技术和开发平台。2. 研究系统开发所涉及的相关技术和理论,采用软件工程的指导思想,分析系统的功能需求、性能需求和安全需求,进行系统的总体设计。3. 根据需求分析与总体设计,实现基于Java的网上订餐系统,应用Java Swing技术解决开发过程中所面临的各种技术问题。4. 对系统进行部署与测试,根据测试结果,继续完善系统。1.4. 论文结构进度表 给详细分析的设计人员提供依据; 给任务的完成计划做了合理的工作安排; 项目管理人员将按计划书的要求和安排来进行项目的控制开发工作的全过程; 项目质量保证组将按此计划书做阶段性和总结性的质量验证以及确认。项目方面 给项目管理人员的管理信息收集提供了极大的方便; 给用户查看加盟店提供方便及丢失密码和会员账号找回等问题提供解决方案。 为餐饮行业增加了不一样的就餐方式,为用户节约时间。分为六章,各章主要内容如下:第一章:绪论。提出项目背景、研究对象及其国内外研究现状,介绍本文的主要工作和组织结构。第二章:系统需求分析。简要描述了系统的可行性分析、需求分析以及设计目标分析等。第三章:系统的概要设计。详细描述了系统的数据流程、业务流程,完成系统所需数据库的设计以及网站的整体设计。第四章:系统的详细设计与实现。系统前台、后台的主要页面的实现。第五章:系统的部署与测试。主要介绍了系统的运行和测试。第六章:结论。对开发的系统做了总结,指出了存在的不足之处,提出了以后需要进一步完善的工作。1.4.1. 背景项目名称:MrPizza网站设计提出者:赵文宇参与者:金翠竹(人员模块) 赵文宇(销售统计模块) 赵振兴(信息模块)项目审核人:庄凯1.4.2. 性能在项目的开发过程中,通过项目小组的成员的共同努力,项目的精确度提高了很多,项目的各部分的运行速度也比较的快,在用户登录、浏览、使用等方面,为用户节约了时间,对于用户的时间观念的等待值方面有了很大的突破,对于推出的一些新的产品会在第一时间将新产品的主要特色及时发到用户的邮箱中,并且提供了网站的链接,再用户对新产品有兴趣后可以最快的看见产品在网站的位置,为用户节约时间的同时,也达到了产品推荐的作用。对于用户的信息管理方面,我们利用了邮箱,这一大家不经常遗忘的资源,可以通过邮箱进行账号的找回,验证等基本的操作。1.4.3. 限制条件 对于网站的部分信息的查看等其他操作,必须是建立在用户进入网站,以及登录的基础上的,才能对网站的信息的修改,对菜品的评论等操作,管理员在添加加盟城市的时候必须先添加省、市;添加加盟店也是在添加省和市之后才能做的。 1.4.4. 运行环境 在Myeclipes6.5中运行,需要的数据库是mysql,浏览器(火狐,360等)。1.4.5. 功能模块 销售模块的管理主要实现的功能包括购物车的添加,查看,删除单个和删除全部;发货地址的添加,查看,修改,删除;邮箱的验证,密码的找回,找回会员名;菜品的添加,查看,修改,删除。2. 系统需求分析 主要分为系统可行性分析、用户需求分析;系统分析要求必须了解系统所实现的功能,这个设计的好坏直接影响的后面的开发。用户需求分析主要是了解用户的有哪些需求,本系统主要是用户的购餐需求以及管理的需求。只有了解了需求分析才能进行系统的开发,否则就会事倍功半,达不到我们预期的效果,因此需求分析是至关重要的。2.1. 系统的可行性分析可行性,是指在当前情况下,设计开发这个系统是否有必要,是否具备必要的条件,它不仅包括必要性,还包括合理性。系统的可行性分析,是针对要设计的系统,研究其设计是否存在内外部的必要条件,包括技术上、资金上、经济上、人力资源以及组织管理上的必要条件,同时要分析在目前条件下是否有必要设计这样一个系统。2.1.1. 技术可行性1硬件、软件要求不高,目前市场上的一般计算机软硬件资源均能满足系统开发要求。其中运用的主要软件工具有 MyEclipse6.5 ,ACDSee5.0等,数据库开发采用MySQL5.0。2. 技术支持1) Java Swing技术Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。它对AWT包进行了修订和扩展,Swing中的控件类比AWT更丰富,新增了很多复杂控件;Swing的类不再含有与平台相关的技术,而把这些平台相关技术留给运行环境来处理,因而Swing是纯粹的Java产物,具有最大程度的平台兼容能力。利用Swing的控件类可以开发出各种操作系统风格的应用界面;Swing的控件类使用接口来实现用户事件的处理,简化了用户输入事件的处理机制。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。2) JDBC技术JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC实际上是Java制定的数据库访问操作的规范,它为工具数据库开发人员或者Java程序员提供了一套标准的与数据库无关的JDBC API编程接口,这些编程接口其实就是位于Java.sql包的一些接口和类,利用它们可以方便地对不同数据库进行数据查询、插入、删除和修改等操作。据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java语言编写数据库应用程序。3) MySQL数据库MySQL是一个小型关系型数据库管理系统,MySQL被广泛地应用在Internet上的中小型网站中。许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL 是一个真正的多用户、多线程SQL数据库服务器,它是一个客户机/服务器结构的实现。MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,MySQL 对于一般中小型,甚至大型应用都能够胜任。而该系统是采用纯Java语言编写而成,所以以上技术足以完成本系统的开发和设计。3. 维护操作工作方便,后台操作快捷明了,操作人员可以在短时间内完全掌握维护技术。本系统自主网上订餐管理,系统具有强大的商品管理、购物车、订单统计、会员管理等功能,同时拥有灵活多变的商品管理、新闻管理等功能,系统操作简单。2.1.2. 社会可行性1网络订餐将传统的交易流程信息化、数字化,一方面以信息流代替了面对面的交易,可以大量减少人力、物力,降低了成本;另一方面突破了时间和空间的限制,使得交易活动可以在任何时间、任何地点进行,从而大大提高了效率。2网络订餐使餐饮业以较低的成本进入信息化市场,使得中小企业有可能拥有和大企业一样的信息资源。它开放性的特点,为企业创造了更多的交易机会,提高了中小企业的竞争能力。3网络订餐重新定义了传统的流通模式,减少了中间环节,使得生产者和消费者的直接交易成为可能,从而在一定程度上改变了整个社会经济运行的方式。2.1.3. 经济可行性资金可行性:由于系统开发环境配置以及其开发并不复杂,只需一些基本的开发工具。而且开发出的系统操作起来也比较简单,另外具备网络中的一些资源优势,因此开发费用较低。经济合理性: 由于通过网络进行商务活动,信息成本低,足不出户,可节省交通费,且减少了中介费用,因此整个交易活动会降低成本。2.1.4. 可行性研究结论依据以上因素,本系统开发项目不仅方便快捷、高效,而且社会效益比较好,从而使本系统开发者相信该系统开发出来之后将取得的成功。综上所述,此项目在技术、经济和社会效益上是完全可行的。2.2. 用户需求分析2.2.1. 功能分析用户以前登录网站后不能通过购物车直接在网上购买,这给用户带来了麻烦,也给管理人员和服务人员带来的困扰。经过调查和用户的反馈信息我们现在给网站添加了购物车的功能。用户访问网站时,如未登陆成用户,则可以查看网站中的食品信息不能购买食品,也可以查看留言但是不能添加留言。注册为会员我们会将您的注册信息发送到您的注册邮箱中,在您登陆后,可以进行添加留言,也可以购买指定数量的食品,购买完所有食品后,用户可调用结帐功能对所购买的食品进行结帐,也可以点击继续购物添加新的食品,在整个购买过程中,用户所购买的食品放在虚拟购物车中,并未记录数据库中。您也可以查看我们的加盟店,然后到附近的店里去购买食品。 作为一个网上订餐系统。首先为了保证客户能够很方便的进行餐品订购,系统应该具有分类查看餐品,系统应该实现“购物车”的功能,用户可以把选中的商品放入“购物订单”中,在选购完毕后再一起结帐。在系统的后台,管理员能够查看客户购买的订单,发布新闻,管理各类用户等。为了更好进行服务,系统还应该支持用户投诉功能。因此可分析出本系统所实现的功能包括前台和后台两部分,前台为系统功能的主要部分。前台主要以会员身份登录后的页面为主,功能包括如下几部分:1) 首 页 餐馆和餐品部分信息的简单介绍。2) 订餐流程 实现对不同用户订餐流程的说明。3) 餐品展示 实现本餐馆餐品的分类展示及查询某餐品的具体信息。4) 会员中心 会员信息的查看与修改。5) 信息发布 网站信息的发布以及用户投诉和客户留言。6) 网上订餐 订单的填写以及发送。7) 后台登陆 通过相关验证,管理员登陆后台实现对用户、餐品、订单以及消息的管理。后台功能包括如下几部分:1) 用户管理 对会员、游客、管理员三类用户的管理。2) 餐品管理 实现对餐品信息的增删改以及查询等操作。3) 订单管理 对用户的订单进行管理。4) 信息管理 网站公告和网站动态信息的发布以及用户投诉和客户留言的管理。 通过对市场的调查以及对项目的需求分析,基本可以了解网上订餐系统的基本功能以及操作的流程,并把这些功能以功能结构图形式画出,可以形象地了解本系统实现的具体功能。 本系统总功能结构如图2-1所示。图2-1功能结构图2.2.2. 用例分析 用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模,用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。本系统主要的角色(Actor)包括数据库、管理员、游客、会员;系统具体用例如下:图2-2 用例图下面介绍应用程序中的主要用例(user)。表2-1 管理员用例描述用例名称:管理员参与者:管理员前置条件:管理员成功登录系统后台用例功能:订单、用户、餐品、信息的管理事件流:当管理员成功登录系统后台,弹出后台界面异常事件流:当管理员未登录或输入不合法的数据后置条件:系统无改变表2-2 游客注册用例描述用例名称:游客注册参与者:普通用户前置条件:游客未登录系统用例功能:主要用于游客注册个人信息,成为系统会员事件流:当游客进入注册页面异常事件流:当用户输入不合法的数据或该会员号已存在后置条件:系统无改变表2-3 会员订餐用例描述用例名称:会员参与者:普通用户前置条件:会员成功登录系统用例功能:会员通过网上订餐模块进行订餐事件流:当会员登录系统后选择网上订餐模块异常事件流:当会员未登录或输入不合法的数据后置条件:系统无改变2.3. 系统设计目标分析开发的软件是简易的网上订餐系统,以各种用户为主要服务对象。提供良好的用户界面,实现与用户的交流,方便会员、游客订餐是本系统设计的目标。该系统能够实现用户的注册,餐品查看,购物车式的餐品订购,用户投诉等功能,在系统的后台,管理员可以处理用户订单并配送获取,并可以对餐品信息、新闻、用户投诉等实现集中管理。初步预想使用Java Swing+JDBC+MySQL等技术来完成本网上订餐系统。系统需要提供的主要功能如下:1. 用户能够随意浏览餐品,并能获取餐品的详细信息,如餐品图片预览、餐品简介等。2. 系统能够向用户提供一些浏览信息,让用户能够快速的了解系统出售餐品的信息,如特色餐品等。3. 系统能够提供公告信息,让用户快速了解系统的通告信息。4. 用户既可以注册成为本系统的会员,也可以以游客身份订餐;但会员可以享受如下特权:能随时修改自己的信息,可以凭积分享受折扣等。5. 系统有不同权限的用户,如会员、游客、系统管理员等。6. 系统可以管理餐品(添加、删除、修改、查询),订单,新闻公告以及客户投诉等等。3. 系统概要设计系统的概要设计是在系统分析的基础上由抽象到具体的过程。主要包括系统设计、数据库的需求分析以及网站的整体设计三大块。系统设计主要目标是将系统分析阶段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机运行环境的具体方案,进行系统的概要设计,为下一阶段系统详细设计提供必要的技术资料。3.1. 系统的流程分析 对于系统的业务流程的走向进行系统的分析,从宏观的角度,时时以一名用户的视角去设计项目的业务流程,使项目更加的人性化,自然化,更加符合用户对于订餐的一些基本要求,在分析过程中,始终坚持以用户为核心,以设计用户满意的网站为目标,坚持用户的体验满意度至上的原则。 用户在浏览网站时首先看到的就是网站首页。在首页用户可以了解本餐馆和部分特色餐品的信息。用户如果想要订餐时或者直接通过电话或者直接填写收货人的信息或者注册成为会员,在用户查看完商品的信息后,可以把自己想要购买的商品加入订单中,也可以随时修改,清空订单里的商品,如果用户对订单里的商品都很满意,就可以直接下订单(非会员要填写收货人的信息才能下订单)。这时相关的程序模块会将用户所提交的所有信息都记录在数据库里以便系统的管理人员可以核对信息并准备餐品,专门送餐人员给用户配送餐品并收取现金,此时整个订餐的过程便结束。在网络订餐的后台管理方面还需要添加、修改、删除餐品,同时各类用户信息的管理,网站公告的设置,站内新闻的发布和订单的处理等都需要系统的管理人员来操作,业务流程如图3-1 所示: 图3-1 业务流程图3.1.1. 使用的技术 使用了struts2,spring,hibernate,Ajax,json,用了mysql数据库。3.2. 数据库设计3.2.1. 数据流程 本系统涉及的数据较多,因此对于系统的设计首先要了解系统中数据的流向,只有清楚数据之间的关系,才能正确的设计系统的功能。可以通过数据流程图来表明数据之间的关系。从图中可以看到,会员成功登录后,可以修改查看个人信息,并将这些修改完善后的信息存档;还可以在查看餐品信息后下订单,订单会存储在数据库对应表中。尚未注册的用户,可以在查看餐品信息后下订单,订单也会存储在数据库对应表中,同时游客信息会保存在相应的表中。这些数据流最终都要进入数据库,管理员会对这些信息进行分类管理。3.2.2. 数据库需求WEB应用跟踪和管理用户的订单,行为主要有两种措施:一种是使用Session或Cookies保存用户活跃期间的信息,但是这些信息在会话结束后将不再存在。对于那些需要持久保存的信息,以及数据量比较大的数据必须通过数据库来进行存储。数据库适合存储那些需要持久保存的信息,并且提供很好的方式进行查询,插入,修改和删除。网上订餐是面向庞大用户的信息化产品, MySQL 是一个真正的多用户、多线程SQL数据库服务器,它是一个客户机/服务器结构的实现。MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,MySQL 主要目标是快速、健壮和易用。因此本系统选择MySQL作为数据库。3.2.3. 类的设计 图3-1类图 数据库表的描述:编号库表名称描述1User用户表2Admin管理员表3Province省表4City市表5Location加盟店表6Sender送餐员表3.2.4. 主要的E-R模型 ER模型是一种叫做实体联系模型的简称,它是以图形的方式表现的,又被称作实体联系图,ER模型是人们描述数据及其联系的概念数据模型,是数据库应用系统设计人员和普通非计算机专业用户进行数据建模和沟通与交流的有力工具,使用起来直观易懂,简单易行,ER模型是一种用图形表示数据及其联系的方法,所使用的图形构件(元件)包括矩形、菱形、椭圆形和连接线。主要的ER模型图如下:图3-2 E-R图4. 系统详细设计与实现根据前面的分析和客户的需求,本订餐系统由前台和后台两部分组成,前台主要是包括前台登录和前台主界面两部分,后台主要就是后台登录和后台登录后的界面,后台登录作为前台主界面的一个子模块实现。该阶段主要完成各子模块的设计以及页面与数据库的链接工作。4.1. 类的关联关系关联关系类图包括了本网站的主要页面以及它们之间的简单关系,各个类的关系以及相互之间的不同作用,在以下的各个具体的图中都有所体现,更加直观的展现了项目的具体构造类的联系。对于一个网络订餐系统,网站首页极为重要,首页设计的好坏将直接影响到顾客的购买欲望。在网站首页中,用户不但可以掌握特色餐品网站信息等。餐品展示页面,其设计思路:为了抓住顾客的购买欲,网络订餐应该引导用户进行购买,因此设置推荐餐品等,主导为用户提供查看餐品和订餐方便。另外,对于一个网上订餐系统而言,可以按类别查询餐品,所以设计餐品分类时,应该将餐品分类制成数据表存储在数据库中,以便动态地进行更新。用户通过输入不同类别中的餐品名就可以进入相应的餐品详细介绍的展示页面。会员订餐,其中的订单表格是用来临时存储用户购物信息的,用户可以随时增加商品,修改商品数量,删除商品以及清空表格。设计思路:将用户的购物信息存入一个临时表或临时文件中,当用户结账下订单时再删除临时记录。由于本系统是一个小型的订餐网站,所以可以考虑使用一个数据表来订餐,使用数据表:会员表,订单表,餐品表;会员中心是仅会员前台系统有的模块,当用户注册成为会员后,可以查看修改个人信息。使用数据表:会员表,订单表,反馈信息表等。以下为具体类图:4.1.1. 持久化类的设计图4-1 持久化类类图持久化类描述:表4-1 持久化类描述编号类名描述1Food菜品类2Order订单类3Orderinfo订单明细类4Taddress发货地址类4.1.2. 数据库操作类的设计图4-2 数据库操作类类图图4-3 数据库操作类类图描述:表4-2 数据库操作类描述编号类名描述1DaoImpl Dao操作实现类2DaoDAO操作类的接口,定义的数据库操作类中实现在方法4.1.3. 数据字典 食品表表4-3 食品表描述字段类型长度主键是否允许为空fidint11是否fnamevarchar255否是fdatevarchar255否是fimagevarchar255否是fhotint11否是flpricefloat255否是ftypeFtype200否是fhpricefloat11否是订单表表4-3 订单表描述字段类型长度主键是否允许为空oidint11是否locationvarchar255否是odatevarchar255否是senderSender255否是taddressTaddress11否是订单明细表表4-4 订单明细表描述字段类型长度主键是否允许为空orderinfoidint11是否foodFood255否是infotimeDate255否是numfloat11否是orderOrder11否是infomoneyfloat11否是地址表表4-5 地址表描述字段类型长度主键是否允许为空adidint11是否addressvarchar255否是UserUser255否是uphonevarchar255否是5. 功能的实现5.1. 邮箱验证功能的实现5.1.1. 功能说明用户注册成功后跳到邮箱验证的页面,action方法调用数据库中的数据,发送验证邮件的信息,验证成功后可以登录邮箱查看。邮箱验证活动图如下图所示:邮箱验证顺序图如下图所示:图5-1-1 邮箱验证功能活动图图5-1-2 邮箱验证功能顺序图描述:表5-1 邮箱验证数据描述编号名称类型描述1One/Index.jsp页面文件首页页面2One/menber.jsp页面文件用户注册页面3Tip.html页面文件邮件发送成功页面4daoDao接口Dao的数据库接口类5ActionAction类Dao的Action实现类6Struts.xmlXml文件Struts的控制中心7Mail.htmlHtml文件发送邮件页面5.1.2. 主要代码描述 Dao接口:/编写一个验证邮箱唯一性的方法public boolean Havemail(String uemail); /编写一个邮箱验时修改状态的方法public void updatemailstate(String umail);/编写一个根据邮箱更改密码的方法public void updateByMail(String umail,String pass);daoImpl实现:public boolean Havemail(String umail) List list=template.find(from User u where u.umail=+umail+);if(list!=null&list.size()=0)return false;elsereturn true; Action类:/验证注册邮箱 public String Havingmail() throws Exception boolean bo=us.Havemail(umail); HttpServletResponse response = ServletActionContext.getResponse();/ HttpServletRequest request = ServletActionContext.getRequest();PrintWriter out=response.getWriter();out.print(bo); out.flush(); if(bo=true) Sendmail mail=new Sendmail(); mail.sendMail(umail,邮箱验证 ,点击连接进行邮箱验证); return SUCCESS; else return NONE; 5.1.3. 运行结果一个功能的是否实现,看的是最后的运行效果是否是当初想要的,或者是否能将所想要实现的功能基本都实现了,运行结果是非常重要的在项目的文档中,因为它是检验功能实现与否的重要的依据。图5-1-3 邮箱验证功能运行结果图5.2. 会员名找回功能的实现5.2.1. 功能说明 用户进入主页面,点击进入登录页面。然后在点击找回会员名,跳到会员名找回页面,输入邮箱号,发送邮件,进入邮箱查看找到的会员名。会员名找回活动图如下图所示:会员名找回顺序图如下图所示:图5-2-1 会员名找回功能活动图图5-2-2 会员名找回功能顺序图描述:表5-2 会员名找回数据描述编号名称类型描述1One/Index.jsp页面文件首页页面2one/Login.jsp页面文件用户登录页面3findid.jsp页面文件用户找回会员名页面4daoImplDao实现类Dao的数据库实现类5ActionAction类Dao的Action实现类6ServiceService类Service服务类7Struts.xmlXml文件Struts的控制中心8Tip.htmlHtml文件显示页面5.2.2. 主要代码描述 Dao接口:public User OneUser(String aname);public void updatemailstate(String umail); daoImpl类:public int selectIdByUname(String uname) List list=template.find(from User u where u.uname=+uname+);return list.get(0).getUid();public void updatemailstate(String umail) Session session=template.getSessionFactory().openSession();Query q = session.createQuery(update User u set u.state=1 where u.umail=+umail+);q.executeUpdate(); Action类:public String updatemailstate() System.out.println(为什么不调用+umail); /改变状态的action boolean bo=us.Havemail(umail); if(bo=true) us.updatemailstate(umail); return SUCCESS; else return ERROR; public String sendmail() String umails = (String) ActionContext.getContext().getSession().get(mail); System.out.println(捕捉到的umail为+umails); Sendmail mail=new Sendmail(); mail.sendMail(umails,邮箱验证 ,点击连接进行邮箱验证); return SUCCESS; public String updatemailpage() boolean bo=us.Havemail(umail); if(bo=true) ActionContext.getContext().getSession().put(mail,umail ); return SUCCESS; else ActionContext.getContext().put(error,不存在您注册的邮箱,请查证!); return ERROR;5.2.3. 运行结果 一个功能的是否实现,看的是最后的运行效果是否是当初想要的,或者是否能将所想要实现的功能基本都实现了,运行结果是非常重要的在项目的文档中,因为它是检验功能实现与否的重要的依据。图5-2-3 会员名找回功能运行结果图5.3. 密码找回功能的实现5.3.1. 功能说明用户进入主页面,点击进入登录页面。然后在点击找回会员名,跳到密码找回页面,输入会员名,输入密保,验证输入信息的准确性,输入成功则修改密码。会员密码找回活动图如下图所示:会员密码找回顺序图如下图所示:图5-3-1 密码找回功能活动图图5-3-2 密码找回功能顺序图描述:表5-3 会员密码找回数据描述编号名称类型描述1One/Index.jsp页面文件首页页面2one/Login.jsp页面文件用
展开阅读全文