您好,欢迎来到华佗养生网。
搜索
您的当前位置:首页智能网上订餐系统论文(总)

智能网上订餐系统论文(总)

来源:华佗养生网


摘 要

系统是基于MVC三层模式,利用JSP+JavaBean+SQL Server2008开发系统,实现了应用程序逻辑和页面显示分离。

论文所实现的网上订餐管理系统的设计与实现从符合操作简便、界面友好、灵活、安全的要求出发,完成网上订餐管理系统的设计与实现的全过程。该系统试运行良好,可提供科学可靠的管理功能,系统前台能实现用户留言、BBS公告、用户订餐、菜品查询等功能,系统后台能实现用户管理、销售统计、订单管理、菜品管理留言板管理等功能。系统后台能及时对前台的各项功能模块进行统一管理和做出及时且正确的决策,达到了预期的目标。

关键词:网上订餐管理系统;JSP;JavaBean;SQL Sever2008

ABSTRACT

Paper briefly describes the online ordering system design and implementation of management development background, the main technology and business processes, market demand for the system analysis, functional description, database design, detailed description of the whole system design and its development process. Full accordance with the software development life cycle, is divided into the feasibility study, requirement analysis, design, detailed design stage, the application data flow diagram, ER diagram, database tables and other tools to clear the display of the design process. Three-tier system is based on MVC pattern, using JSP + JavaBean + SQL Server2008 development system to achieve the application logic and page display separation.

Online Ordering achieved paper management system design and implementation from the simple, user friendly, flexible, safety requirements, the completion of online ordering management system design and implementation of the entire process. A good test run of the system, providing scientific and reliable management functions, the system front to achieve the user a message, online chat, user ordering, dishes query and other functions, the system can realize the background user management, sales statistics, order management, dishes Management message board Management. System back in time on the front of the function modules of unified management and to make timely and accurate decision-making, to achieve the desired objectives.

Keywords: Online Ordering System, JSP, JavaBean, SQL sever2008

目 录

摘 要 ....................................................... I ABSTRACT .................................................... II 目 录 ..................................................... III 第1章 概 述 ............................................... 1

1.1课题的背景及意义 .................................................................................................... 1 1.2课题分析 .................................................................................................................... 1 1.3国内外发展状况 ........................................................................................................ 2 1.3.1国内方面 ............................................................................................................ 2 1.3.2国外方面 ............................................................................................................ 2

第2章 系统实现主要技术 ..................................... 3

2.1技术方案选取 ............................................................................................................ 3 2.1.1开发语言 ............................................................................................................ 3 2.1.2开发模式选择 .................................................................................................... 4 2.2相关语言及开发工具介绍 ........................................................................................ 4 2.2.1 JSP技术简介 ..................................................................................................... 4 2.2.2 MyEclipse简介 ................................................................................................. 5 2.2.3 Tomcat简介 ...................................................................................................... 6 2.2.4 Microsoft SQL Server 2008简介 ................................................................ 6

第3章 系统概述 ............................................. 8

3.1运行环境 .................................................................................................................... 8 3.1.1软件运行环境 .................................................................................................... 8 3.2系统的可行性研究 .................................................................................................... 8 3.2.1技术可行性 ........................................................................................................ 8 3.2.2社会可行性 ........................................................................................................ 8 3.2.3经济可行性 ........................................................................................................ 9 3.3系统需求分析 ............................................................................................................ 9 3.3.1用户需求分析 .................................................................................................... 9 3.3.2性能需求分析 .................................................................................................. 10

3.3.3产品质量需求分析 .......................................................................................... 10 3.3.4系统设计目标分析 .......................................................................................... 10 3.4系统体系结构分析 ...................................................................................................11 3.4.1 B/S结构与C/S结构 ........................................................................................11 3.4.2 B/S与C/S的优越性 .......................................................................................11

第4章 系统总体设计 ........................................ 14

4.1系统设计 .................................................................................................................. 14 4.1.1逻辑结构分析 .................................................................................................. 14 4.1.2功能模块划分 .................................................................................................. 14 4.1.3系统流程概述 .................................................................................................. 15 4.1.4数据流图分析 .................................................................................................. 17 4.1.5系统用例 .......................................................................................................... 18 4.2数据库设计 .............................................................................................................. 19 4.2.1数据库的需求分析 .......................................................................................... 19 4.2.2数据库表设计 .................................................................................................. 20 4.2.3 E-R模型 .......................................................................................................... 22 4.3 MVC模式 .................................................................................................................. 25 4.3.1视图层 .............................................................................................................. 25 4.3.2模型层 .............................................................................................................. 26 4.3.3控制层 .............................................................................................................. 26

第5章 系统详细设计与实现 .................................. 28

5.1前台开发 .................................................................................................................. 28 5.1.1首页设计 .......................................................................................................... 28 5.1.2用户登录 .......................................................................................................... 28 5.1.3用户注册 .......................................................................................................... 28 5.1.4用户订餐 .......................................................................................................... 29 5.1.5购物车 .............................................................................................................. 29 5.1.6订单 .................................................................................................................. 29 5.1.7在线调查 .......................................................................................................... 29 5.1.8在线留言 .......................................................................................................... 30 5.2后台开发 .................................................................................................................. 30 5.2.1管理员登录 ...................................................................................................... 30

5.2.2管理员功能 ...................................................................................................... 30 5.2.3商品显示 .......................................................................................................... 30 5.2.4添加商品 .......................................................................................................... 31 5.2.5投票管理 .......................................................................................................... 32 5.2.6管理用户 .......................................................................................................... 33 5.2.7订单管理 .......................................................................................................... 33 5.3部分核心代码 ........................................................................................................... 33 5.3.1 乱码处理方法 ................................................................................................. 33 5.3.2 时间格式处理方法 ......................................................................................... 34 5.3.3 数据库配置信息 ............................................................................................. 34 5.3.4购物车 .............................................................................................................. 35 5.3.5分页 .................................................................................................................. 36

第6章 系统测试与维护 ...................................... 38

6.1系统测试 .................................................................................................................. 38 6.1.1 系统测试的目的 ............................................................................................. 38 6.1.2 系统测试的方法 ............................................................................................. 38 6.1.3 网上订餐管理系统的测试 ............................................................................. 38 6.2系统维护 .................................................................................................................. 39

结 论 ...................................................... 40 参考文献 .................................................... 41 致 谢 ...................................................... 42

应用系统开发实践(论文) 第1页 1 概述

1.1课题的背景及意义

随着Internet的普及,越来越多的企业建立了自己的WWW网站,企业通过网站可以展示产品,发布最新动态信息,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。

其中网上订餐系统是电子商务网站的一种,随着信息化时代的到来,人们对生活质量的追求不断提高,由于人们工作,学习的关系,常常无法正常吃饭,随着网络的普及,网上订餐业务在中国开始盛行,人们也通过网络订餐的方式获得自己需要的食物。这样既节省了时间,也可以为广大用户提供更多的口味。

该系统使用JSP(Java语言)和SQL Server2008数据库开发, 实现了网上订餐系统的动态管理,使得网上订餐的管理更加及时、高效,提高了工作效率。该管理系统具有一般网上订餐系统的功能,从大的方面来讲主要包括餐饮管理,预定管理,用户管理等几个大的功能模块。

