《网上订餐系统数据库设计(共37页).doc》由会员分享,可在线阅读,更多相关《网上订餐系统数据库设计(共37页).doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上网上订餐系统数据库设计班级:信计C082 姓名:赵鑫 学号:摘 要 当前,餐饮业还面临着越来越激烈的市场竞争、要想在竞争中取胜,必须采用先进的管理方法和手段。实现先进的计算机网络化管理,能更方便快捷的满足顾客的就餐需要,使管理更合理、更先进;减少人力、物力资源的浪费,降低成本;提高工作效率,提高管理效率;提高经济效益,从而提高餐厅的整体竞争力。系统为顾客提供了各种美食的详细信息,可以方便顾客对美食进行选购,顾客还可对自己的个人信息进行修改,可以查看过往订过的美食的信息;为餐厅提供了一个虚拟的店面,方便餐厅管理人员了解顾客的需求,进而改变下一阶段的销售策略,还可以进行美
2、食管理,订单管理,会员信息管理,其中,超级管理员还可以对管理员的信息进行管理。本系统开发使用B/S结构,严格的按照软件工程的思想贯穿系统设计,利用Java语言,以Oracle作为系统数据库,实现网上订餐系统的开发。这些先进的开发思想和技术手段有力地保证了此系统可以安全地、高效地为餐厅的运营和顾客的就餐进行服务。本文介绍了经过用户需求分析后,对订餐系统的基本设计、系统设计、详细设计的开发研制过程。本文所设计的功能满足餐厅的实际需求,使餐厅在订餐方面更加科学化,减少了人物力资源的不合理消耗,最后实现了提高工作效率的目的。关键词:网上订餐;订餐系统;订餐管理Abstract At present,
3、the hospital is also facing the increasingly intense competition in the market. To win in this competition, the hospitals must adopt the advanced method and means of management. The realization of the advanced computer network management can provide reliable digital basis for the management and stra
4、tegy of leadership timely. It can also make the management more reasonable and advanced, reduce the waste the human and material resources, reduce costs, and improve the efficiency of work, management and economy. So it can promote the whole competitiveness of the hospitals.This system can complete
5、the main process management and medical economic management from the admission to discharge. At the same time, it can give the medical cost data, so as to make use of the medical information effectively and scientifically, and improve the level of management and service. The Hospital Management Syst
6、em provides detail information about the patients. It includes the register of patients, the settlement of accounts, the transfer of the patients, the statistics of the admitted to hospital and discharged from hospital, the inquiries of the patients and their prescriptions and etc. The development o
7、f the system to use C / S structure, in accordance with the strict idea of software engineering to design. With the use of PowerBuilder technology and Oracle database as the advanced technology, to realize Hospital Inpatient Department Management System. These advanced ideas and technical means ensu
8、re that the new management system can work safely and efficiently to manage the actual Hospital Inpatient Department This paper introduces the development process of the system analysis, the general design and the details of the Hospital Inpatient Department Management System after the user demand a
9、nalysis of the management system. This article designs the function satisfies the hospital medical supply store management the physical demand, enables the hospital the medical supply store management to be under the scientific management, reduced the character transport charges source unreasonable
10、consumption, finally has realized the enhancement working efficiency goal. Keywords:Online Food Ordering; Food Ordering System;Food Order Management第 1 章 引 言1.1 课题的研究目的和意义随着Internet的普及,越来越多的企业建立了自己的网站,企业通过网站可以展示产品,发布最新动态信息,与顾客进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。其中网上订餐系统是电子商务网站的一种,随着人们生活水平的提高,人们对自己的饮食也渐渐的注重起
11、来,很多人在进行紧张工作之余会选择享受美食进行放松。本系统是为了满足顾客的需求,进而开发的一款可供广大顾客在网上进行订餐的系统。主要是针对时下年轻人网络消费意识,能力强,由于工作忙或者做饭动手能力差等原因,进而就餐质量差,为使其能享受到高质量,快捷的餐饮服务,从而提高餐厅利益进而开发。现在普遍使用的订餐方式是进行电话预定,这种预订方式方便,错误率也比较低,但是由此引发的一些不良现象也比较多,主要是订餐后出现饭店并没有将信息记录在案,而且电话里不能看到菜品的图片,对菜量和菜品样式没有直观的概念。另外这种订餐方式只是进行电话的预约,很可能会出现订餐但是不履行订单也不进行订餐取消的现象,订餐人员对订
12、购的餐桌信息不太了解会进行相关信息的询问,这样就在一定程度上造成了时间的浪费,饭店人员会在同一天反复重复相同的信息,造成了人力资源的浪费。这样开发出图文并茂,信息能够及时更新和查看的在线网上订餐系统就成为了解决上述问题的主要途径。研究并开发这样的一款网上订餐系统就具有了重要的意义。1.2 国内外发展状况1.2.1 国内方面从国内研究现状来看,在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。因此,网上订餐系统应充分依托校园网和公司集中区域,实现订
13、餐信息的集中管理、分散操作、信息共享,使传统的订餐朝数字化、智能化、综合化的方向发展,并为进一步实现完善的网上订餐打下良好的基础,从技术角度,也会不断更新,优化出适合网上订餐系统的框架,以便后续开发。1.2.2 国外方面对比于我国现在使用的订餐方式还停留在电话订餐的层面上,不容置疑,电话订餐方便,随时打一个电话就可以预定餐品。但是这种方式也存在着一些问题,这些问题或多或少的影响着饭店的运营,因此,进行网上订餐更是新型订餐方法,而在国外人们通过上网,对餐品进行预订的现象比比皆是,这样不仅节约了时间,也为饭店的订餐管理工作提供了方便。在国外,网上订餐往往是通过网络开设一家“网上餐饮超市”,再引入专
14、业物流配送公司,为传统供应商提供广泛的配送服务,消费者只要点中网上美食店提供的任一菜点,由配送公司专门配送,但这种模式不仅需要配送公司有强大的实力,同时也要有广泛的客户群支持,进而网上订餐系统得到广泛应用,并且得到了普遍认可。第 2 章 系统分析2.1 项目概述该系统为餐厅网上订餐系统,该系统主要面向两个对象:顾客,餐厅管理员。设计的各个方面,完全满足客户的需求,大大减少人力、物力资源的浪费,降低成本;提高工作效率,提高管理效率;提高经济效益,从而提高餐厅的整体竞争力。在系统中,顾客可以对个人信息进行管理,包括维护个人信息和查看过往订单;顾客还可以选购美食,包括查询美食信息和直接通过购物车进行
15、选购。管理员可以进行菜品管理,包括添加菜品、菜品下架(逻辑删除)、查询菜品信息、修改菜品信息;会员信息管理,包括查询顾客信息、添加顾客信息、修改顾客信息;订单管理,包括查看订单信息(按状态)、修改订单状态、打印订单、取消订单;超级管理员还可以对管理员信息进行管理。系统界面简洁,操作方便、简易,最大限度地方便顾客与餐厅管理员的需要。餐厅管理员可以进行会员信息管理、菜品管理、购物车订单管理;顾客可以进行个人信息管理、菜品查询、订餐、等功能,进而大量节省双方的时间和工作量,提高效率。本系统适用现代化餐厅,有助于管理员方便、高效率的管理顾客的信息和需求,同时,又使得顾客可以方便的享用优质美食。协助上方
16、建立完备交互体系的综合管理系统。2.2 研究内容及目标该系统通过两个实例:餐厅管理员,顾客进行延展和设计。其中餐厅管理员可以进行会员信息管理、菜品管理、购物车订单管理;顾客可以进行个人信息管理、菜品查询、订餐、等功能。(1)管理员模块功能:现场帮助顾客办理会员,顾客的修改请求办理(身份证号不可修改),查询顾客信息,按用户身份证查询,添加菜品,添加菜品图品,价格,是否是推荐菜品等,用于菜品原料缺少或菜品过季等情况,进行逻辑删除,可以按菜品的名称、价格、销售量、是否是推荐菜品进行查询,默认是推荐菜品查询,修改维护菜品信息,主要针对菜品原料的价格变更菜品的价格及菜品是打折时的价格变更,设置菜品类别(
17、推荐,新品,热卖,打折等),在价格旁边用醒目的红字显示,起到促销作用,可按订单号、用户姓名进行查询管理员可以查看到当前餐厅的订单,并可以进行打印订单以确认发货,管理员对不在自己店范围内的订单可进行手动或者可以在订单状态为等待中时为顾客修改菜品的数量及品种,若订单状态为以下单则不能为顾客修改,若打印订单表示以确认发货,并自动修改订单状态为已发送,若顾客不方便上网打电话要取消订餐的话,管理员查看订单状态若为已下单则不能为顾客取消订单,若订单状态在等待中,则可以为顾客取消订单,增加一个管理员,管理员的用户名,密码等,可按管理员编号、姓名查询,对管理员的个人信息或者密码进行修改,对管理员进行逻辑删除。
18、(2)顾客模块功能:顾客登录时可以以非会员或者会员的两种方式进行订餐操作,如果是会员登陆,先前需要录入用户名、密码、验证码,以便系统确认登陆成功。会员可以修改个人资料(如:电话,地址等),也可以查看订餐信息,了解当前订餐的动态。无论是会员还是非会员在挑选美食的过程中,可以直接将称心的美食选进购物车中也可通过一系列查询,进一步了解后,再选择美食。顾客还可以对个人信息进行修改或者细化,在已发出订单后,自己根据刚发的订单,提交还想要点的菜的订单和取消或修改当前订单,会员还可以对刚刚下过的订单进行修改和删除,但是,由于餐饮的特殊性,一旦订单的状态变成“已下单”,就不可以进行取消或者修改了,此外,如若顾
19、客还要继续订餐则可以继续订餐,返回菜品信息主页,继续选择。作为会员登陆系统时可以对过去一个月的订单进行一下查看,可以对您所享用过的美食进行评价选购美食,也可以直接选购自己所喜爱的,选购之后,就将美食加入购物车,随即会列出一张购物车列表,可以删除和修改所选的美食,确认后,提交订单。对提交的订单进行管理,对于已选择的订单,如果不满意也可以进行修改或者退订订单。2.3 关键技术简介根据整个系统的开发计划,采用的开发语言是Java,结合Oracle最基本的数据库技术,来实现系统的所有功能。Java作为一种重要的开发工具,它具有七个主要特性:安全性、核心API、开放式标准、分布式和动态结构、面向对象、多
20、线程、内存管理。Oracle数据库作为一个通用的数据库系统,其具有完整的数据库功能,这些功能包括存储大量数据、定义和操作并发控制、安全性控制、完整性控制、故障恢复与高级语言接口等。Oracle使用PL/SQL语言提供各种操作具有可开放性、可以执行、可伸缩性等功能。特别是Oracle 9i以上版本中,支持面向对象的功能,如支持类、方法、属性等,使得Oracle产品称为了一种对象/关系数据库系统。2.3.1 Struts、Spring、iBatis三个框架配合搭建MVC对于我们来说,已经不陌生了。然而近年来,随着Java的盛行,MVC的低耦合性、高重用性、可维护性、软件工程的可管理性等诸多优点使其
21、在Java平台中很受欢迎,其间,也诞生了许多优秀的MVC框架,如专注于控制层的Struts、WebWork, Struts2, JSF等框架,专注于业务逻辑方面的Spring框架、专注于持久层的Hibernate、iBatis、Castor、JORM等框架。而本系统为了满足客户需求就是采用Struts、Spring、Ibatis三个开源框架进行搭建。Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的
22、起点。 Spring功能非常的强大,比如它的控制反转/依赖注入机制,省去了我们自己书写工厂模式的工作,实现了对我们将要用到控制类、业务逻辑类、数据访问类、以及JNDI或者JDBC数据源的托管;Spring对AOP支持使我们在用户权限控制、事务处理方面节省了很多工作量; iBatis则是一种轻量级的OR Mapping框架,与Hibernate相比,iBatis提供了半自动化对象关系 映射的实现,开发人员需要编写具体的sql语句,为系统设计提供了更大的自由空间,为sql语句优化提供了便利。在控制层,利用Strtus标签功能,在Action中直接与jsp页面上的数据进行交互。在调用业务逻辑层应用时
23、,Struts提供了对Sping的支持。开发人员需要完成对struts.xml的配置工作和对各个Action类的编写。在业务逻辑层,利用Spring框架的依赖注入实现对业务逻辑类和DAO类的实例托管;在事务处理方面,利用Spring提供的面向切面的事务处理功能,使对数据的事务控制脱离于数据访问接口实现;在对象关系映射方面,利用Spring对数据库连接池的托管和对iBatis框架的支持。开发人员需要完成对数据源的配置、对不同模块所对应的application*.xml文件的配置,以及对业务逻辑接口的定义和业务逻辑实现的编写。在持久层,利用iBatis提供的半自动化对象关系映射的实现,开发人员需要
24、编写具体的sql语句,为系统设计提供了更大的自由空间。另外,开发人员需要完成对SqlMapConfig.xml和*SqlMap.xml的配置,以及对DAO接口的定义和DAO接口的实现。在各层之间进行交换的过程中,利用数据传输类进行数据的传递和交互。其中,数据传输类与数据库表一一对应。SSI框架能够降低我们代码的耦合度,增强了代码的健壮性和可重用性,加快了未来同类系统的开发速度。2.3.2 DWR框架实现Ajax技术DWR(Direct Web Remoting)是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它
25、就在浏览器里一样.DWR不认为浏览器WEB服务器协议是重要的,而更乐于保证编程界面的简单自然.对此最大的挑战就是把AJAX的异步特性和正常JAVA方法调用的同步特性相结合.在异步模式下,结果数据在开始调用之后的一段时间之后才可以被异步访问获取到.DWR允许WEB开发人员传递一个回调函数,来异步处理Java函数调用过程.2.4 需求分析网上订餐系统需要满足来自两方面的需求,这两个方面分别是订餐的顾客和餐厅的管理人员。(1) 顾客模块用例图:図 1顾客用例图顾客模块的功能包括个人信息管理,美食选购,美食评价三大功能。其中,在个人信息管理中可以对个人信息进行修改、还可以查阅以往订过的美食信息;在选购
26、美食中可以通过购物车直接购买的形式、也可已选择货到付款的形式完成交易;美食评价中顾客可以这对这次服务质量,留下自己相对餐厅说的话,完成用户与餐厅之间的交互。(2) 管理员模块用例图: 1管理员和超级管理员用例图管理员模块的功能包括菜品管理,订单管理,会员信息管理三大功能。其中,在个菜品管理中可以对菜品信息进行添加、修改和查询操作;在订单管理中可以通过未确认、已确认、已下单三种形式进行管理、也可查看所有订单信息;会员信息管理中,可以添加会员信息和修改会员信息,进而方便顾客网上订购美食,并享有优惠,这一做法人性化的完成网站的推广,避免了顾客的抵触情绪。第 3 章 总体设计3.1 功能设计(1) 顾
27、客模块功能图:顾客个人信息管理选购美食维护个人信息查看订单信息购物车美食查询修改个人信息查看购物车删除所选美食修改美食数量查看美食评价查看排行榜查看美食信息查看过往订单查看当前订单図 1顾客模块总体功能图顾客登录时可以以非会员或者会员的两种方式进行订餐操作,如果是会员登陆,先前需要录入用户名、密码、验证码,以便系统确认登陆成功。会员可以修改个人资料(如:电话,地址等),也可以查看订餐信息,了解当前订餐的动态。无论是会员还是非会员在挑选美食的过程中,可以直接将称心的美食选进购物车中也可通过一系列查询,进一步了解后,再选择美食。顾客还可以对个人信息进行修改或者细化,在已发出订单后,自己根据刚发的订
28、单,提交还想要点的菜的订单和取消或修改当前订单,会员还可以对刚刚下过的订单进行修改和删除,但是,由于餐饮的特殊性,一旦订单的状态变成“已下单”,就不可以进行取消或者修改了,此外,如若顾客还要继续订餐则可以继续订餐,返回菜品信息主页,继续选择。作为会员登陆系统时可以对过去一个月的订单进行一下查看,可以对您所享用过的美食进行评价选购美食,也可以直接选购自己所喜爱的,选购之后,就将美食加入购物车,随即会列出一张购物车列表,可以删除和修改所选的美食,确认后,提交订单。对提交的订单进行管理,对于已选择的订单,如果不满意也可以进行修改或者退订订单。(2) 管理员模块功能图:管理员菜品管理会员信息管理订单管
29、理查看订单修改订单取消订单修改订单打印订单添加美食信息美食下架查询美食信息修改美食信息查询顾客信息添加顾客信息修改顾客信息図 2管理员模块总体功能图(3) 超级管理员模块功能表:注:超级管理员有管理员所有的功能权限。超级管理员管理员信息维护增加管理员修改管理员信息查询管理员信息删除管理员信息3超级管理员模块总体功能图现场帮助顾客办理会员,顾客的修改请求办理(身份证号不可修改),查询顾客信息,按用户身份证查询,添加菜品,添加菜品图品,价格,是否是推荐菜品等,用于菜品原料缺少或菜品过季等情况,进行逻辑删除,可以按菜品的名称、价格、销售量、是否是推荐菜品进行查询,默认是推荐菜品查询,修改维护菜品信息
30、,主要针对菜品原料的价格变更菜品的价格及菜品是打折时的价格变更,设置菜品类别(推荐,新品,热卖,打折等),在价格旁边用醒目的红字显示,起到促销作用,可按订单号、用户姓名进行查询管理员可以查看到当前餐厅的订单,并可以进行打印订单以确认发货,管理员对不在自己店范围内的订单可进行手动或者可以在订单状态为等待中时为顾客修改菜品的数量及品种,若订单状态为以下单则不能为顾客修改,若打印订单表示以确认发货,并自动修改订单状态为已发送,若顾客不方便上网打电话要取消订餐的话,管理员查看订单状态若为已下单则不能为顾客取消订单,若订单状态在等待中,则可以为顾客取消订单,增加一个管理员,管理员的用户名,密码等,可按管
31、理员编号、姓名查询,对管理员的个人信息或者密码进行修改,对管理员进行逻辑删除。3.2 数据库设计3.2.1 数据库信息一览根据上面功能的定义,设计了10个表(即:属性表、美食评价表、美食价格表、美食表、管理员登录表、管理员信息表、会员登录表、会员信息表、订单明细表、订单表)2个序列(即食品编号序列、属性编号序列)。另附数据库表整体ER图如下:3.2.2 数据库连接先在Oracle数据库中打开OracleOraDb10g_home1TNSListener(监听服务)、OracleServiceMLDN(oracle主服务)两个服务,然后在Spring框架中的applicationContext.
32、xml中设置用户名、密码、驱动名称、端口路径四项内容,即:oracle.jdbc.driver.OracleDriverjdbc:oracle:thin:localhost:1521:MLDNscotttiger3.2.3 主要数据库表简绍订单表是非常重要的表,因为它是顾客订餐后的一些记录信息,因此,要求该表能完全体现顾客的订餐信息,要具有唯一性,其中,订单编号是订单的唯一标识,订餐区号、支付方式号、订单状态号均是以外键的形式与属性表相互关联,避免数据项的冗余。其中订单状态号会随着管理员对订单状态的改变而改变;支付方式号标示着网上付款和货到付款两种资费方式;订餐区号标示着沈阳市内五区其结构如表
33、3-1所示。表格 3.2.31订单表的结构No論理名物理名型Not Null備考1订单号ORDERIDVARCHAR2(10)Yes2会员登录名MEMBERUSERNAMEVARCHAR2(10)Yes3订餐时间ORDERTIMEDATEYes4收餐人RECIEVERNAMEVARCHAR2(20)Yes5收餐地址RECIEVERADDRVARCHAR2(100)Yes6收餐区号RECIEVERAREAIDVARCHAR2(10)Yes7联系电话RECIEVERTELVARCHAR2(15)Yes8支付方式号PAYTYPEIDVARCHAR2(10)Yes9订单总价格ORDERALLPRICE
34、NUMBER(8, 2)Yes10订单状态号ORDERSTATUSIDVARCHAR2(10)Yes11备注NODESVARCHAR2(100) 属性表包含了数据库表中所涉及到的所有属性,十分重要,其中,属性号由两部分组成,例如,牛肉面,该美食的食品编号即“05001”,其中,“05”标示食品的类别编号,“001”标示的是食品的序列编号,待要扩充表时,只需要将后三位,即“001”进行扩充成“002”以此类推即可。表格 3.2.32 属性表的结构No論理名物理名型Not Null備考1属性号ATTRIBUTEIDVARCHAR2(10)Yes2属性名ATTRBUTENAMEVARCHAR2(10
35、)Yes 美食表标示着食品的所有信息,十分重要,其中美食类型号用来标示主食、配菜、甜点、汤品等食品的类别信息,用该元组与属性表相关联;美食卖出数量最小值要大于零,可想而知,没有人会买到-1碗牛肉面;美食图片地址,标示在服务器上存储的图片的地址,如果没有上传图片,会有默认的图片,来供美食表记录地址。其结构如表3-2所示。表格 3.2.33 美食表的结构No論理名物理名型Not Null備考1美食号FOODIDVARCHAR2(10)Yes2美食名称FOODNAMEVARCHAR2(20)Yes3美食类型号FOODTYPEIDVARCHAR2(10)Yes4美食图片地址FOODPICTUREADD
36、RVARCHAR2(100)5美食卖出数量foodSaleQuentityNUMBER(10)Yes6美食说明FOODDESCRIPTIONVARCHAR2(100)订单明细表,为了避免数据项的冗余,在订单表的基础上归纳出订单明细表,表记录了这次订单的重要信息,其中,订单号来确定订单的唯一性,美食价格类型是指普通资费家(非会员享有)和会员价(会员享有),美食数量标示这次订单中该美食所订购的数量,美食总价是指根据订单表中的美食价格类型关联到订单价格表中的该类型的价格与美食数量的乘积。其结构如表3-3所示。表格 3.2.34 订单明细表的结构No論理名物理名型Not Null備考1订单号ORDER
37、IDVARCHAR2(10)Yes2美食号FOODIDVARCHAR2(10)Yes3美食数量FOODQUENTITYNUMBER(10, 0)Yes4美食价格类型PRICETYPEVARCHAR2(10)Yes5美食总价FOODALLPRICENUMBER(8, 2)Yes管理员信息表中记录了大量的管理员的信息,其中登录名为登录到后台程序时名字与登录表关联得到登录时的密码;其中职位号要与属性表关联,得到其职位名称。管理员姓名为管理人员的真实姓名,在添加管理员信息时候填写;联系电话和Email需要保持真实性,以方便超级管理员与管理员之间的交互。3.2.35 管理员信息表No論理名物理名型Not
38、 Null備考1管理员登录名MASTERUSERNAMEVARCHAR2(10)Yes2管理员姓名MASTERNAMEVARCHAR2(20)Yes3联系电话MASTERTELVARCHAR2(15)Yes4管理员EmailMASTEREMAILVARCHAR2(50)5职位号MASTERJOBIDVARCHAR2(10)Yes会员信息表中记录着大量的会员信息,其中,会员登录名为前台的登录用户名,要与登录表相关联得到登录时的密码,地址要保证正确性和真实性,用来保证送餐的质量,区号用来保证派遣最近的送货点进行送货,会员卡余额是当会员选择网上付款时以便会员确认。3.2.36会员信息表No論理名物理
39、名型Not Null備考1会员登录名MEMBERUSERNAMEVARCHAR2(10)Yes2会员姓名MEMBERNAMEVARCHAR2(10)Yes3地址MEMBERADDRVARCHAR2(100)Yes4区号AREAIDVARCHAR2(10)Yes5联系电话MEMBERTELVARCHAR2(15)Yes6会员EmailMEMBEREMAILVARCHAR2(50)7会员卡余额CARDBALANCENUMBER(8, 2)Yes第 4 章 详细设计与系统实现4.1 详细设计4.1.1 包的设计为了清晰地标示出各层之间的结构设计包图如下所示:表格 4.1-1 包的结构说明説明Webc
40、sslayout、背景色、table的样式设定image用到的所有图片配置在这里jsJavaScrip的配置jspJsp页面配置common公用的JSP页面client客户端的页面Classmanager管理端的页面hhqdomain这里存放类似与bean的类,起到数据收集的作用persistence数据持久层,用ibatis框架实现对数据库的操作presentation表现层,基于Struts和Spring框架实现页面间的请求转发,和jsp页面的数据收集。service进行业务逻辑的判断,这里提供调用持久层的方法。util存放各种工具类,如分页,日历等。为了让包的表现更加清晰,以便方便开发和
41、维护,图中清晰地标示出模型层(persistence)、逻辑层(service)、控制层(presentation)综述的MVC的架构所属包,而且将共类类放到了domain包中,以及将工具类放到了util包中;在Web文件方面分别由css存放css格式控制文件、用image存放图片文件、用js存放web脚本文件、在common、client、manager中分别存放共通、客户端、管理员端的jsp文件。如下图所示:図 5工程包截图4.1.2 类的设计为了清晰地明确类的结构,建立管理员模块下的类图如下所示:了清晰地明确类的结构,建立管理员模块下的类图如下所示:図 6管理员模块的类图 图中明确的表现
42、出类在管理员模块下的各个类、接口、属性与方法,以及各个类之间的关系。4.2 部分系统功能实现4.2.1 美食的查询在客户端的选购美食页面中包含了四种查询方式,分别是top5的按美食的销售量查询,选择食品类别的下拉菜单中的按食品种类查询,输入菜品名称的文本框中的按食品关键字查询,美食图片上通过鼠标滑动按食品地址查询出食品的描述信息。为了提高用户体验,其中前三者属于同步查询操作,而后者属于异步查询操作。页面的下端还设计了分页操作,为了提高性能采用真分页操作,还附上了动态人为控制跳转到第几页和每页显示几行的操作。此页面是客户端的首页,无需任何跳转直接进入。如图所示。图6 美食查询功能运行图顾客登陆流
43、程图:图表 7 顾客登录流程图功能描述:顾客登陆管理,包括1) 登陆时可以以游客或者会员的两种方式进行订餐操作,如果是会员登陆,先前需要录入用户名、密码、验证码,以便系统确认登陆成功。2) 会员个人信息管理,会员可以修改个人资料(如:电话,地址等),也可以查看订餐信息,了解当前订餐的动态(详见会员登录流程图)。3) 选购美食,作为顾客,在挑选美食的过程中,可以直接将称心的美食选进购物车中也可通过一系列查询,进一步了解后,再选择美食(详见选购美食流程图)。选购美食部分代码如下:/得到在Spring中动态注入的Service层对象/得到日志对象logpublic ActionForward que
44、ryForAll(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) String forward = first;if(request.getParameter(user).equals(manager)forward = queryDishes ;Food food = new Food() ;List foodList = null ;List topList = null ;int allRecorders = foodService.queryForAllRecorders(food) ;/当不是第一次登陆页面时if(request.getParameter(cp)!=null&request.getParameter(ls)!=null)intcurrentPage = Integer.parseInt(request.getParameter(