基于jsp的网上订餐管理系统_第1页
基于jsp的网上订餐管理系统_第2页
基于jsp的网上订餐管理系统_第3页
基于jsp的网上订餐管理系统_第4页
基于jsp的网上订餐管理系统_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1绪论111订餐系统的研究背景112订餐系统的研究目的及意义113相关技术简介2131JSP技术2132MVC开发模式4133HIBERNATE框架614MYSQL数据库62订餐系统分析821系统可行性分析822需求分析9221系统功能需求9222系统性能需求10223系统重要用例分析11224业务流程分析13225数据流分析143订餐系统总体设计1631系统设计原则1632系统结构设计1633功能模块设计17331前台显示的功能模块设计17332后台管理的功能模块设计1734数据库设计19341数据库表设计20342数据库概念模型设计(ER图)20343数据库逻辑结构设计224订餐系统编码与实现2741系统的分层设计与实现27411表现层(UI)27412业务逻辑层(BLL)28413数据库访问层(DAL)2942前台显示模块的实现30421会员注册模块的实现31422搜索餐饮模块的实现32423订餐功能模块的实现32424留言评价模块的实现3643后台管理模块的实现36431公告管理模块的实现36432餐饮管理模块的实现38433管理员管理模块的实现40434订单管理模块的实现42435会员管理模块的实现435订餐系统测试与运行4551测试的定义4552测试的原则4553测试的目的4654系统运行环境要求4655系统测试基本要求46551界面测试46552功能测试47553性能测试4756系统测试用例4757系统测试结果48结论49参考文献50致谢511引言11开发背景餐饮业是一个古老的行业,随着我国经济的快速发展,人民生活水平的不断提高,我国的餐饮业必将有巨大的发展。但是,目前我国的餐饮业信息化程度很低,还基本处于手工操作层面上,网上订餐已经成为餐饮行业一种新型的营销方式。因此,开发网上订餐系统是很有必要的。随着网络的普及和人们生活水平的提高,人们对自己的饮食也渐渐的注重起来,很多人在进行紧张工作之余会选择享受美食进行放松。但很多时候会出现这样的情况人们到餐厅就餐,会出现排队或者没有位置的现象;还有就是有的人不愿出去或者没时间出去买餐,想在自己的家里就能享受到美味的食物。基于客户的这些需求,就产生了网上订餐的这一构想。其次在于我们的生活中出现网上订车票、机票的系统,对于网上餐饮的定制在日常生活中还是比较少见的,这样的系统发展潜力大,发展范围广泛。现在在一些大型的餐馆或者酒店也有网上订餐的系统,但是使用还不广泛,有的只在餐馆里使用,网上订购这一功能没有得到充分利用。这些现实问题为开发简便、实用的网上订餐管理系统提供了必要条件。在日常生活中,最普遍的订餐方式是电话预定,这种预定方式简洁、方便,错误率也比较低,但是在订餐时,往往由于客户对餐饮企业提供的信息比了解或者不够了解,就会进行相关的咨询,这造成了一定程度上的时间浪费。当多个客户拨打同一个电话时,有可能出现线路忙的情况,这会给顾客留下不好的印象,这些将都会带来不便,餐厅人员会在同一天反复重复相同的信息,造成了人力资源的浪费。对于餐饮企业经营者,利润是目的,而效率是盈利的必要条件,使用方便快捷的网上订餐系统不仅可以减少人力消耗,还能很大程度上节约时间,提高工作效率。综上,我认为开发网上订餐管理系统对于客户和经营者都是很必要的。12研究意义网络的普及使人们对网站的设计和外观的要求越来越挑剔了,因此,网页作为一个企业的脸面需要精心设计。餐饮经营者可以在自己的网站上,发放餐馆的信息和菜品信息,每一样菜都有精美的图片,实行餐馆企业的自我推介,从而吸引上网人员的关注。设计个性化的界面吸引顾客,使消费者方便快捷的登录,并很方便的预订需要的菜品。在企业经营管理方面,实行信息化的网上订餐的作用更为显著网上订餐可以餐饮企业提高效率,节约成本。通过计算机进行订餐所需程序传单、订单、计算、汇总等,计算准确并且高效,这不仅加快了企业的卖餐速度,而且以快速,便捷的送货上门方式给顾客提供最好的最需要的餐饮及服务,为客户省去了很多不必要的时间网上订餐系统不仅能够比传统的订餐方式高效,还有自己的优点。网上订餐系统,提供了图文并茂,及时更新的丰富信息,让客户有更多的选择机会,并且如同自己面对现成的食物一样,这样可以使顾客身心感觉都很好。用餐时间,生意好的餐厅电话一般很难打通,为此客户可能做出其他选择,而网上订餐不会存在这样的问题。网上订餐很适合白领等上班族的生活工作方式很多办公室人喜欢上网,网上订餐省时又省力,可以轻轻一点,足不出户就可以吃到想要的饭菜。网上订餐带来的方便会在客户总形成良好的口碑,网络的应用也会提高餐馆的形象,从而吸引更多的顾客,为餐馆带来更多的盈利网上订餐系统其功能不言而喻,不仅能够满足顾客需求,而且餐饮企业也可以高效经营管理。其能够占领市场的另一个优点是该系统运行平台很简单,只需要一台计算机,能够上网即可。如果要选择网上支付,则经营者需要有网上银行。这个系统属于小型的应用系统,经营者使用起来不必担心经济负担13相关技术简介131JSP技术JSP(JAVASERVERPAGES)是由SUNMICROSYSTEMS公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入JAVA程序段(SCRIPTLET)和JSP标记(TAG),从而形成JSP文件。JSP全名为JAVASERVERPAGES,其根本是一个简化的SERVLET设计,他实现了HTML语法中的JAVA扩张(以形式)。JSP与SERVLET一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。WEB服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的JAVA程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP技术使用JAVA编程语言编写类XML的TAGS和SCRIPTLETS,来封装产生动态网页的处理逻辑。网页还能通过TAGS和SCRIPTLETS访问存在于服务器端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于WEB的应用程序的开发变得迅速和容易。JSP技术使用JAVA编程语言编写类XML的TAGS和SCRIPTLETS,来封装产生动态网页的处理逻辑。网页还能通过TAGS和SCRIPTLETS访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于WEB的应用程序的开发变得迅速和容易。JSPJAVASERVERPAGES是一种动态页面技术,它的主要目的是将表示逻辑从SERVLET中分离出来。JSP页面由HTML代码和嵌入其中的JAVA代码所组成。服务器在页面被客户端请求以后对这些JAVA代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JAVASERVLET是JSP的技术基础,而且大型的WEB应用程序的开发需要JAVASERVLET和JSP配合才能完成。JSP具备了JAVA技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP20中的一个主要功能是JSPFRAGMENT,它的基本特点是可以使处理JSP的容器推迟评估JSP标记属性。我们知道一般JSP是首先评估JSP标记的属性,然后在处理JSP标记时使用这些属性,而JSPFRAGMENT提供了动态的属性。也就是说,这些属性在JSP处理其标记体时是可以被改变的。JSP需要将这样的属性定义为JAVAXSERVLETJSPTAGEXTJSPFRAGMENT类型。当JSP标记设置成这种形式时,这种标记属性实际上的处理方法类似于标记体。在实现标记的程序中,标记属性可以被反复评估多次。这种用法称为JSPFRAGMENT。JSPFRAGMENT还可以定义在一个SIMPLETAG处理程序中使用的自制标记动作。像前面例子说明的,GETJSPBODY返回一个JSPFRAGMENT对象并可以在DOTAG方法中多次使用。需要注意的是,使用JSPFRAGMENT的JSP只能有一般的文本和JSPACTION,不能有SCRIPTLET和SCRIPTLET表达式JSP的优势一次编写,到处运行。除了系统之外,代码不用做任何更改。系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。强大的可伸缩性。从只有一个小的JAR文件就可以运行SERVLET/JSP,到由多台服务器进行集群和负载均衡,到多台APPLICATION进行事务处理,消息处理,一台服务器到无数台服务器,JAVA显示了一个巨大的生命力。多样化和功能强大的开发工具支持。这一点与ASP很像,JAVA已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。支持服务器端组件。WEB应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供WEB页面调用,以增强系统性能。JSP可以使用成熟的JAVABEANS组件来实现复杂商务功能。132MVC开发模式MVC是MODELVIEWCONTROLLER的简称,是XEROXPARC在八十年代为编程语言SMALLTALK80发明的一种软件设计模式,至今已被广泛使用。MVC框架结构支持三层结构的类表现应用程序状态层、屏幕表现层和控制流层,因此这三层被称为模式(MODEL)、视图(VIEW)和控制器(CONTROLLER)。MVC是可以满足那些需要为同样的数据提供多个视图的应用程序的开发需要,在开发与用户界面相关,特别是对用户界面要求较复杂的相关的应用程序时,可以很好地以不同的方式来显示同一数据,也就是在不改变软件功能的前提下,可以实现用户对用户界面的个性化要求,而MVC模式的最大特点就是将业务层与表示层分离,而且提供了很多使显示界面更加个性化的标签库,所以它能更好地实现用户界面的各种个性化需求。MVC模式在MIS系统、决策支持系统和ERP等分布式应用系统的设计与分析中广泛使用,但它本身并不局限于某一个特定的领域。该模式的三个核心部件分别为模式(MODEL)、视图(VIEW)和控制器(CONTROLLER),下面分别做简要的分析模型(MODEL)也就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。视图(VIEW)代表用户交互界面,对于WEB应用来说,可以概括为HTML界面,但有可能为XHTML、XML和APPLET。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于处理视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型MODEL处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。控制器(CONTROLLER)是系统的控制层,起到控制整个业务流程的作用。控制器可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。控制层并不做任何的数据处理。例如用户点击一个链接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,然后选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。MVC模式的优点是非常明显的。首先是显示逻辑和业务逻辑的分离很好地提高系统的可维护性和可扩展性。其次,一个模型可以对应多个视图。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。系统采用MVC模式是明智的选择WEBMVC架构的结构图如图11所示。图11STRUTS技术的MVC实现模型133HIBERNATE框架HIBERNATE是一种很好的ORM(OBJECT/RELATIONALMAPPING)映射工具,是一个开放源代码的对象关系映射框架和一个独立的对象持久层框架,它对JDBC进行了非常轻量级的对象封装,使得JAVA程序员可以随心所欲的使用对象编程思维来操纵数据库。HIBERNATE可以用在任何JDBC可以使用的场合,例如JAVA应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。HIBERNATE核心接口一共有6个,分别为SESSION、SESSIONFACTORY、TRANSACTION、QUERY、CRITERIA和CONFIGURATION。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。图12显示了HIBERNATE的整体框架图12HIBERNATE整体框架图14MYSQL数据库所有的企业都与数据息息相关,人们将越来越多的资料存入计算机中,并通过一些编制好的计算机程序对这些资料进行管理。本系统是采用MYSQL数据库。MYSQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MYSQLAB公司。MYSQL被广泛地应用在INTERNET上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MYSQL作为网站数据库。MYSQL是一个关系型数据库管理系统,由瑞典MYSQLAB公司开发,目前属于ORACLE公司。MYSQL是最流行的关系型数据库管理系统,在WEB应用方面MYSQL是最好的RDBMSRELATIONALDATABASEMANAGEMENTSYSTEM关系数据库管理系统应用软件之一。MYSQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MYSQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MYSQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MYSQL作为网站数据库。MYSQL是一个高性能、多线程、多用户、建立在客户服务器结构上的RDBMS,专门为了速度和稳定性而设计的。在过去的几年里,它已经成为线上和线下适合于数据库驱动的应用程序最受欢迎的RDBMS之一。现今,有超过400万的网站建立、使用并配置了基于MYSQL的应用程序,并且网站的数量每天都在增加。MYSQL数据库的特征MYSQL始终围绕三个基本原则而设计,它们是性能、可靠性和容易使用。严格按照这些准则产生了一个价格便宜而富有特色、适应标准而容易扩展、速度快而效率高的RDBMS,使MYSQL成为开发者和管理者建立、维护和配置复杂应用程序的完美工具。MYSQL具有性能优越,可靠性强,多用户支持,容易使用,可扩展,可移植,国际化,广泛的应用程序支持,开放源代码的特点。2订餐系统分析21系统可行性分析商业软件是根据客户的根本目的和需要而设计和开发的,可行性是开发的系统具有使用价值和生命力的保证。从软件开发的角度来看,当启动一个软件开发任务时,就进入了软件生命周期的第一个阶段,即可行性研究与计划阶段。众所周知,世界上所有的问题不是都有简单明显的解决办法的,许多问题不能在预定的系统规模之内解决。如果问题没有可行的解,那么花费在这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性分析是研究在当前的具体条件下,开发新系统是否具备必要的资源和其他条件。为了达到这个目的,必须认真了解用户的要求及现实环境,探索若干种可供选择的主要解法,并对每种解法的可行性进行仔细论证。本文将从技术、经济、操作、运行和时间几个方面进行论证。(1)技术可行性分析从技术角度分析,本系统的基本设计思想是把整个系统按照功能模块进行分解,采用STRUTSHIBERNATE作为基础架构,使用MYSQL数据库来存储和管理系统的数据。使用SH框架,采用MVC设计模式来开发基于WEB的信息系统,是经过无数人的实践验证过的,也符合本次开发的实际情况,是完全可行而且十分有效的。MYSQL数据库具有使用方便,可伸缩性好,与相关软件集成程度高等优点,服务器使用TOMCAT60,是一个开源软件。在熟练掌握这些语言和工具之后,开发本系统在技术方面是可行的。(2)经济及操作可行性分析本系统的硬件所需费用很少,系统开发与维护所需经费也不高。从长远来说,餐饮经营者使用网上订餐系统,可以降低销售成本,打破时间和地域的限制,经济性是相当可观的,可以带来长期的间接效益,为企业的未来发展打下良好的基础。从目前的技术发展分析,采用STRUTSHIBERNATE框架和MVC模式开发网上订餐系统是较为理想的方式,且有不少关于网上订餐系统成功的案例,开发的成本较低,因此在实际开发中具有很高的经济可行性。本系统的开发模式,在客户端只需安装WEB浏览器如WINDOWS的IE浏览器,随操作系统安装,通过WEB页面为客户提供了统一的界面,对客户来说只要具有基本的计算机操作能力就可以使用。(3)运行及时间可行性分析JAVA的一大特点是跨平台,可移植。所以在运行方面是毋庸置疑的,无论系统被移植到那个平台上,均能正常运行。当前网络比较普及,对于普通的餐馆也拥有网络设备,我们学校计算机和网络技术已经相当普及,学生们对这方面的认知和操作已经是相当熟练,所以在运行上是可行性的。时间可行性包括两方面一是开发时机是否成熟,另一方面是指系统开发所需要的时间能否满足需要。综上所述,本次设计在技术、经济、操作、运行和时间上都是完全可行的22需求分析221系统功能需求网上订餐系统根据用户的不同需求可分为两大功能,其中一个为针对用户开放的前台显示功能,另外一个为针对餐饮管理人员开放的后台管理功能。不同的功能是针对不同的用户角色的,因此不同的功能也拥有不同的需求,以下是对两大功能进行的分析。(1)前台显示功能分析用户主要是在前台进行操作,因此该功能是开发一种面向消费者的网上订餐信息系统。类似于网上购物,在这个系统上,客户可以使用网络,查询各种各样的餐饮,比如菜品信息,价格信息,评价信息,还可以在留言区进行留言等。用户通过各种餐饮信息的对比,足不出户就可以选择物美价廉有可口的饭菜。其功能分析如下。注册功能用户可以注册成为会员,根据消费情况可以变更会员级别,以会员身份登录可以享受会员价消费。登录功能用户登录系统首页,查看餐饮信息,订购餐饮,浏览网站公告信息等。修改信息功能注册用户可以对自己的账号及相关信息进行修改,查看等管理。餐饮搜索功能为用户提供餐饮搜索的功能,输入搜索关键字,即可查出相对应的餐饮信息。订餐功能用户选择餐饮放入订餐车,可以更改订餐车中物品数量,或者取消选择。订单管理功能用户确定订餐,提交之后系统生成订单,用户可以查看订单信息。留言评价功能用户可以在留言区进行餐饮的留言评价,还可以查看留言。公告浏览功能用户在前台显示页面可以对系统发布的公告进行浏览。2后台管理功能分析根据餐饮业经营的实际情况来开发本系统的后台管理,通过对经营者具体经营方式调查分析,可以看出管理员主系统要涉及到一些数据库的逻辑操作和程序应用逻辑操作。具体的功能归纳如下管理员登录管理员在本地登录,创建新的管理员。餐饮分类管理管理员对餐饮类别进行添加,更新,删除等管理。餐饮管理管理员对服务器上的餐饮信息进行添加,查询,修改和删除。比如更新餐饮的图片,价格,分类,描述等。订单管理管理员对订单进行管理。对网上收到的订单,对其信息进行确认,对其所需餐饮种类、数量进行核对,并及时将不能够提供的服务反馈给用户,并对发布信息进行修改存档。对订单进行查询,修改,删除操作。留言管理管理员对用户对相关食物做的评价信息进行查看、回复、删除等操作。会员管理以数据库的方式存储用户的基本信息、订餐信息、会员信息等,以备下次更好的服务,提高服务整体的人性化。公告管理管理员对餐饮企业的优惠活动等信息及时发布、更新。将以上的功能制作成网页以后,在其中分别互相建立连接,基本上可以完成网上订餐系统用户和管理者的要求。222系统性能需求本系统在订餐时间业务会比较繁忙,因此系统的反应速度应较快,输入数据时立即响应。更新、查询数据时若有延迟,应提示用户等待,并且对用户操作的成功与否给予提示。餐饮色美才能吸引用户的注意,因此系统界面应美观大方、风格统一,突出特色,功能设计应体现人性化思想,方便用户操作。用户登录系统时需输入口令,对不同类型的操作员授予不同等级的权限去使用相应的功能。对于会员,如果是普通会员,则其只能以市场价消费,而不能享受特别会员价;如果该顾客是特别会员,那么其在消费的时候就可以享受低于市场价的会员价。对于管理员,在其对系统相关信息进行查询时,查询效率要求高,能够及时响应查询请求。另外,系统还应当满足以下需求(1)信息的完整性要求采用值约束、缺省等方法确保信息的完整性,一旦用户录入数据不符合系统要求时,系统必须明确给出警告信息。(2)系统的可扩展性用户有新的需求时可以增删一些功能模块,以便及时解决实际工作的需要。223系统重要用例分析(1)用例图分析用例图是系统、子系统或类和外部的参与者ACTOR交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列。用例是代表系统中各个项目相关人员之间就系统的行为所达成的契约。在UML中,用例用一个椭圆表示,用例名往往用动宾结构或主谓结构命名。参与者是指用户在系统中的扮演的角色,其图形化表示是一个小人。网上订餐系统中包括三类用户普通用户,会员用户,管理员。每个用户角色的功能使用情况如图21所示图21系统整体用例图(2)系统核心功能分析和序列图用户订餐是整个系统的核心功能,用户通过此功能完成订餐,并获得订单信息。用户按照以下流程进行订餐每位用户有一个购餐车,可以添加餐饮,删除餐饮等工作。用户首先需要选择自己想要的餐饮和份数,并且添加进购餐车,最后通过购餐车生成订单。当选择完成之后,用户通过购餐车功能进行订单确认,填写好送达地址,接收时间,收货人,联系电话等信息。系统会再次确认送达信息,用户点击确认之后递交数据库。提示操作完成,并打印出这张订单的所有信息。用户订餐完成之后返回主页面。用户订餐时序图是用户订餐时的时序响应。网上订餐功能的时序图如图22所示图22网上订餐流程时序图224业务流程分析系统业务流程的调整和优化对系统的设计和开发是十分必要的。在系统设计开始之前,对系统的业务处理流程进行详细调研分析,根据网上订餐系统的特点和功能分析的结果确定目标业务流程,规划详细的解决方案。根据上述分析的内容,绘制系统的总体流程图。该网上订餐系统的总流程图如图23所示。图23系统总体流程图在图33系统总体流程图中,我们能够看出,登录的用户和未登录的用户都可以使用餐饮搜索、餐饮浏览、公告浏览三个功能。登录的用户才可以进行个人信息管理、留言评价和订购餐饮功能。管理员登录成功后,可以对后台餐饮信息,会员信息,留言信息,公告信息,订单信息进行新增,删除,修改,查询等操作225数据流分析在分析了系统的业务流程之后,就要分析系统的数据流,为后面设计网站的数据库做好基础。这里主要利用数据流图来说明数据流程。数据流图是一个图示工具,容易理解,容易在开发和用户方之间进行交流,以及在开发组织内部交流。因此数据流图作为一种模型工具已经广泛使用在软件工程的实践中。根据前台业务流程,可以将用户的活动分为两类。用户浏览所使用到的数据归纳为站内信息,如餐饮信息等。而用户提交的订单则作为网站的订单数据。相应的,根据后台业务流程,管理员对网站内容的添加、更新和删除等所操作的数据定义为操作信息。系统数据流的总体图如图24所示。图24系统数据流的总体图进一步分析系统的数据流程,得到系统数据流程的零级图,如图25所示。图25系统数据流的零级图上面得到的零级图并不是网上订餐系统完整的详细流程图,它只是将系统的数据流进行了分类。例如将系统的操作信息分为餐饮信息、用户信息和处理信息。在零级图的基础上还可以将每一个处理进行细节描述,从而画出详细流程图。3订餐系统总体设计31系统设计原则系统的设计主要遵守以下原则(1)整体性保障原则系统的开发采取“总体规划、分步实施”的开发策略。在开发之初,先进行整体的规划,然后在总体规划的指导下开发。(2)实用性原则实用性是衡量软件体系中最重要的指标,是否与业务结合的紧密、是否具有严格的业务针对性是系统成败的关键因素。(3)先进性原则要立足于先进技术,使系统具备技术领先的地位。同时要使用成熟技术,保证系统可靠地运行。要充分考虑用户的需求,从实际出发,保证系统的可使用性、可维护性。(4)安全性原则网上订餐系统涉及到网上交易,属于电子商务性质的系统,系统地的安全性不容忽视,在进行系统设计时,必须充分考虑潜在的来自网络内部和外部的安全风险,提供有效的安全措施,以保证系统的安全运行。(5)模块化设计原则电子商务性质的系统是根据业务的需要动态变化的,系统应采用模块化的设计模式,使功能结构具有可伸缩性和可扩展性以实现企业以后发展的需要。32系统结构设计根据业务流程,需要将网上订餐系统划分为前台、后台和数据库。前台中,顾客在登录系统首页后即可链接查看到餐饮等信息,还可以做订购餐饮等活动。为了方便顾客搜索感兴趣的餐饮信息,将餐饮搜索嵌入到主页面中。数据库将要作为系统后台重要的组成部分,管理员的主要操作几乎全部围绕数据库,最后将更新的数据要显示给前台。前台是一个比较大的功能群,它所包含的信息不仅数量多,而且种类不同。将它设计成比较优化的结构形式能组织好系统首页的信息内容并将其归类,方便用户获得所需要的信息。其中每一部分都以尽量少的内容显示,以免浏览者看的眼花缭乱而失去耐心。除了这些作用外,设计好前台的结构形式,也是为后面程序的编写做出了框架。在为系统划分功能模块,并以模块为单位来实现设计时也是以这个结构为根基的。系统的后台要对整个系统首页的信息和数据进行维护。系统前台所显示的信息在后台都应该有对应的维护。这样,除了设计后台的各个管理界面外,为了方便管理员的工作,可以将各个管理的界面结合到一个页面中。因此,各个管理的界面会作为主管理界面的分支。在设计好系统前台与后台的结构以后,就将数据库加入到结构中。后台将更新的数据写入到数据库中,前台再将数据库中的信息取出来并显示到前台。33功能模块设计层次模块结构是将系统划分为若干子系统,子系统下再划分为若干的模块。而模块是指具备有输入输出、逻辑功能、运行程序和内部数据四种属性的一组程序。在结构化系统设计中,模块一般都是按功能划分的,通常称为功能模块。合理的功能模块的划分能够极大限度地减少重复劳动、提高开发工作的效率并增大系统的可维护性。以前面的系统分析为基础,针对顾客和管理员两个角色,网上订餐系统又可以分为前台显示模块和后台管理模块两大块。网上订餐系统的功能模块图如图31所示图31网上订餐系统功能模块图331前台显示的功能模块设计前台模块主要为登录系统首页的用户提供餐饮和服务的信息,填写并提交订单的服务。这样,将前台模块再细分为用户注册登录模块、显示餐饮类别模块、订单管理模块、显示公告信息模块、购餐车管理模块、顾客留言评价模块、搜索餐饮模块、修改注册信息模块。顾名思义,这些模块的名称基本概括了它们的功能。下面详细说明各个功能模块的设计(1)注册登录模块实现用户的注册登录功能。在注册部分还设定会员级别,不同级别的会员可享受不同的优惠价格。(2)显示餐饮类别模块根据餐饮的属性、类别,为餐饮进行分类,在一个餐饮类别中可能存在多种餐饮,一种餐饮对应唯一一个能类别。因此每一种餐饮都有相应的餐饮属性和餐饮类别。(3)购餐车管理模块在餐厅吃饭,可以根据自己的需要将很多种食物挑选至餐饮盘中,然后到收银台结款。而在网上订餐系统中,采用一种被称为“购餐车”的技术来模拟现实生活中的订餐。在网上订餐系统中,所选餐饮须通过购餐车进行暂存,然后生产订单。这种技术使用起来十分方便,不但可以随时添加、查看、修改、清空购餐车中的内容,还可以随时结账。(4)订单管理模块用户提交订单后,通过查看订单信息功能来查询订单信息及执行状态。只需要根据用户录入的订单号在数据表中查询处对应的货品信息即可。(5)显示公告信息模块系统管理员发布系统最新的公告信息,系统前台显示,可以让用户更及时的了解到各种优惠活动,为用户提供方便快捷的服务。(6)顾客留言评价模块用户可以在登录系统首页后,在发表留言页面进行留言,可以发表自己对系统整体、对某种餐饮或者是对某个活动发表自己的看法。这样可以让系统有进一步改进的空间。(7)搜索餐饮模块当系统首页存在大量餐饮时,一件一件查看比较麻烦,为了顾客查找的方便,系统前台提供餐饮搜索的功能,输入搜索关键字,即可查出相对应的餐饮信息。(8)修改注册信息模块该模块是为用户更改个人信息所提供的窗口,为了保护用户信息部受非法侵害,用户只有登录网页后才有权限修改个人资料。这样,子模块各自的内容基本设计好。下面可以设计如何将这些模块组织在一起,构成一个结构比较合理的前台了。除了在系统首页中建立面向其他模块的链接外,也要在其他模块中建立返回主页面的链接。另外各个模块间也应该互相链接起来。332后台管理的功能模块设计后台管理模块的功能是对站内的资源进行管理和维护。以后台的业务流程分析和前台各个模块的设计为基础、根据用户的需求分析来确定后台管理模块应具有的功能。后台管理模块的各个子功能模块如下管理员管理模块为合法管理员提供一个后台入口。该模块的功能是对管理员身份进行验证。管理员输入用户名和密码后,系统将判断用户名及密码的有效性,如果通过验证则状态后台主页,反之则提示错误。餐饮管理模块此模块包括餐饮类别管理,餐饮信息管理和特价餐饮管理三个子功能。分别向餐饮类别表、餐饮信息表插入前台首页显示的餐饮类别信息、餐饮信息和特价餐饮信息,并可以对这些信息进行查询、修改和删除。订单管理模块用于显示所有订单基本信息。可以对订单状态进行确认,点击查看某订单的详细信息。可以对订单进行删除操作。会员管理模块管理员可以查询所有注册用户,根据会员的消费情况,定期对会员的级别进行修改,使经常光顾的用户享受更高的优惠。对一些非法或失信用户进行删除操作。公告管理模块管理员可以对网站公告进行查询、修改、删除等操作。留言评价管理模块用于显示所有用户的留言信息。管理员可以查看用户留言,并对未回复的留言进行回复操作。34数据库设计数据库是数据库应用程序的重要组成部分。一个设计结构合理的数据库对于应用程序的开发效率和程序的性能都是非常重要的。成功的数据库设计意味着数据库能够存储所有必需的数据,而且其存储方式保证能够快速的保存、提取、编辑、删除数据。许多因素影响数据库设计是否成功,而数据库是否规范化是一个关键的因素。一个规范化的数据库应满足第三范式的要求,即应该竭力避免部分依赖和传递依赖,这样可以减少数据冗余造成的由于数据异常引起的不必要错误。数据库的设计过程大致如下。(1)数据库需求分析。根据用户需求,确定数据库中要保存的数据信息。对用户需求进行分析时数据库设计的第一个阶段。不断的调查与研究用户需求,了解企业运作流程等系统需求,是设计概念模型的基础。(2)设计数据库的概念模型。概念模型是按用户的观点来对数据建模,是用于进行信息世界建模的工具。它对整个数据库的设计具有深刻的影响。(3)逻辑结构设计。逻辑结构是把概念结构转化为与所采用的数据库管理系统所支持的数据模型相符合的过程。(4)数据库的实施和维护。在设计好前台与后台的功能模块后,就开始进行数据库的设计了。根据网站系统的分析,数据库是整个网站的核心。从前台显示的信息到后台操作的对象,都是围绕数据库展开的。本系统是按照需求分析、概念模型设计、逻辑结构设计、数据库的实施和维护的流程完成数据库设计,力求满足该设计原则。341数据库表设计数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MYSQL、SQLSERVER、ORACLE等。根据用户的需求和系统分析,本系统采用MYSQL数据库管理系统。在MYSQL数据库管理系统中建立名称为DB_EATERY的数据库。这个数据库需要提供各种信息的保存、更新和查询,这就要求数据库结构充分满足各种信息的输出和输入。搜集基本数据、数据结构和数据处理的流程,组成一个详尽的数据字典,为后面的具体设计打下基础。根据系统功能需求,网上订餐系统数据库中将建立以下10个数据表管理员信息表(ADMIN)会员信息表(MEMBER)会员级别表(MEMBERLEVEL)餐饮类型表(FOODTYPE)餐饮信息表(FOODINFO)订单信息表(ORDERS)购餐车信息表(CART)餐饮订购细则表(FOODDETAIL)留言评价表(MESSAGES)公告信息表(NOTICE)342数据库概念模型设计(ER图)数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。ER模型的基本概念ER图概念化地构建实体间关系的模型,这使得它们区别于数据库模型图。ER图的理念是项目所有参与者能理解ER图。ER图由不同实体类型、关系、特性和类型构成。实体是诸如用户的实际对象,有时更抽象,但必须有业务意义。特性用于描述实体,关系用于实体之间。实体是现实世界中的事物;属性是事物的特性;联系是现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。根据数据库的需求分析,设计规划出本系统的实体有管理员和会员实体,餐饮信息实体,订单实体,公告实体和留言评价实体。下面以会员实体对象和餐饮信息实体对象为例来说明。会员实体对象拥有会员的基本属性,包括会员编号,会员级别,用户名,密码,地址,注册时间等属性。会员编号是识别不同会员的唯一标识,数据类型为INT型,并且是数据库自增的。其他属性是会员通用的特性。会员信息的实体对象如图32所示。会员信息会员级别登陆次数邮箱用户名会员编号密码地址电话注册时间真是姓名电子邮件图32会员实体对象餐饮信息实体对象包括餐饮编号,餐饮名称,类别编号,有无特价,市场价,会员价等属性。餐饮编号是辨别餐饮实体的唯一标识,数据类型为INT型,是数据库自增的。其余的属性是餐饮的通用属性。餐饮信息的实体对象如图33所示。餐饮信息市场价有无特价上传时间餐饮名称餐饮编号类型编号生产地会员价图片描述图片餐饮型号图33餐饮实体图订餐系统中各个实体对象之间存在着关系,将实体间的关系表示为订餐系统的系统ER图。如图34所示。餐饮选择查看管理生成留言评论顾客公告管理订单管理员管理管理管理管理MNMMM111MNNN111M1M图34系统ER图343数据库逻辑结构设计根据对网上订餐系统的分析设计如下数据表。每个表格对应数据库中每一张表的具体设计情况。(1)管理员信息信息表管理员信息表主要存储管理员的基本信息,包括管理员ID,管理员级别,登录名,密码等信息。其表结构如表31所示。表31ADMIN管理员信息表列名数据类型长度是否空默认值描述IDINT4否自动增长1管理员ID号,主键ADMINTYPEINT4否管理员级别编号ADMINNAMECHAR12否管理员名称LOGINNAMECHAR12否登录名LOGINPWDINT4否登录密码(2)会员信息表会员信息表主要存储会员的基本信息,包括会员ID,姓名,用户名,密码,会员级别,所在地址,登陆次数,联系电话等信息。其表结构如表32所示。表32MEMBER会员信息表列名数据类型长度是否空默认值描述IDINT4否自动增长1会员ID号,主键LOGINNAMECHAR12否用户名MEMBERNAMECHAR20否真实姓名LOGINPWDCHAR12否登录密码MEMBERLEVELINT4否会员级别ADDRESSVARCHAR100否所在地址ZIPCHAR10否所在地邮政编码LOGINTIMESINT4是登录次数PHONECHAR15否联系电话EMAILVARCHAR100否电子邮箱REGDATEDATETIME是注册时间LASTDATEDATETIME是上次登录时间(3)会员级别表会员级别表主要存储会员级别信息,包括ID,会员级别名,折扣信息。其表结构如表33所示。表33MEMBERLEVEL会员级别表列名数据类型长度是否空默认值描述IDINT4否自动增长1ID号,主键LEVELNAMECHAR20否会员级别名FAVOURABLEINT4是折扣(4)餐饮类型表餐饮类型表主要存储餐饮类别基本信息,包括餐饮类别ID,餐饮类别名,类别描述。其表结构如表34所示。表34FOODTYPE餐饮类型表列名数据类型长度是否空默认值描述IDINT4否自动增长1类别ID号,主键CATENAMECHAR40否餐饮类别名CATEDESCTEXT是类别描述(5)餐饮信息表餐饮信息表主要存储餐饮的基本信息,包括餐饮ID,餐饮类别号,市场价,会员价,餐饮型号,图片,生产地等信息。其表结构如表35所示。表35FOODINFO餐饮信息表列名数据类型长度是否空默认值描述IDINT4否自动增长1餐饮ID号,主键FOODNAMECHAR40否餐饮名称FOODTYPEINT4否餐饮类别号PRICEDECIMAL8,2否市场价SPRICEDECIMAL8,2否会员价FOODMODELCHAR40否餐饮型号PICTUREVARCHAR100否图片MERDESCTEXT否餐饮描述FOODPLACECHAR60是生产地UPDATEDATETIME是上传时间SPECIALINT4是有无特价(6)订单信息表订单信息表主要存储订单那的基本信息,包括订单ID,会员编号,购餐车号,订单编号,下单日期,订单状态。其表结构如表36所示。表36ORDERS订单信息表列名数据类型长度是否空默认值描述IDINT4否自动增长1订单ID号,主键MEMBERINT4否会员编号CARTINT4否购餐车号ORDERNOCHAR20否订单编号ORDERDATEDATETIME否下单日期ORDERSTATUSINT4否订单状态(7)购餐车信息表购餐车信息表主要存储购餐车的基本信息,包括购餐车ID,会员编号,购买金额,购餐车状态等信息。其表结构如表37所示。表37CART购餐车信息表列名数据类型长度是否空默认值描述IDINT4否自动增长1ID号,主键MEMBERINT4否会员编号MONEYDECIMAL9,2否购买金额CARTSTATUSINT4否购餐车状态(8)餐饮订购细则表餐饮订购细则表主要存储餐饮订购细则信息,包括ID,购餐车号,餐饮编号,数量,单价,金额等信息。其表结构如表38所示。表38FOODDETAIL餐饮订购细则表列名数据类型长度是否空默认值描述IDINT4否自动增长1ID号,主键CARTINT4否购餐车号FOODINFOINT4否餐饮编号NUMBERINT4否数量PRICEDECIMAL8,2否000单价MONEYDECIMAL9,2否000金额(9)留言评价表留言评价表主要存储留言评价的基本信息,包括留言ID,会员编号,管理员号,标题,留言内容,留言时间,回复内容等信息。其表结构如表39所示。表39MESSAGES留言评价表列名数据类型长度是否空默认值描述IDINT4否自动增长1ID号,主键MEMBERINT4否会员编号ADMININT4否管理员号TITLECHAR60否标题CONTENTTEXT3000否留言内容LEAVEDATEDATETIME否留言时间ANSWERCONTENTTEXT否回复内容ANSWERDATEDATETIME否回复时间(10)公告信息表公告信息表主要存储公告信息的基本信息,包括公告信息的ID,标题内容,发布时间等信息。其表结构如表310所示表310NOTICE公告信息表列名数据类型长度是否空默认值描述IDINT4否自动增长1ID号,主键TITLECHAR60否公告标题CONTENTTEXT3000否公告内容INTIMEDATETIME否发布时间4订餐系统总体设计41系统的分层设计与实现分层实现系统设计已经成为目前软件体系架构设计中比较流行的设计方式,分层式结构也是最重要的一种结构。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。例如UI人员只需考虑用户界面的体验与操作,领域的设计人员可以仅关注业务逻辑的设计,而数据库设计人员也不必为繁琐的用户交互而头疼了。每个开发人员的任务得到了确认,开发进度就可以迅速的提高。本系统也采用分层式结构,整个系统分为用户表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)411表现层(UI)表现层位于最外层(最上层),用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。本系统中的用户表现层由STRUTS和JSP页面实现,具体页面定义如图41前台表示层定义和图42后台表示层定义所示前台首页DEFAULTJSP留言WORDJSP生成订单SUBMITORDERJSP餐饮搜索SEARCHJSP用户登录REGLOGINJSP订单查询ORDERJSP餐饮信息MERINFO,JSP购物车CARTJSP填写订单CHECKORDERJSP信息修改MODIREGJSP添加留言LEAVEWORDJSP用户信息MEMBERINFOJSP登录判断DSFAULTJSP用户注册REGJSP公告NOTICEJSP订单信息显示ORDERINFOJSP清空购物车CARTJSP修改数量CARTJSP留言显示WORDINFOJSP浏览公告SHOWNOTICEJSP登录判断DSFAULTJSP图41前台表示层定义后台的用户是管理员,表示层的JSP页面都放在项目WEBROOT下的ADMIN文件夹下。后台登陆ADMINLOGINJSP公告管理ADMINNOTICEJSP搜索餐饮信息SEARMERJSP订单管理ADMINORDERJSP会员管理ADMINMEMBERJSP判断是否非法用户ISLOGINEDJSP后台导航ADMINMENUJSP餐饮信息ADMINMERJSP新增餐饮信息ADDMERJSP修改订单MODIORDERJSP添加公告ADDNOTICEWORDJSP会员信息修改MEMBERINFOJSP管理员管理ADMINUSERJSP删除餐饮信息MODMER,JSP修改餐饮信息MODMERJSP显示公告SHOWNOTICE,JSP添加管理员ADMINADDJSP详细订单ORDERINFOJSP留言信息WORDIN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论