系统基于B/S(Browser/Server,浏览器/客户端)模式实现,在 Myeclipse8.5平台开发实现,主要实现对网上订餐的使用、需求、以及用户订餐的动态管理等。随着Internet/Intranet技术的兴起,将原本在单机或本地局域网上运行的数据库系统移植到因特网中,即开发基于B/S模式的新一代MIS(Management Information System,管理信息系统)系统,正成为技术发展的趋势。为了保证系统性能的高效性、可扩展性,以及达到数据共享和网络化管理的目的,本系统采用B/S体系结构进行设计开发。

1.2课题分析

该系统分为前台和后台两个部分,前台部分主要是浏览者和普通用户进行资讯的浏览,以及订餐,订座管理等,主要是面向用户的。而后台主要是管理人员对前台数据的维护和设置,主要是面向管理人员的。网上订餐系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。该系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。

对于本系统的不同使用者,其功能与业务逻辑是不尽相同的。对于普通用户而言,系统主要像用户展示一个美观的界面,用户在可以浏览各类资讯,查询餐饮信息,订餐,订座等。而管理员则需要在后台维护这些数据。本系统的主要功能应是用户的订餐了,用户可以查询菜品信息,当发现自己满意的以后,可以将这些菜品添加到自己的购物车,此时用户虽然选择了要预定的商品,但是还不具备法律效用,当用户通过

1

应用系统开发实践(论文) 第2页 一定方式(此方式不属编程范围)得到预定许可后,管理员在后台可以审核是否批准该用户的订餐请求,当管理员同意了该用户的订餐请求,即可将该用户所预定的发送给客户,此时客户在客户端可以看到自己购物车的状态(此时是已经通过审核),如果管理员没有批准或没有处理等,该客户都可以在前台看见相关信息。

1.3国内外发展状况

1.3.1国内方面

从国内研究现状来看,在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。因此,网上订餐系统应充分依托校园网和公司集中区域,实现订餐信息的集中管理、分散操作、信息共享,使传统的订餐朝数字化、智能化、综合化的方向发展,并为进一步实现完善的网上订餐打下良好的基础,从技术角度,也会不断更新,优化出适合网上订餐系统的框架,以便后续开发。 1.3.2国外方面

对比于我国现在使用的订餐方式还停留在电话订餐的层面上,不容置疑,电话订餐方便,随时打一个电话就可以预定餐品。但是这种方式也存在着一些问题,这些问题或多或少的影响着饭店的运营,因此,进行网上订餐更是新型订餐方法,而在国外人们通过上网,对餐品进行预订的现象比比皆是,这样不仅节约了时间,也为饭店的订餐管理工作提供了方便。

在国外,网上订餐往往是通过网络开设一家“网上餐饮超市”,再引入专业物流配送公司,为传统供应商提供广泛的配送服务,消费者只要点中网上美食店提供的任一菜点,由配送公司专门配送,但这种模式不仅需要配送公司有强大的实力,同时也要有广泛的客户群支持,进而网上订餐系统得到广泛应用,并且得到了普遍认可。

2

应用系统开发实践(论文) 第3页 2 系统实现主要技术

2.1技术方案选取

系统技术方案选取主要有:开发语言、开发模式选择。 2.1.1开发语言

随着互联网技术的不断发展,基于浏览器/服务器(Browser/Server 简称B/S)体系结构的应用程序得到了空前广泛的应用。但是服务器之间的通讯,尤其是在不同平台上运行的服务器之间的通讯仍然不是一件容易的事情。因为大多数Internet应用程序都是以数据库为中心的,方便的访问多种数据源的能力也比以往任何时候都更加重要。

JSP无疑可以轻松地实现这类功能,JSP技术是一种服务器端的HTML页面中嵌入JAVA代码的脚本语言,它比一般脚本语言的执行速度更快,由于JSP是基于JAVA语言的,所以它可以运行在UNIX/LINUX和WINDOWS平台上,是一种难得的动态网页开发语言。

在动态内容的解决问题中,还存在其他的解决方法,但是开发人员要掌握这些技术很难。例如,Java Servlets这样的技术就可以使得用Java语言编写交互式的应用程序的服务器端的代码变得更加简单。Java Servlets就是一个基于Java技术的运行在服务器端的程序(与Applet不同,后者运行在浏览器端)。开发人员编写出Servlet程序,用来接收来自Web浏览器的HTTP请求,动态地生成响应,然后发送包含HTML或XML文档到浏览器。

但是使用这种方法,整个网页必须都在Java Servlet中制作。如果开发人员或者Web管理人员想要调整页面的显示,就不得不从新编辑并编译Java Serve程序。采用这种方法,编写带有动态内容的页面需要有很熟练的应用程序开发技巧和经验。很显然,一个简单的创建动态页面的解决方案要能解决以下的问题:

1. 能够在任何Web或应用程序服务器上运行 2. 将应用程序逻辑和页面显示分离 3. 能够快速地开发和测试

4. 简化开发基于Web的交互式应用程序的过程

Java Server Pages (JSP)满足这些要求,它整合了存在的Java编程环境提供支持的技术和工具,产生了一种新的、开发基于Web应用程序的方法,这个方法给予使用基于组件应用的逻辑页面的设计者提供了强大的功能。

3

应用系统开发实践(论文) 第4页 2.1.2开发模式选择

JSP有两中开发模式JSP+JavaBean和JSP+Servlet+JavaBean[1],在模式一中,JSP页面独自响应请求并将处理结果返回客户。所有的数据通过Bean来处理JSP实现页面的表现。模式一技术实现了页面的表现和页面的商业逻辑相分离。大量使用模式一形式,常常会导致页面被嵌入大量的脚本语言或JAVA代码。当需要处理的商业逻辑很复杂时,这种情况会变得非常糟糕。大量的代码会使整个页面变得常复杂。对于前端界面设计人员来说,这简直不可想象。这种情况在大项目中最为常见,这也造成了代码的开发和维护出现困难,造成了不必要的资源浪费,在任何项目中,这样的模式总会导致多多少少的定义不清的响应和项目管理的困难。

综上所述,模式一不能满足大型项目的需要,但是可以较好的满足小型应用,在简单的应用中可以考虑模式一。

模式二JSP+Servlet+JavaBean中 ,Servlets技术是一种采用JAVA技术来实现CGI功能的一种技术。Servlets技术是运行在WEB服务器上,用来生成WEB页面。Servlets技术非常实用于服务器端的处理和编程,并且Servlet会长期驻留在他们所处的位置。 但是在实际的项目开发过程中,页面设计者可以方便地使用普通HTML工具来开发JSP页面,Servlet却更适合于后端开发者使用,开发Servlet需要的是JAVA集成开发环境,也就是说Servlet技术更需要编程人员。

模式二技术结合了JSP和Servlet技术充分体现了两者的技术优点。在此模式中通过JSP来表现页面。通过Servlet来完成大量的事务处理。 Servlet充当一个控制者的角色,并负责向客户发送请求。Servlet创建JSP所需要的Bean和对象,然后根据用户的请求行为,决定将哪个JSP页面发送给客户。 从开发的观点,模式二具有更清晰的页面表现,清楚的开发者角色划分,可以充分利用开发小组的界面设计人员,这些优势在大型项目开发中表现的尤为突出,使用这一模式,可以充分发挥每个开发者各自的特长,界面设计人员可以充分发挥自己的表现力,设计出优美的界面表现形式,设计人员可以充分发挥自己的商务处理思维,来实现项目中的业务处理。在大型项目中,模式二更被采用。

