北京东方医院中医药健康导航系统设计毕业论文.doc_第1页
北京东方医院中医药健康导航系统设计毕业论文.doc_第2页
北京东方医院中医药健康导航系统设计毕业论文.doc_第3页
北京东方医院中医药健康导航系统设计毕业论文.doc_第4页
北京东方医院中医药健康导航系统设计毕业论文.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

北京联合大学 毕业设计 北京东方医院中医药健康导航系统设计毕业论文1 绪论1.1 系统的开发背景、目的以及意义面对当世的就医压力大的局面,无论作为一名患者还是医院管理者,都希望能够减轻就医的压力,解决排队挂号的困难。本项目(健康导航系统)作为软件工程系毕业设计项目,由本人负责开发。健康导航系统项目主要由两部分形式:前台显示页面,包括用户注册,用户登录和信息检索等页面以及后台的处理程序。健康导航系统非常适合现代化的就医要求。本系统主要是针对那些轻病患者和亚健康人群,在就医压力大的情况下,进行在线咨询。普通用户可以进行注册,登录,然后进行一些疾病的咨询,膳食的建议和营养的分析。还可以对一些常用药进行查询、购买。极大的减少了就医压力以及排队挂号等繁杂的程序。1.2 系统开发目标把一个WEB应用用Struts(3)和Hibernate(9)技术分层实现,将页面显示、业务逻辑和数据处理相分离,最大限度地降低系统各模块之间的耦合性,方便处理系统模块间的控制和数据的集成从而增强系统的可扩展性与可维护性,提高代码重用率,使系统的层次结构更加清晰。同时在系统表现层方面,研究使用iframe框架技术,以提高页面代码的可重用性和良好的界面展示效果。本文正是基于上述问题出发,以开发一个基于MVC模式,以表现层使用Struts,业务层使用Struts,持久层使用Hibernate进行系统的开发。最后结合具体的健康导航系统实现作了详细的设计,验证了实现方法的可行性。希望能通过该系统能给医院一个良好的平台,既为医院的管理员提供方便,又为其用户节省排队就医的时间,充分利用网络资源进行潜在用户的挖掘。通过健康导航系统的实现,给医院和用户带来方便的同时增加的医院的竞争力。1.3 技术简介在构建开发环境的时候,我们使用MySQL+Tomcat+MyEclipse(5)+JDK+ Navicat。MySQL是一个免费的开源数据库,Navicat是一款mysql的数据库管理软件,可以对MySQL进行可视化。Tomcat是一个免费开源的Web服务器,MyEclipse是一个开源的Java集成开发环境,JDK是一个基于JAVA开发的工具。因为他们的免费性和开源性,又因为他们的结合度相当不错,所以选用他们开发北京东方医院中医药健康导航系统。MyEclipseMyEclipse,是一款十分优秀的用于开发JAVA, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。Mysql+ Navicat,MySQL是一个小型关系型数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。对于MySQL来说,Navicat工具是一个强大的数据库管理和开发工具。它可以跟任何版本的MySQL数据库服务器一起工作,并且支持MySQL大多数最新的功能。Tomcat,是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行Tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。2 可行性分析 随着亚健康人群和轻病患者的不断增加和社会就医压力的不断增加,人们对就医的需求也越来越强,越来越迫切,这就给医院带来了很大的负担。而随着社会的不断发展,这种负担就会越来越重,解决之道是将现有的就医形式改变,在网络上寻找解决的方法。做好疾病信息等的统筹和共享,以便合理的是使用现有的资源解决健康问题。可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这种目的,必须分析几种主要的可能解决的利弊,从而判断原定的系统规模和目标是否能实现,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。系统的可行性分析主要包括经济上的可行性、技术上的可行性和操作上的可行性。本系统的可行性分析如下:2.1 经济可行性由于健康导航系统所要求的硬件和软件开发环境都不是很高,都可以在市场上购买到而且相当便宜,还有一部分都是免费开源的。而据统计现在用户电脑的拥有率达78%以上。而本系统成本主要集中在健康导航的系统开发上,并不会对用户造成过大的经济负担。而一旦此系统投入使用,就可以减少医院方面的就医压力,节约医院的经济支出,提高医院的工作效率。极大限度的解决了就医压力大的情况。而且,本系统不是很复杂,开发周期短,人员经济支持少,节省医院的大量的人力物力财力。所以从经济方面讲本系统是可行的。2.2 技术可行性健康导航系统的开发基于B/S模式,即浏览器/服务器模式,主要包括的就是前端应用程序的开发以及后台数据库的建两个方面。对于前端要求界面友好,易于使用,功能完善等特点。对于后台要求数据的完整性,数据的安全性。本系统采用Java语言,结构采用的是Hibernate+Struts。前台采用的是Jsp+Css后台采用MySQL数据库。在构建开发环境的时候,我们使用MySQL+Tomcat+MyEclipse+JDK+ Navicat。MySQL是一个免费的开源数据库,Navicat是一款mysql的数据库管理软件,可以对MySQL进行可视化。Tomcat是一个免费开源的Web服务器,MyEclipse是一个开源的Java集成开发环境,JDK是一个基于JAVA开发的工具。因为他们的免费性和开源性,又因为他们的结合度相当不错,所以选用他们开发北京东方医院中医药健康导航系统。因此技术方面是可行的。2.3 操作可行性据统计,现在用户电脑的拥有率达78%以上。所以用户完全有条件和能力在网上查询自己想用的信息。但是现在网络上的垃圾信息太多、广告不计其数更主要的是现在钓鱼网站太多,容易给用户造成财产损失。所以现在需要一个正规的网站、系统来保证他们能得到有用的信息而且不造成其他的意外产生。而健康导航系统界面友好操作简单,仅仅在购药的情况下才需要进行登录。而营养分析,疾病分析,膳食分析等则不需要登录 仅仅需要点击打开就能使用。这对于电脑不是很在行的人员也能正常的使用。不会造成因为因为不会使用本系统造成就医未果的问题。3 系统需求分析3.1 需求分析目的 软件需求分析师软件开发期的第一个阶段,是软件生存周期最重要的一步,是关系到软件开发成败的关键步骤。它在系统需求工程和软件设计间起到桥梁的作用。需求工程活动产生软件的运行特征(功能,数据和行为)的规约,指明软件和其他系统元素的接口并建立软件必须满足的约束。3.2 调研资料健康导航系统是在线进行的医院的特殊职能的系统,实现了在线的疾病分析、症状分析、膳食分析、营养分析、食疗分析、常用药查询等功能。目前国外未见系统的健康导航系统。而仅有的几个像“芬韦健康导航(fenway health)”也仅仅是对爱滋病的导航系统,其功能也不完整。“生育导航”其性能单一,可用性不强。国内仅有的“健康导航-益康堂健康在线”也只是以博客的形式,对每一个问题,进行一次陈述。而且已经很久没有更新其内容,和我们的需求差异很大,其内容也不完整,并没有解决实际性的问题而对于“健康导航之饮食与长寿”也不是系统的导航,只是简单的介绍了几个著名长寿地的饮食方面对人类的健康的好处。内容方面太多单一。解决不了广大用户的需求。健康导航这本由杨舒凯撰写的这本书籍是由神经系统、心理系统、人体生理力学等方面的叙述和详解。对于这种深层方面的知识,我认为我们还是要听从医师的安排,这也不是我们所需求的。而中国人口众多,排队医治的情况屡见不鲜、所以大多数人得病能敷衍就敷衍过去,不能敷衍了才去医院。对于这种情况,中国还没有一套良好的方案解决问题。而本健康导航系统是不断的提高知识传播的信息化程度,加快知识普及,有助于提高健康知识在信息时代的普及度,适应当今计算机信息化高度发达的社会。本系统前景可观。3.3 系统功能需求描述在设计的北京东方医院中医药健康导航系统中主要功能如下:用户进入系统后无需登录就可以使用分析功能,进行各项分析功能以及常用药的查询,用户只需输入想检索的信息即可查询调用数据库中的内容。系统还提供用户注册登录功能,用户可进行注册,需要填入相应的正确的信息,完成注册后,即可登录系统,输入正确的用户名以及密码就可以进入系统,登录后的用户享有购药功能和留言回复功能以及个人信息的修改。系统还有管理员功能,管理员有自己相应的用户名和密码,管理员登录后方可管理本系统,可以对本系统的信息进行管理,可以管理用户的信息,可以管理用户的订单信息,还可以对药品信息进行管理。图3-1系统功能描述图3.4 数据流图 表3-1 数据表F1用户注册指令 F2 用户登录F3查询药品库 F4输入疾病,进行药品推荐F5输入信息,进行各种分析F6留言、回复F7生成订单F8 用户信息管理F9 订单管理F10药品库管理F11管理留言、回复记录F12修改管理员信息F13管理员登录F14采购药品 顶层数据流图3-2 顶层数据流图 0层数据流图 图3-3 0层数据流图1层数据流图用户登录购药数据流图用户登录本系统,进行数据库中用户信息的验证,验证成功即可使用购药功能,用户查看药品后进行购药,通过购物车功调用药品库存信息进行采购,然后生成订单图3-4 1层用户登录购药数据流图用户查询分析数据流图用户不用登录就可以使用分析功能,输入或者检索想要的信息,然后点击按钮触发事件,在数据库中调去相应的资料,返回给用户图3-5 1层用户查询分析数据流图管理员模块数据流图管理员登录系统是,进行数据库信息的验证,验证后返回给管理员登录成功或者登录失败信息,验证成功后就可以进行管理员信息的管理,可以修改各种信息,修改后返回给管理员修改成功或失败。图3-6 管理员模块数据流图管理员功能模块数据流图管理员登录后可以进行对用户信息的管理和药品信息的管理包括增删改查以及用户购药产生的订单管理查看和删除,和用户对药品的评论以及回复管理。图3-7管理员功能模块数据流图3.5 系统的运行需求本软件基本运行环境为Windows环境。硬件: 服务器:Tomcat 6.0工作站:PC机 软件: 操作系统: Microsoft Windows XP数 据 库:MySql 5.1 编程语言:Java设计工具:Myeclipse8.6结构:hibernate+struts4系统的结构设计和平台MVC模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。图4-1 mvcStrutsStruts框架的核心是一个灵活的控制层,它基于以下标准技术,如:Java Servlet、JavaBean、资源绑定、XML和各种Jakarta Commons包。Struts鼓励使用基于Model方法的应用框架,它是一种经典的模型试图控制器(MVC)设计范例。HibernateHibernate是一种Java语言下的对象关系映射解决方案。 它是自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。4.1系统架构详解Struts+Hibernate技术架构 健康导航系统是一个公共系统,应该具有良好的可扩展性和可维护性,并且应该易于控制和保持稳定,所以本系统采用了Struts+ Hibernate作为系统的技术架构。这些框架组合在一起具有很好的可扩展性和可维护性,这样对于一个易于动态扩展、易于维护、易于控制和稳定的公共系统来说是一个非常合适的选择。其中Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。用Hibernate框架负责从Java类到数据库表的映射(还包括从Java数据类型到MySQL数据类型的映射),实现数据的持久化能解决因底层的数据结构而发生改变而导致应用发生改变这样的问题,还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间。下面将分别介绍这些框架在健康导航系统中的应用。4.1.1 Struts框架的应用 Struts框架是当前Web开发中最为流行的设计和开发框架,借助于Struts框架,开发人员可以把主要精力集中在如何解决实际业务处理上,而不需要在页面和业务代码之间的处理上花费很多时间。与此同时,Struts框架允许开发人员根据实际的需要进行扩展和定制,从而可以更好的适应用户的需求。 Struts开发框架遵循MVC(Model-View-Controller)设计模式,这样可以将整个工程分为3个相对独立而又能协同工作的组成部分(包括模型、视图、控制器),开发人员可以从负责的页面代码、业务代码和控制流程中具体分工。Struts的组件如图4-2所示,它显示了这些组件是如何工作的。 图4-2 Struts组件Struts的ActionServlet控制导航流。其它Struts类,比如Action用来访问业务逻辑类。当ActionServlet从容器接收到一个请求,它使用URI来决定哪个Action讲用来处理请求。一个Action可以校验输入,并且访问业务层以从数据库或其它数据服务中检索信息。 输入Bean是Struts ActionForm类的子类。Action需要知道什么值被提交上来。它并不是强制每个Action都要从请求中抓取这些值,而是由ActionServlet将输入绑定到JavaBean中。通常,Struts提供一个ActionForward类,用来将一个页面的路径保存为逻辑名称。当完成业务逻辑后,Action选择并向Servlet返回一个ActionForward。Servlet然后使用保存在ActionForward对象中的路径来调用页面完成响应。所有这些细节,关于Action、ActionForm、ActionForward、ActionMapping以及其它一些东西,都在Struts-config.xml文件中定义。ActionServlet在启动时读取这个配置文件,并创建一个配置对象数据库。在运行时,Struts应用根据文件创建的配置对象,而不是文件本身。健康导航系统页面组织和控制流程采用基于MVC设计模式的Struts开发框架,这使得整个系统分为前台展示、业务流程控制和后台开发三个独立的部分。视图是JSP页面构成的,用户通过它们提供了上传信息,且模型对视图的处理结果也通过它们反映给用户;本系统中模型是Action类,其中提供了对信息的处理模型;struts.xml提供了给JSP页面分配了处理的Action。本系统应该本着低耦合来简化页面和业务代码之间的处理,降低开发的难点和复杂度,让开发过程大大简化,避免让时间花费在跳转的处理上,给出更多的时间来进行其他部分的开发,且使以后的修改和维护变得简单。基于以上的理由,struts框架是最适合本系统的设计开发。4.1.2 Hibernate框架的应用Hibernate是非常优秀、成熟的ORM(对象关系映射)开源框架。它是连接Java应用程序和关系数据库的中间件,提供了强大、高性能的Java对象和关系数据的持久化和查询功能。它对JDBC API 进行了封装,负责Java对象的持久化,在分层的软件架构中位于持久化层,封装了所有数据访问细节,使业务逻辑层可以专注于实现业务逻辑。它是一种ORM映射工具,能够建立面向对象的域模型和关系数据模型之间的映射。ORM对象-关系映射就是Java应用中的对象到关系数据库中的表的自动的持久化,使用元数据描述对象与数据库间的映射。如图2.3所示:Account Class对应Account Table,并且类中的一个属性对应表中的一个列。Account Instance 则对应表中的一条记录(图4-3中实例对应了表中的第一个记录)。图4-3 ORM对象映射关系Hibernate作用于持久化实体对象与关系型数据库之间。通过运用ORM(对象-关系映射)技术将Java应用中的对象到关系数据库中的表的自动的(和透明的)持久化,使用元数据描述对象与数据库间的映射。Hibernate持久化就是通过持久化类(PO)来实现,它与普通的Java类没有任何区别,但与Session关联起来后,就具有了持久化的能力。持久化类(PO)通过Session进行装载、保存、创建或者查询。应用程序可以对持久化实体对象进行操作,持久化对象做的任何修改都会在Hibernate Session刷新(flush)或提交事务的时候被持久化到对应数据库表中,实现从OR的转换。应用程序也可以直接对Hibernate Session接口进行操作,从而改变数据表。同时,Hibernate Session也可以读取数据库中信息,并将信息返回给持久化实体对象,完成从RO的转换。为了实现持久化的保存数据库对象,摆脱传统的数据库的麻烦连接和操作,实现数据库操作的封装,使数据库操作简明化。使用Hibernate框架来进行数据库操作的代码封装,就成了最后的选择,Hibernate在本系统中体系结构如图4-4图4-4 Hibernate体系结构在本系统中Hibernate框架定义了三种状态:瞬时、持久和分离。 在系统中使用new操作符初始化的对象不是立刻就是持久的,它们的状态是瞬时的,只要不使用就会丢失,交给垃圾回收机制来回收。把实例从瞬时状态转换为持久状态有两种方式:调用持久管理器的save()方法或者从已经存在的持久实例中创建引用。持久实例可能是通过执行查询,通过标识符查找从数据库中检索出来的实例,或者是从另一个持久实例开始导航对象图。换句话说,持久实例通常是同Session相关的,是事务的。持久实例是在事务中进行操作的它们的状态在事务结束时同数据库进行同步。当事务提交时,通过执行SQL的INSERT、UPDATE和DELETE语句把内存中的状态同步到数据库中。在Hibernate框架中,当你关闭Session 时这些实例就失去了同持久管理器的关联。我们把这些对象称为分离的,表明这些状态不再跟数据库中的状态同步,不再在Hibernate的管理下。然而,它们仍然含有持久数据(可能是稳定的)。5 系统的数据库设计 5.1 数据库表关系图5-1数据库表关系图5.2 实体属性用户实体所包含的属性图5-2用户实体属性药品实体所包含的部分主要属性图5-3药品实体主要属性订单实体所包含的属性5-4 order实体属性评论实体所包含的属性图5-5 review实体属性回复实体所包含的属性图5-6reply实体属性各种分析的实体属性图5-7疾病分析营养分析属性图5-8 食疗分析、膳食分析属性图5-9症状分析属性5.3 数据库主要的表的设计User表图5-10 user表Medicine表图5-11 medicine表Order表图5-12 order表Review表图5-13 review表Reply表图5-14 reply表6 健康导航界面设计、模块设计以及主要算法6.1界面设计以及登录模块流程图6.1.1 主界面图6-1系统主界面6.1.2 登录界面本界面是主界面有管理员登录,用户登录,注册,药品库,药品推荐,疾病分析,症状分析,膳食分析,营养分析等几个功能图6-2用户登录界面本界面是用户登录界面。本程序给用户提供系统登录功能,用户可根据自己拥有的用户名和密码进入系统,防止无关人员随意进入系统。本程序根据用户输入的用户名和密码,对其进行验证,如结果正确则进入系统,反之显示用户名或密码错误,提示其重新输入,直到输入正确或用户选择退出为止。图6-3登录失败本程序给管理员提供系统登录功能,管理员可根据自己拥有的用户名和密码进入系统,防止无关人员随意进入系统。本程序根据用户输入的用户名和密码,对其进行验证,如结果正确则进入系统,反之显示用户名或密码错误,提示其重新输入,直到输入正确为止。图6-4 管理员登录此为用户、管理员登录的流程图图6-5用户、管理员登录的流程图6.1.3 个人信息修改界面本程序给用户提供对其账号下的注册信息修改功能。用户通过登录进入个人信息管理,随时可以更新自己的注册信息(包括密码),以防止他人进入系统。本程序先登录,再输入新信息,输入正确提示密码修改成功,输入错误则返回到信息修改页面重新输入。图 6-6修改个人信息图6-7 修改个人信息流程图6.1.4 注册功能界面本程序给用户提供对其账号下的注册功能。用户通过注册个人信息,可以登录到本系统。必须填写的是姓名 密码、密码确认、年龄、联系电话、以及E-mail。登录后才能使用本系统的部分功能,不能录的话,部分功能不能使用。本模块必填的信息必须填写完成,若果有误则提示相应的错误,并要求用户再输入新信息,直到所有必要信息都填写完整才能注册成功。图6-8注册界面图6-9注册失败图6-10 注册流程图6.1.5 药品库界面以及评论界面(登录以及未登录)未登录的话用户查询药品库,不能够购买用户登录的话查询药品库,可以使用购物车功能以及留言功能未登录图6-11 用户未登录的药品库登录图6-12 用户登录后的药品库评论功能图6-13 用户登录后可以对药品留言评论6.1.6 管理员界面管理员登录后,可以进行用户信息管理,订单信息管理,药品信息管理,管理员管理。用户信息管理可以对用户信息进行修改,订单管理可以查看用户的订单以及是否付款也可以删除订单,药品信息管理可以增删改药品信息,也可以删除用户评论以及回复。图6-14管理员界面6.1.7 药品推荐以及各种分析功能界面药品推荐功能,用户不用登录就可以使用,点击药品推荐,输入疾病信息,例如感冒,即可所引导药品库并显示出所有治疗感冒的药品,给用户自己挑选。图6-15 药品推荐,输入感冒后索引出的所有治疗感冒药品各种分析功能,用户不用登录就可以使用,点击各种分析,检索自己要查询的疾病即可。图6-16 食疗分析图6-17 食疗分析6-18 症状分析图6-19 症状分析6.2 登录功能的实现本程序给用户提供系统登录功能,用户可根据自己拥有的用户名和密码进入系统,防止无关人员随意进入系统。本程序根据用户输入的用户名和密码,对其进行验证,如结果正确则进入系统,反之显示用户名或密码错误,提示其重新输入,直到输入正确或用户选择退出为止。6.2.1 输入项、输出项输入项:1用户名:字符串型,最大长度为20个字符,或10 个中文字。2密码:字符串型,最大20个字符,不允许中文。3. 触发登陆按钮事件输出项:1登陆成功:跳转到系统首页(Index.jsp).2. 登陆失败:提示帐号或密码错误,返回登陆页面(Login.jsp).6.2.2 算法 在页面点击输入用户名、密码并点击确定。然后Struts进行捕捉动作。 捕捉后通过Actionform类的参数将页面的输入信息传送到Userloginaction类中,在Userloginaction中调用UserDAO中的excutecha方法。此方法通过Hibernate中的SessionFactory获取Session。然后执行Session中的CreateQuery方法,执行HQL语句:from User u where u.password=+password+ and =+name+将获取的信息存为list,通过判断list的内容得知用户是否注册。如果判断值为T则验证成功,返回到Userloginaction中。并调用UserDAO中的ExcuteSelect方法通过Hibernate中的SessionFactory获取Session然后执行Session中的CreateQuery方法,执行HQL语句from User where name=+name+and password=+password+获取用户id存到缓存Session中。以便以后的页面调用中使用。然后返回一个参数,Struts捕捉到这个参数后跳转到相应的页面。如果判断值为F,则跳转到页面重新输入信息进行登录。6.2.3 运行以及未解决的问题 运行成功,跳转成功,但是主界面未刷新。6.3 主要功能:药品推荐药品推荐模块为本系统的主要模块,此模块分模糊查询和精确查询两部分查询模糊查询:关键字检索:在文本框中输入信息关键字进行检索精确查询:全名检索:在文本框中输入信息的全名称进行检索6.3.1 功能流程图6-20 处理流程图6.3.2 输入项、输出项 输入项:1.输入疾病名称:如,感冒 2.触发单击按钮事件 输出项:1.查询成功:返回到往信息展示主页面,输出所有查询结果项。 2.查询失败:提示“无记录!”。6.3.3 算法在页面输入信息,点击快速定位药品按钮,然后Struts进行动作捕捉。捕捉后通过Actionform类的参数将输入的信息传送到KeySelectAction类中,然后运用request中的getparameter方法进行参数的获取。然后调用MedicineDAO中的SelectKeyMedicine方法。此方法通过Hibernate中的SessionFactory获取Session。然后执行Session中的CreateQuery方法,执行HQL语句: from Medicine b where b.keyWords like %+key+% or like %+key+% or b.simpleContents like %+key+%来进行检索生成list。返回给KeySelectAction,并取出迭代方式,以表格的方式罗列出所有检索的药品。Iterator it=list.iterator();/获取迭代方式while(it.hasNext()Medicine me=(Medicine)it.next();System.out.println(me.getName()+me.getType().getTypeName();Integer page=0;Integer number=3;Integer pages=list.size()/number;if(list.size()%number!=0)pages+;6.3.4 运行以及未解决的问题 运行成功,但是布局不是很理想。界面过于简单。6.4 附加的购物车模块设计说明 用户登录后可以进行药品的采购。6.4.1 功能流程 图6-21 购物车流程图6.4.2 输入项、输出项输入项:1.购物车只有在查询、修改时有输入:2.数量(number):整型,不为空。输出项:1、药品添加成功:提示添加成功,跳转到购物车页面,以表格的形式显示添加后的药物;药品添加失败:提示添加失败,跳转到购物车页面,以表格的形式显示原始的药物。2、药品删除成功:提示删除成功,跳转到购物车页面,以表格的形式显示删除后的药物;3、药品修改成功:提示修改成功,跳转到购物车页面,以表格的形式显示修改后的药物;药品修改失败:提示修改失败,跳转到购物车页面,以表格的形式显示修改前的药物。6.4.3 算法添加药品进入购物车,点击修改按钮修改购买数量。Struts捕捉到动作。捕捉后通过Actionform类中的参数将页面的输入信息传送到UpdatanumberCartAction类中,在UpdatanumberCartAction中调用request中的getparameter方法进行获取参数。并在session中取出list。然后调用MedicineDAO中的checkMedicineNum的方法public boolean checkMedicineNum(int medicinenumber, int medicineid) Medicine medicine = selectMedicineById(medicineid);int bnum = medicine.getNumber();if (medicinenumber = bnum) return true;elsereturn false;来验证库存是否充足!并返回一个参数,Struts捕捉到这个参数后跳转到相应的页面。点击删除按钮删除选定的药品。Struts进行动作的捕捉。捕捉后通过Actionform类中的参数将信息传送到DeleteOrderItemCartAction类中,在DeleteOrderItemCartAction类中调用request中的getparameter方法进行获取参数。并在session中调用list,然后再判断购物车是否为空,如果不为空则计算总价格如果为空,则返回界面。6.4.4 运行以及尚未解决的问题 运行成功,但是有时候会抛出异常。7 系统测试软件测试是高质量、高可靠性软件的重要保证。在软件系统的开发中,软件测试不仅是软件生命周期中的一个独立的阶段,在需求分析、软件设计和编码阶段,都需要对这些阶段的软件产品,包括需求规格说明书。软件架构、概要设计和详细设计说明书进行测试。软件测试已经形成了完整的、系统的测试方法,并且有众多的手工和自动化测试工具支持这些方法。通过评审文档、阅读代码等方式测试软件称为静态测试,通过运行程序测试软件称为动态测试。在动态测试中,通常采用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码中的错误。在对本导航系统的测试中主要采用了黑盒测试的方法。7.1 黑盒测试黑盒测试也叫功能测试,目的是发现软件需求或者设计规格说明书中的错误。软件是为完成特定的功能而开发的。需求分析阶段得到的需求规格说明书对软件的功能作了完整的描述。软件设计阶段将整个软件系统划分为多个模块,每个模块实现一个或多个功能。因此软件测试需要验证每个模块是否能够完成自己的功能,真个软件系统是否能够满足用户的需要。黑盒测试将被测试的程序看成一个打不开的盒子,测试人员无法看到其中的代码,只能看到软件或模块功能的描述,黑盒测试可用来验证软件或模块功能是否得到实现。7.1.1 测试种类用等价划分法进行输入有效性测试主要测试程序中各种输入数据的语法是否符合其规范定义,即是否有效。用边界值分析法对输入有效性测试进行补充在上面的基础上,使输入为边界条件进行测试。用错误推测法进行功能健壮性测试主要测试程序中各种功能性操作是否正确。7.1.2 用例测试表 7-1 等价类输入条件有效等价类无效等价类注册年龄注册模块1-110的数字非数字字符注册电话注册模块8位或者11位数字非8位或11位的非数字字符疾病分析分析模块感冒、胃病等中文字符非中文字符表7-2 输入测试表编号测试 用例是否有效1注册年龄时填入“111和aaa”无效2注册年龄时填入“56”有效3注册电话时填入“11111111或1111111111111”有效4注册电话时填入“abc或111”无效5在疾病分析时填入“感冒、胃病”有效6在疾病分析时填入“13、ad”无效7.1.3 功能测试通过表格的形式对所测试的模块进行了测试的描述表7-3 分析模块功能测试表编号1目的:测试分析功能测试程序:打开编号1输入/选择预计输出测试结果1-1疾病分析感冒感冒特征成功1-2 症状分析发烧、咳嗽感冒成功1-3 食疗分析感冒在数据库调出食疗方法成功1-4 膳食分析感冒在数据库调出膳食建议成功1-5 营养分析感冒在数据中调出营养分析成功表7-4 登录模块功能测试表编号2目的:测试登录功能测试程序:打开编号2输入预计输出测试结果2-001输入正确的账号账号成功2-002输入正确的密码成功2-003输入正确的验证码验证码成功2-004点击“登录”按钮登录成功页面跳转成功表7-5 购物车模块功能测试表编号3目的:测试购物车功能测试程序:打开编号3输入预计输出测试结果3-001在药品一种界面点击购买跳转购物车成功3-002修改购买数量可控成功3-003继续购买跳转回药品库成功3-004结算您的账号资金不去成功3-005清空购物车全部清

温馨提示

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

评论

0/150

提交评论