但是,本系统开发只是一个小型的JSP应用,同时由于Servlet难于掌握,所以在本课题中采用了模式一开发,既JSP+JavaBean。

2.2相关语言及开发工具介绍

2.2.1 JSP技术简介

在开发JSP规范的过程中,Sun 公司与许许多多主要的Web服务器、应用服务器和开发工具供应商,还有各种各样富有经验的开发团体进行合作。最后找到了一种平衡了应用和页面开发的具有可移植性和易用性的开发方法,JSP技术特征在多个方面

4

应用系统开发实践(论文) 第5页 加速了动态Web页面的开发:

1. 将内容的生成和显示进行分离

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面[2]。使用JSP标识或者小脚本来生成页面上的动态内容,这些内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格。生成内容的逻辑部分被封装在JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在Beans中,那么其他人,如Web管理人员和页面设计者,在编辑和使用JSP页面的时候,将不会影响到内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成客户端请求的内容,例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者其他文件,并且将结果以HTML(或者XML)页面的形式发送回浏览器。这将有助于作者保护自己的代码,并且又保证任何基于HTML的Web浏览器的完全可用性.

2. 强调可重用的组件 绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeans TM组件)来执行应用程序所要求的更为复杂的处理问题。开发人员能够共享和交换执行普通操作的组件,或者发布这些组件使更多的使用者或者客户团体能够使用。

3. 采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的编程人员。Java Server Page技术封装了许多功能,这些功能是容易使用的、同时与JSP相关的XML标识中进行动态内容的生成时需要的。通过开发定制化标识库,JSP技术是可扩展的。今后,第三方开发人员和其他人员可以将常用的功能创建到自己的标识库。这使得Web页面开发人员能够象使用熟悉的工具一样来使用标识来执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以便使用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用开发。由于JSP页面的内置脚本语言是基于Java编程语言的,并且所有的JSP页面都能被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的厂家将对JSP的支持添加到他们的产品中,我们可以选择不同的服务器和工具,因为更改工具或服务器并不影响当前的应用。当与Java 2平台,企业版(J2EE)[6]和Enterprise JavaBean技术整合时,JSP页面提了供企业级的扩展性能,这对于在虚拟企业中部署基于Web的应用是必需的。 2.2.2 MyEclipse简介

Eclipse最初是IBM的一个软件产品[3],前期投入了4000万美金。2001年11月,

5

应用系统开发实践(论文) 第6页 IBM宣布将其捐给开放源码组织Eclipse.org。目前Eclipse的市场占有率已经超过了Borland公司的JBuilder,成为Java开发平台中的主流。

Eclipse的设计思想是:一切皆为插件。它自身的核心是非常小的,其它所有的功能都以插件的形式附加到该核心上。

Eclipse中三个最吸引人的地方:一是它创新性的图形API,即SWT/JFace,在此之前,我曾经用过Java 的AWT/SWING来开发Windows应用程序,AWT/SWING其界面客观地讲不够美观,而且界面响应速度比较慢;而SWT/JFace则大大改善了Java在这方面的能力。二是它的插件机制。三是利用它的插件机制开发的众多功能强大的插件。 MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE[4]集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSF、CSS、JavaScript、SQL、Hibernate。 2.2.3 Tomcat简介

大多数人都喜欢将Apache Tomcat当作JSP应用服务器使用。有人可能会说,它之所以受欢迎是因为这个服务器是免费和开放源代码的,但是真正的原因远不止这些。Apache Tomcat能够受欢迎,不仅是工作性能非常好,还有没有初始的开发成本开销等有力的竞争因素,但这不是决定因素。Tomcat 结构非常合理,更由于Tomcat 是Apache 组织的产品,这个组织有着雄厚的技术更新力量,并且Tomcat6.0 很好的支持了JSP2.0 规范,因此有着很好的发展前景。

Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司以及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总能在Tomcat中得到体现[5]。Tomcat被JavaWorld杂志的编辑选为2010年度最具创新的java产品,可见其在业界内的地位。

Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:也处理Html页面,但是与Apache相比,它的处理静态Html的能力就不如Apache。

JDK 是SUN 公司的JAVA应用程序和组件的开发环境,是编译、测试工具,也是提供JAVA程序的JAVA虚拟机平台,是调试和运行JSP 所不可缺少的工具。 2.2.4 Microsoft SQL Server 2008简介

SQL Server 2008是一个分布式的关系型数据库管理系统,具有客户/服务器体系结构。Microsoft SQL Server 2008是一个应用广泛的数据库管理系统,具有许多显著特点[6],例如,用户喜欢的易用性、适合分布式组织的可伸缩性、用于决策支持的

6

应用系统开发实践(论文) 第7页 数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性能价格比等。

SQL Server 2008系统中,数据库的管理采取了先进的动态管理机制,数据库的大小可以随着数据量的变化而缩小或者扩大。另外,用户数据都是非常重要的和保密的,这些数据存储在Microsoft SQL Server 2008系统中有绝对的安全性保障[7],有完善的用户帐户策略和许可机制,只有经过授权的用户才能访问系统,并且执行相应的操作和访问允许访问的数据。未经授权的用户既不能执行相应的操作,也不能访问数据库中的相应数据。

SQL Server 2008系统具有强大的网上功能,可以在Internet上发布数据库中的数据。在Microsoft SQL Server 2008系统中,允许用户简单的使用一些向导和工具把数据库的数据发布到网络上,并且可以根据需要来调度修改已经发布的数据。

7

应用系统开发实践(论文) 第8页 第3章 系统概述

3.1运行环境

3.1.1软件运行环境

操作系统:Windows 7操作系统

数据库:Microsoft SQL Server 2008 网络通信协议:TCP/IP 支持软件:tomcat,MyEclipse

3.2系统的可行性研究

可行性,是指在当前情况下,设计开发这个系统是否有必要,是否具备必要的条件,它不仅包括必要性,还包括合理性[8]。系统的可行性分析,是针对设计一个系统,它的设计是否存在内外部的必要条件,包括技术上、资金上、经济上、人力资源以及组织管理上的必要条件,同时还要分析在目前条件下是否有必要设计这样一个系统。

随着B2B(企业与企业之间的电子商务)的兴起,电子商务已经成为一个很热门的话题。而网上订餐作为B2C(企业与消费者之间的电子商务)的一种主要商务形式,也取得了巨大的成功。 3.2.1技术可行性

1. 硬件、软件

要求不高,目前市场上的一般计算机软硬件资源均能满足系统开发要求。其中运用的主要软件有 MyEclipse8.5 等,数据库采用Microsoft SQL Server 2008。

2. JSP技术

该技术功能强大,扩展性强,Sun 公司提供大量的第三方控件,并结合 css,JavaScript等脚本语言,以上技术足以完成本系统的开发和设计。

3. 维护操作

工作方便,后台操作快截明了,操作人员可以在短时间内完全掌握维护技术。本系统自主网上订餐管理,系统具有强大的商品管理、购物车、订单统计、会员管理等功能,同时拥有灵活多变的商品管理、新闻管理等功能,功能强劲的后台管理界面,通过IE浏览器即可管理整个网站。提供了促销广告和店标自定义功能,操作简单。 3.2.2社会可行性

1. 网络订餐将传统的商务流程电子化、数字化,一方面以电子流代替了实物流,

8

应用系统开发实践(论文) 第9页 可以大量减少人力、物力,降低了成本;另一方面突破了时间和空间的,使得交易活动可以在任何时间、任何地点进行,从而大大提高了效率。 2. 网络订餐所具有的开放性和全球性的特点,为企业创造了更多的贸易机会。 3. 网络订餐使餐饮业以较低的成本进入电子化市场,使得中小企业有可能拥有和

大企业一样的信息资源,提高了中小企业的竞争能力。 4. 网络订餐重新定义了传统的流通模式,减少了中间环节,使得生产者和消费者

的直接交易成为可能,从而在一定程度上改变了整个社会经济运行的方式。 5. 网络订餐一方面破除了时空的壁垒,另一方面又提供了丰富的信息资源,为各

种社会经济要素的重新组合提供了更多的可能,这将影响到社会的经济布局

和结构。

3.2.3经济可行性

1. 资金可得性

由于系统开发并不复杂,操作起来也比较简单,只需一些基本的编辑软件,另外具备网络中心的一些资源优势,因此开发费用较低。

2. 经济合理性

由于通过网络进行商务活动,信息成本低,足不出户,可节省交通费,且减少了中介费用,因此整个商务活动成本大大降低。

3.3系统需求分析

需求分析主要是了解用户的有哪些需求,只有了解了需求分析才能进行系统的开发,否则就会事倍功半,达不到我们预期的效果,因此需求分析是至关重要的[9],本系统主要是用户的购餐需求以及管理的需求。 3.3.1用户需求分析

作为一个网上订餐系统。当用户进入系统欢迎界面的时候应该能够浏览网上食品相关信息,其中包括食品的图片、价格等相关描述,并可以注册成普通会员。普通会员能够订餐、查询自己的购物车,给系统留言和参与网上调查投票。

1. 食品展示:用户可点击网站内的餐品展示列表查看餐品的简单信息。

2. 食品查找:用户若要查找购买某一餐品,可通过餐品查找进行搜索,方便用户

在多种不同种类的餐品中快速方便的查找到需要的食品。 3. 查看详细介绍:对相应食品的信息进行详细的说明,为用户进行选择提供相应

的信息。

4. 购物车:用户选定需要购买的餐品后添加到购物车中生成订单。

9

应用系统开发实践(论文) 第10页 3.3.2性能需求分析

该系统在性能功能上应达到如下需求: 1. 操作简单、界面友好:

2. 即时可见:对客户预定餐饮信息的处理将立即在主页的对应栏目显示出来,达

到“即时发布、即时见效”的功能; 3. 系统运行应该快速、稳定、高效和可靠;

4. 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。 3.3.3产品质量需求分析

表3.1 产品质量需求分析 主要质量属性 正确性 健壮性 可靠性 性能,效率 详细要求 按照需求正确执行任务,完成各个模块的相应要求。 具有较高的容错能力和恢复能力。 故障发生率每运行1000小时低于3次 软件的输出结果更新周期应该与系统的信息更新周期相同。在网络情况良好的情况下,3秒内可响应用户请求。 易用性 易理解性:软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。 安全性 防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性其数据应能集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也不应进行什么数据同步. 可扩展性 兼容性 可移植性 „„ 能方便的进行二次开发,满足对功能的扩充或提高并能提高相应的安全控制。 不易与其他软件起冲突。 可方便移植到其他系统环境中正常运行。 „„ 3.3.4系统设计目标分析

本系统设计的目标是实现一个功能较为强大的网络订餐系统,该系统能够实现用

户的注册,简便的商品查看,购物车式的商品选购,用户订单查询等功能,在系统的后台,管理员可以处理用户订单并配送获取,并可以对商品信息等实现集中管理。这是一个网上在线订餐系统(B2C)。

系统需要提供的主要功能如下:

1. 普通用户能浏览系统、给系统留言并能注册成会员

10

应用系统开发实践(论文) 第11页 2. 会员能网上订餐、给系统留言并能和参与网上调查投票 3. 管理员能对商品进行增删改查管理 4. 管理员能对各种商品进行销售统计 5. 管理员能管理(增删改查)普通会员 6. 管理员能对会员的订单进行管理

3.4系统体系结构分析

3.4.1 B/S结构与C/S结构

客户/服务器(CLIENT/SERVER)结构,是将一个系统分解为前台的客户应用程序和后台的服务器部分,通过网络连接应用程序和服务器。这种结构的核心是客户应用程序向服务器发送服务请求,服务器完成后端处理。服务器是一台管理数据资源并执行数据库引擎功能(加数据存储、操作和保护)的计算机,处理结构由服务器发回客户应用程序,由客户应用程序对处理结构进行显示。这种结构的优点是只有处理后的数据在网络中传递,大大减轻了网络的负担,而且由于通过服务器端统一管理数据,易于保证数据的一致性。

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3层结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构,.net也是在这样一种背景下被提出来的架构,JAVA技术已经是很成熟的应用了。 3.4.2 B/S与C/S的优越性

C/S(Client/Server,客户端/服务器)是建立在局域网的基础上的,B/S是建立在广域网的基础上的。传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件,没能提供用户真正期望的开放环境;B/S结构则不同,它的前端是以TCP/IP协议为基础的,企业内的WWW服务器可以接受安装有Web浏览程序的Internet终端的访问,作为最终用户,只要通过Web浏览器,各种处理任务都可以调用系统资源来完成,这样大大简化了客户端,减轻了系统维护与升级的成本和工作量,降低了用户的总体拥有成本。总的来说,两者有如下差别:

1. 硬件环境不同

C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。B/S 建立在广域网之上的, 不必是专门的网络硬件

11

应用系统开发实践(论文) 第12页 环境,例如电话上网, 租用设备, 信息自己管理, 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行。

2. 对安全要求不同

C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S 结构适宜, 可以通过B/S发布部分可公开信息。B/S 建立在广域网之上,对安全的控制能力相对弱,面向的是不可知的用户群。

3. 对程序架构不同

C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑。B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上。

4. 软件重用不同

C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好。B/S 对的多重结构,要求构件相对的功能。 能够相对较好的重用[10]。就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。

5. 系统维护不同

系统维护是软件生存周期中,开销大,相当重要C/S 程序由于整体性,必须整体考察,处理出现的问题以及系统升级难, 可能是再做一个全新的系统。B/S 构件组成方面构件个别的更换,实现系统的无缝升级。 系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。

6. 处理问题不同

C/S 程序可以处理用户面固定,并且在相同区域, 安全要求高的需求,与操作系统相关, 应该都是相同的系统。B/S 建立在广域网上, 面向不同的用户群,分散地域, 这是C/S无法作到的,与操作系统平台关系最小。

7. 用户接口不同

C/S 多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流, 并且大部分难度减低,降低开发成本。

8. 信息流不同 C/S 程序一般是典型的集权的机械式处理,交互性相对低。B/S 信息流向可变化。

9. 成本降低,选择更多

软件系统的改进和升级越来越频繁,B/S架构的产品明显体现的更方便的特性。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行,如果是异地只需要把服务器连接上网即可立即进行维护和升级,这对人力、时间、费用的节省是相当惊人的。传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,这么高的代价和低效率已经越来越不适应了。在JAVA这样的跨平台语言出现之后B/S架构更是

12

应用系统开发实践(论文) 第13页 飞快地普及起来了。

10. 面向电子商务时代的技术

将来所有的应用系统几乎都在互联网上运行,企业发展电子商务也是不可避免的,而B/S架构的软件则代表了将来的技术,只要连上互联网或内部广域网就可以与全球的客户相连,与各地的分支机构相连。

综上所述,可以看出B/S结构的众多优点,比其他结构的先进性,无论是办公自动化管理系统,人力资源管理系统,客户关系管理系统,ERP等等,发展的趋势是不断融合,结合当今这些方面的发展,我们可以得出这样的结论:采用统一的B/S结构开发的产品无论是现在还是将来都是最好的选择,而在今后的实际工作开发中,则应该首选B/S结构。

13

应用系统开发实践(论文) 第14页 4 系统总体设计

系统总体设计主要包括:系统设计、数据库设计、MVC模式。具体设计如下:

4.1系统设计

系统设计主要包括:逻辑结构分析、功能模块划分、系统流程概述、数据流图分析、系统用例。具体设计如下: 4.1.1逻辑结构分析

Web站点系统的体系结构大致可分为三层逻辑结构,即浏览器—Web服务器—数据库服务器(Browse—Web Server—DB Server)。其中Web服务器又被细分为前端和后端两部分。三层结构将用户界面、应用逻辑和数据管理三者之间彻底分离,彼此,各司其职。用户端通过URL与Web服务器建立网络连接,将Web服务器上的信息下载到客户端浏览器上进行访问。而应用逻辑层则通过JDBC和数据库服务器进行数据交换。如下图:

Web浏览器JSP JDBC服务器 驱动器数据库服务器

图4.1 逻辑结构图

同时为了保证系统的安全性和网络的访问性能,又考虑将应用逻辑细分为两层:一层为:没有注册的用户的数据流只能查看部分页面及功能;另一层为:注册后的会员和系统管理员的数据流不但可以到达前端的Web服务器,而且还可以进行后端的数据库操作。 4.1.2功能模块划分

本系统设计的目标是实现一个功能较为强大的网络订餐系统,该系统能够实现用户的注册,简便的商品查看,购物车式的商品选购,用户订单查询等功能,在系统的后台,管理员可以处理用户订单并配送获取,并可以对商品信息等实现集中管理。这是一个网上在线订餐系统(B2C)。

系统需要提供的主要功能如下:

14

应用系统开发实践(论文) 第15页 1. 普通用户能浏览系统、给系统留言并能注册成会员 2. 会员能网上订餐、给系统留言并能参与网上调查投票 3. 管理员能对商品进行增删改查管理 4. 管理员能对各种商品进行销售统计 5. 管理员能管理(增删改查)普通会员 6. 管理员能对会员的订单进行管理

网上订餐管理系统的设计与实现前台模块后台模块注册登录菜品查询用户订餐在线调查用户留言菜品管理订单管理销售统计用户管理留言管理

图4.2 系统模块总图

4.1.3系统流程概述

用户在浏览网站时首先看到的就是网站首页。在首页用户可以快速浏览精品餐馆和最新的特色快餐,首页聚集了大量的信息,除了商品以外还有站内公告信息和站内新闻信息。用户如果想要订餐时或者直接通过电话或者直接填写收货人的信息或者注册成为会员,在用户查看完商品的信息后,可以把自己想要购买的商品放入购物车当中,也可以随时修改,清空购物车里的商品,如果用户对购物车里的商品都很满意,就可以直接下订单。这时相关的程序模块会将用户所提交的所有信息都记录在数据库里以便系统的管理人员可以核对信息并准备餐品,专门送餐人员给用户配送餐品并收取现金,此时整个订餐的过程便结束。在网上订餐管理系统的后台管理方面还需要添加、修改、删除商品,同时用户信息的管理,商城公告的设置,订单的处理等都需要系统的管理人员来操作。

15

应用系统开发实践(论文) 第16页 在线论坛客户登录系统在线调查获得购物车浏览食品 N 在线订购生成订单Y结束

4.3 前台业务流程图

管理员登录系统后台管理结束16

图菜品管理 订单管理会员管理留言管理清空购物车继续购物 第17页 应用系统开发实践(论文) 生成订单退出图4.4 后台流程图 图4.5 系统业务流程图

4.1.4数据流图分析

该系统数据流程比较简单,管理员可以添加餐饮信息(包括菜品名等信息),资讯信息等,然而这些信息用户是可以浏览的,但是用户没有权限对这些信息进行修改,这些信息对于用户而言是单向的。对于预定信息,管理员可以查看订餐信息,销售的统计,用户的添加删除,以及订单的查看、配送、删除。

数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。系统的数据流图如下所示:

17 应用系统开发实践(论文) 第18页 登录用户信息聊天信息浏览餐品餐品信息在线聊天详情餐品信息餐品信息餐品表管理员管理员信息管理员信息登录餐品管理餐品信息订购用户信息用户用户表留言信息用户信息注册留言板留言信息留言信息购买餐品信息留言表购物表用户信息网站信息留言信息浏览网站留言板购物车购买餐品信息购买餐品信息购买餐品信息管理员信息管理员信息管理员信息订单管理生成订单购买餐品信息清空购物车继续购物订单表订单信息订单信息用户管理管理员信息用户表 图4.6 数据流图

4.1.5系统用例

用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模,用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。主要的用例图如下:

18

应用系统开发实践(论文) 第19页 登录系统论坛管理订单管理管理员销售统计用户管理

图4.7 管理员用例图

登录系统注册下订单会员在线留言在线调查

图4.8 会员用例图

4.2数据库设计

数据库的需求分析主要是数据库和数据库表的建立,该系统中需要存储那些数据,都是由这个设计中实现,它们的详细实现过程如下: 4.2.1数据库的需求分析

WEB应用跟踪和管理用户的订单,行为主要有两种措施:一种是使用Session或

19

应用系统开发实践(论文) 第20页 Cookies保存用户活跃期间的信息,但是这些信息在会话结束后将不再存在。对于那些需要持久保存的信息,以及数据量比较大的数据必须通过数据库来进行存储.数据库适合存储那些需要持久保存的信息,并且提供很好的方式进行查询,插入,修改和删除。

SQL Server 2008系统具有强大的网上功能,可以在Internet上发布数据库中的数据[11]。在Microsoft SQL Server 2008系统中,允许用户简单的使用一些向导和工具把数据库的数据发布到网络上,并且可以根据需要来调度修改已经发布的数据。因此本系统选择SQL Server 2008作为数据库。 4.2.2数据库表设计

系统关键数据表如下: 1. 菜品信息表(foodInfo):

菜品信息表主要描述菜品信息。如:菜品ID号(foodId),此ID号为系统自动生成;菜品名称(foodName);菜品价格(foodPrice);菜品原料(remark);图片信息(foodImages);菜品介绍(description);菜品库存(Storage);菜品售出数量(Sold)。

表4.1 菜品信息表 列名 foodId foodName remark foodPrice foodImages description Storage Sold 数据类型 int varchar varchar float varchar varchar int int 长度 4 50 50 50 50 500 4 4 主键 是 否 否 否 否 否 否 否 说明 菜品Id 菜品名称 菜品原料 菜品价格 菜品图片 菜品描述 菜品储存量 菜品销售量 2. 用户表(userInfo)

用户登录是需要用户名和密码,所以用户数据表中必须包含用户名(userName)、密码(userPwd)两个信息,还有些其他的用户信息,比如userType指的是用户权限(会员:userType=1、管理员:userType=2)。

表4.2 用户表 列名 userId userName userPwd 数据类型 int varchar varchar 20

长度 4 50 50 主键 是 否 否 说明 用户Id 用户姓名 用户密码 应用系统开发实践(论文) 第21页 userType int 4 否 用户类型

3. 订单表(foodOrderInfo)

订单表有以下描述信息。订单ID(orderId),订购人姓名(customerName),地址(address),邮编(zipCode),固定电话(telePhone),移动电话(movPhone),备注信息(notice),总价格(totalPrice),是否送出(没送出:isGive=0、送出:isGive=1)。

表4.3 订单表 列名 orderId customerName address zipCode telePhone notice totalPrice isGive 数据类型 int varchar varchar varchar varchar text numeric int 长度 4 50 50 20 20 16 9 4 主键 是 否 否 否 否 否 否 否 说明 订单Id 顾客姓名 顾客地址 邮编 电话 描述 订单总价 是否派送

4. 菜单表(orderInfo) 菜单表有以下描述信息。订单ID(orderId),菜品ID(foodId),用户ID(userId),菜品数量(foodNum),菜品价格(foodValue),菜品总价格(totalValue),订单时间(orderDate)。

表4.4 菜单表 列名 orderId foodId userId foodNum foodValue totalValue orderDate 数据类型 int int int int float float datetime 长度 50 50 50 50 50 50 50 主键 是 是 否 否 否 否 否 说明 订单Id 菜品Id 用户Id 菜品数量 菜品价格 订单总价 订单日期

5. 留言表(liuyan_temp) 留言表有以下描述信息。留言者ID(id),留言者姓名(name),留言内容(context)。

21

应用系统开发实践(论文) 第22页 表4.5 留言表 列名 id name context sj 数据类型 int varchar varchar varchar 长度 4 20 200 50 主键 是 否 否 否 说明 留言者Id 留言者姓名 留言内容 留言时间 4.2.3 E-R模型

ER模型[Entity Relationship Model]是一种叫做实体联系模型的简称,它是以图形的方式表现的,又被称作实体联系图,ER模型是人们描述数据及其联系的概念数据模型,是数据库应用系统设计人员和普通非计算机专业用户进行数据建模和沟通与交流的有力工具,使用起来直观易懂,简单易行,ER模型是一种用图形表示数据及其联系的方法,所使用的图形构件(元件)包括矩形、菱形、椭圆形和连接线。主要的ER模型图如下:

1. 管理员与管理订单的ER模型

邮编地址用户名id订单N管理1id管理员电固定话电移动话总价描述类型用户名密码

图4.9 管理员与管理订单ER图

2. 管理员与会员的ER模型

22

应用系统开发实践(论文) 第23页

用户名密码类型id会员N管理1id管理员类型用户名密码

图4.10 管理员与会员的ER图

3. 管理员与菜品的ER模型

价格菜品原料菜品名称id菜品N管理1id管理员图片量存储销售量描述类型用户名23

密码 应用系统开发实践(论文) 第24页 图4.11 管理员与菜品ER图

4. 注册用户自己与自己的订单的ER模型

用户名密码类型id会员1发布1id订单时间图4.12 会员与订单ER图

购物车

5. 会员、订单、管理员ER模型

24

应用系统开发实践(论文) 第25页 密码用户名类型id会员id用户名1描述发布移动邮编地址会员名id总价订单4.3 MVC模式

MVC英文即Model-View-Controller [12],即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层[13]。 4.3.1视图层

视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示

25

固定电话电话1N1包管1理密码管理员类型id含菜品名原料N菜品价格图片销售量存储量图4.13 会员、订单、管理员ER图

描述 应用系统开发实践(论文) 第26页 给用户,以及将用户界面的输入数据和请求传递给控制和模型。

订餐系统的View层主要把Controller层的处理结果显示在客户端的浏览器上。这层用到了JSP,还用到了少许JavaScript技术。其中系统中的显示页面包括前台的登录页面,菜品显示页面,购物车页面,订餐单页面;以及后台的管理员的各个控制页面。 4.3.2模型层

模型(Model):就是业务流程/状态的处理以及业务规则的制定[11]。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法你能做这些。这点对编程的开发人员非常重要。

业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只在该模型中。

订餐系统中的模型层包括了对4个数据表的所有数据操作方法,包括了用户信息、食品信息、订单信息的数据处理,封装在了对应的JAVA类中。下面的控制层中直接调用模型层相对应的方法就可以实现对数据的操作。 4.3.3控制层

控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。

模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到

26

应用系统开发实践(论文) 第27页 这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。

Servlet是一种扩展Web服务器功能的技术,而且由于它是用Java编写的,所以能够访问整个JavaAPI库,包括用于访问企业数据库的HIBERNATE API。Servlets用特定的Java解决方案替代了其它的Web服务器方编辑模式(如:CGI,ISAPI等),因而继承了Java的所有特性(跨平台、多线程、OO)。用来编写Servlets的Servlets API对于服务器环境和协议没有任何特殊的要求,所以Servlets具有很强的可移植性,也不象利用CGI程序等其他方式那样具有性能局限。Servlets业同样使用HTTP协议与客户端进行通信,Servlets最常用的子集是“Http Servlets”。 Java Servlets不是用户调用的应用程序,而是由实施该Servlet的Web应用程序中的Web容器根据客户端的HTTP请求来调用。当一个Servlet被调用时,Web容器通过接收Servlet的请求与Web服务器交互,并且把响应信息发送到Web服务器。

27

应用系统开发实践(论文) 第28页 5 系统详细设计与实现

5.1前台开发

前台开发主要是包括页面设计、用户注册与登录、展示模块、购物车的实现、订单查询实现、系统消息的发布,具体实现如下: 5.1.1首页设计

对于一个网络订餐系统,网站首页极为重要,首页设计的好坏将直接影响到顾客的购买欲望.在网络商城首页中,用户不但可以第一时间内掌握商城最新商品,推荐商品以及站内新闻等功能。

这个界面被分成了三个区域。分别是top.jsp、left.jsp、show.jsp。其中top.jsp是本系统的名称;left.jsp是系统登录及系统总体功能部分;show.jsp区域则是系统的主要功能所在,系统所有界面都在这个区域里显示。系统首先图如下:

图5.1 系统首页

5.1.2用户登录

主界面的左侧为用户登录区:登录/注册/重置模块,如果用户没有注册则需要进行注册,注册后方可登录系统。普通会员登录系统的时候需要输入用户名和密码,并选择登录类型为会用登录。登录成功则进入到系统订餐、网上调查、留言板功能区。要是管理员登录也要输入用户名、密码并选择登录类型为管理员登录。管理员登录成功跳到后台管理。注销则是用户登录后注销登录所有信息。

图5.2 用户登录界面

5.1.3用户注册

我们提醒您注意,您需要注册并登陆,才能享受我们的完整服务进行各项操作,否则您只有留言和浏览的权限。注册成为网上订餐管理系统的用户,是完全免费的。

用户注册是为系统安全性考虑,并且方便管理。当普通浏览者浏览菜品之后想订餐,则需要进行网上免费注册。注册信息需要填写用户名、真实姓名、密码、证件号、联系电话、邮箱和详细地址等信息,以方便对会员的管理。

图5.3 用户注册页面

28

应用系统开发实践(论文) 第29页 5.1.4用户订餐

用户登录过后便可以订餐,每个菜都有其详细介绍,点击订购,就把该菜放入购物车中,点击详情就可以查看菜的详情。

图5.4 用户订餐页面

5.1.5购物车

本系统所设计的购物车是基于MVC三层模式予以实现的。模型层用来封装后天业务层逻辑,即把数据库表(模型)封装在JavaBean中,一便在JSP页面中统一调用。控制层采用Servlet予以实现,主要负责请求的转发[14]。视图层用来显示购物车页面,实现与用户的交互

点击订购物品就会进入购物车中,购物车具有删除某种商品、清空购物车、继续购物、下订餐功能。在购物车中你可以清晰的查看自己购物情况及购买总价格。

图5.5 购物车界面

5.1.6订单

当订餐结束,选择购物车的结账,就可以跳转到订单界面。上面有订餐人的详细信息,生成订单。

本系统订单包括:订单人(必填),送货地址(必填)、邮政编码(必填)、联系电话(必填)、移动电话(必填)、订单附言。

图5.6 下订单界面

5.1.7在线调查

为了解网站会员的订餐需要,分析人们餐饮方面的偏好,特开设此在线调查版块,旨在通过对投票结果进行统计分析,更好指导订餐网站朝着尽量满足客户需求的方向发展。

图5.7 在线调查界面

29

应用系统开发实践(论文) 第30页 5.1.8在线留言

本系统开发了网上留言系统,目的在于为了方便用户对网上订餐管理系统进行评价、投诉、提出自己的意见以及用户之间相互交流,相互推荐。同时,系统管理员可以根据客户对系统提出的意见而进行改进。

图5.8 在线留言界面

5.2后台开发

5.2.1管理员登录

管理员登录在正确输入用户名和密码后,登录成功后会跳转至后台管理。重置则是清除用户的所有登录信息。

图5.9 管理员登录界面

5.2.2管理员功能

管理员是对系统进行统一管理的角色。本系统管理员的功能模块包括:商品管理:商品显示、增加商品;销售统计:各个商品销售统计;用户管理:新用户查看、添加、修改、删除;订单管理:对订单进行删除、派送。

图5.10 管理员功能界面

5.2.3商品显示

大家都知道,任何一网上订餐管理系统统计那种菜品受顾客欢迎,利润大就要对其销售量和原料价格和售价进行统计。本系统也是如此。

商品显示模块能显示系统里所有的商品并能对系统里的商品做统一管理,本系统商品显示模块功能包括商品更新、商品删除、商品库存等等功能。

30

应用系统开发实践(论文) 第31页

图5.11 商品显示界面

5.2.4添加商品

随着季节的变化、以及为了满足客户的需求,有时系统需要添加季节菜品和顾客提出来的要求的菜品。当菜品库存量为零的时候也需要添加菜品。添加菜品需要填写食品编号、食品名称、食品原料、食品价格、图片、食品描述、添加库存信息。

31

应用系统开发实践(论文) 第32页

图5.12 添加商品界面

5.2.5投票管理

系统管理员可以对在线调查模块进行设计和管理,包括添加和删除投票项目、统计每类餐品的得票数,从而了解哪种菜品更受顾客欢迎,让网站能够更好地服务消费者。

图5.13 销售统计界面

32

应用系统开发实践(论文) 第33页 5.2.6管理用户

为了便于管理系统用户,管理员能管理普通会员和管理员自己的信息,能够对普通会员进行更新、删除等操作。

图5.14 管理用户界面

5.2.7订单管理

订单管理是管理员对客户的订单进行统一管理:派送和删除。

图5.15 订单管理界面

5.3部分核心代码

5.3.1 乱码处理方法

从Web页面读取数据插入到数据库,如果不作则插入到数据库时都是乱码。处理

33

应用系统开发实践(论文) 第34页 乱码的实现方法如下[15]:

public String ex_chinese(String str) { if(str==null) { str =\"\" ; } else { try {

str = new String(str.getBytes(\"iso-8859-1\"),\"gb2312\") ; } catch (Exception ex) { } }

return str ; }

5.3.2 时间格式处理方法

对插入到数据库的时间要进行格式匹配[16] [17],匹配格式为:yyyy-MM-dd- HH:mm,比如说:2011-05-20- 16:22 public String gettime() {

String datestr = \"\" ; try {

java.text.DateFormat df = new java.text.SimpleDateFormat(\"yyyy-MM-dd- HH:mm\") ;

java.util.Date date = new java.util.Date() ; datestr = df.format(new java.util.Date()) ; } catch (Exception ex) { ex.printStackTrace(); }

return datestr ; }

5.3.3 数据库配置信息

数据库配置信息[18]:数据库名称:Restrant,用户名:sa,密码:111 driver=com.microsoft.jdbc.sqlserver.SQLServerDriver

url=jdbc:microsoft:sqlserver://localhost:1433;databasename=dcmanage username=sa password=111

34

应用系统开发实践(论文) 第35页 5.3.4购物车

public class ShopCart { private int totalCount; private Map map; public ShopCart() { totalCount=0;

map=new HashMap();

}

public void addFood(FoodInfo food) {

ShopCartItem item = (ShopCartItem)map.get(new Integer(food.getFoodId())); if(item == null) {

map.put(new Integer(food.getFoodId()), new ShopCartItem(food)); } else {

item.addFoodCount(); }

totalCount++; }

public void removeFood(int foodId) {

ShopCartItem item=(ShopCartItem)map.get(new Integer(foodId)); item.delFoodCount(); if(item.getCount()<=0) {

map.remove(new Integer(foodId)); }

totalCount--; }

public int getTotalCount() {

return totalCount; }

public float getTotalPrice() {

Collection col=map.values(); float totalPrice=0;

Iterator it=col.iterator(); while(it.hasNext()) {

ShopCartItem item=(ShopCartItem)it.next(); FoodInfo food=item.getFood();

totalPrice+=food.getFoodPrice()*item.getCount();

35

应用系统开发实践(论文) 第36页 }

return totalPrice; }

//获取购物车中所有商品集合 public Collection getAllFood() { return map.values(); }

public void clearCart() { map.clear(); totalCount=0; } } 5.3.5分页

public class ShowFood extends HttpServlet {

public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { FoodDao fooddao=new FoodDao(); ArrayList list=fooddao.findAllFoods(); //获取数据库中的总记录条数 int totalNum=list.size(); //每页显示的行数 int row=6; //当前页面 int pageId; //总页数

int pageCount; //设置pageId的值

if(request.getParameter(\"pageId\")==null) { ccageId=1; } else {

pageId=Integer.parseInt(request.getParameter(\"pageId\")); }

//设置总页数的值 if(totalNum%6==0) {

pageCount=list.size()/6;

36

应用系统开发实践(论文) 第37页 } else { pageCount=list.size()/6+1; } //将总页数保存到request作用域中 request.setAttribute(\"pageCount\ if(pageId<=0) { pageId=1;

} else if(pageId>pageCount) {

pageId=pageCount; } //将页面编号保存到作用域中 request.setAttribute(\"pageId\ ArrayList foodList=fooddao.findFoods(row, pageId);

request.setAttribute(\"foods\ request.getRequestDispatcher(\"proscenium/show.jsp\").forward(request,response); } }

37

应用系统开发实践(论文) 第38页 6 系统测试与维护

6.1系统测试

6.1.1 系统测试的目的

Grenford J.Myers就软件测试目的提出以下观点[19]: 1. 测试是程序的执行过程,目的在于发现错误;

2. 一个好的测试用例在于能发现至今未发现的错误; 3. 一个成功的测试是发现了至今未发现的错误的测试。

测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。如果成功地实施了测试,就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符。此外,实施测试收集到的测试结果数据为可靠性分析提供了依据。

6.1.2 系统测试的方法

1. 白盒测试

也叫玻璃盒测试、结构测试或逻辑驱动测试。对软件的过程性细节做细致的检查。这一方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,来设计或选择测试用例,对程序所有逻辑路径进行测试。

白盒测试是在程序内部进行,主要用于完成软件内部操作的验证。 2. 黑盒测试(Black Box Testing) 也叫功能测试或数据驱动测试 ,被测软件看作一个不透明的黑盒子,在软件接口处进行,完成功能的验证。

黑盒测试完全不考虑程序内部的逻辑结构和内部特性 。 6.1.3 网上订餐管理系统的测试

我用的是黑盒测试法,测试步骤如下图:

38

应用系统开发实践(论文) 第39页 1:用户注册登录2:用户在线订餐3:用户完成订餐6:结束5:管理员查看、处理订单图6-1 黑盒测试

4:管理员登录

6.2系统维护

系统维护是为保证系统的正常运行和安全保障等目的而采取的一系列措施,其中包括数据库维护、信息更新、版面更新、安全测试以及数据备份等操作过程;除此之外,如果要公开这个网站,则还包括服务器和域名空间等的维护。

数据库维护和信息更新:该阶段主要是要求管理员要经常对数据库和过期的信息及时地进行更新和维护,以保证数据库的正常运行和信息的及时性,从而保证了访问者能够顺利地了解到最新的信息动态。

版面的更新:该过程主要是要求对系统的首页和页面定期的进行相应的调整或更新,从而使本系统经常以崭新的面貌出现在广大访问者的面前。

安全测试和数据备份:该过程主要是从系统的安全方面考虑,由于目前整个网络体系的安全问题还存在着较大的隐患,所以如何加强系统的安全性能对于一个系统的正常运行具有非常重要的意义。所以,管理员要经常对系统进行诸如一些用户名、密码以及权限的更新或重新设置,从而保证系统的安全性。除此之外,还要经常对所有信息进行备份,以防止整个系统遭到外界袭击时陷入瘫痪状态。

39

应用系统开发实践与实践(论文) 第40页 结 论

网上订餐管理系统是一个经济且实用的系统。经过近3个月的不懈努力,在指导老师的谆谆教导,以及同学的帮助之下,充分利用大学所学的专业知识,通过大量阅读与设计相关的专业参考文献,我终于完成了本次应用系统开发实践,已经完成了网上订餐管理系统各项功能。

通过这次应用系统开发实践,我掌握了SQL Server 2008 这种大型数据库的编程方法,掌握了JAVA语言和JSP技术。了解到电子商务的理论以及平台开发的模式,掌握了网络开发的方法与模式。对软件开发方法和手段,有了一定的认识,丰富了我的软件开发的经验,提高了程序编写的水平,并加深理解了许多课程中、菜品本上学到的知识和理论。同时,通过编写应用系统开发实践论文,我还基本掌握了软件文档的书写格式和书写方法。

本系统的缺陷也是明显的,如界面美化,效率问题还有些不足。由于时间,能力,国内JAVA,JSP技术资料有限等原因,有些功能实现的并不完美,在已经完成的程序中,也存在许多不尽人意的算法,也没有统一优化,系统有待进一步改善,而这些问题也让我充分认识到了软件开发的困难。

通过应用系统开发实践实践,我学会了如何去了解一种新型的技术,去掌握一种技术。以及软件开发的基本流程。在学习过程中,我们遇到问题经常上网求助,去网上查询资料,扩大了自己的知识面。

总之,这次应用系统开发实践实践为我今后继续学习、深造奠定了基础,我非常感谢各位老师、同学的支持与帮助。

40

应用系统开发实践与实践(论文) 第41页 参考文献

[1] [2] [3] [4]

朱红,司光亚.《JSP Web编程指南》[M].电子工业出版社, 2007年9月:1-110

赛奎春.《JSP工程应用与项目实践》[M]. 机械工业出版社, 2009年8月:23-294 张桂元,贾燕枫.MyEclipse开发入门与项目实践[M].北京:人民邮电出版社,2006:1-145

李长云、饶居华、等《Eclipse 与 J2EE应用开发》[M],北京大学出版社,2008年6月:1-140

[5] 孙卫琴,李洪成.《Tomcat 与 JSP Web 开发技术详解》[M].电子工业出版社,2003

年6月: 1-205

[6] 施伯乐、丁宝康、汪卫《数据库系统教程》(第三版)[M],高等教育出版社,

2008年:57-120

[7] 罗运模,完全掌握SQL Server 2008[M],人民邮电出版社,2009年:43-200 [8] 张海藩.软件工程导论(第4版)[M].北京:清华大学出版社,2003:30-39 [9] 赵池龙,杨林,孙伟.实用软件工程(第2版)[M]:北京电子工业出版社,2006:10-70 [10] 贺松平.基于MVC模式的B/S架构的研究及应用[D].武汉:华中科技大学,

2009:68-1 [11] 王国辉,李立文,杨亮.JSP数据库系统开发完全手册1-230 [12] Erich Gamma等著,李英军等译. 设计模式:可复用面向对象软件的基础[M].北

京:机械工业出版社,2010:30-60

[13] 程伟,汪孝宜. 开发者突击:JSP网络开发经典模块实现全集[M]. 北京:电子工

业出版社,2008:1-88

[14] 张强.精通JSP编程[M].北京:电子工业出版社,2006:1-167

[15] 邓之云,张赐.JSP网络编程基础到实际[M].北京:电子工业出版社,2006:1-200 [16] (美)Bruce Eckel. Java编程思想[M]. 陈昊鹏译. 北京:机械工业出版社,

2007:1-210 [17] Java语言程序设计基础篇(英文版•第6版)/(美)梁(Liang,Y.D.)著。北

京:机械工业出版社,2008:1-280

[18] (美)泰勒.JDBC数据库编程与J2EE[M].北京:电子工业出版社,2007:70-98 [19] (美)Grenford J. Myers在 1978 年所著的《The Art of Software Testing》:

http://www.ltesting.net/html/91/32191-142381.html

41

应用系统开发实践(论文) 第42页

致 谢

在本次应用系统开发实践实践过程中,得到了指导老师的指导与支持。在此特别感谢我的指导老师——梁艳老师。感谢她在我的应用系统开发实践期间给了我很多指导性的建议和意见,毛老师无论是在理论上还是项目代码上都给了我很大的帮助,在几次小组会议和查看进度的过程中都给了我很多重要的意见,毛老师工作态度认真,为人亲切和蔼,学术理论和实践经验丰富,正是在毛老师的带领下使我得以顺利完成应用系统开发实践,提高了学习和科研的能力,为今后的继续学习和工作打下了坚实的基础。

我还要感谢我的母校——西安思源学院,以及在大学四年生活中给予我关心和帮助的老师和同学们,是他们教会了我专业的知识和做人的道理。通过这次应用系统开发实践我还明白了作为一名计算机专业即将毕业的大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。我会在以后的工作和学习中不断完善自己,为我最热爱的母校争光,为自己翻开辉煌的新篇章。

学生签名: 日 期:

42

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo7.cn 版权所有 湘ICP备2022005869号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务