首页 > 分享 > 基于java的流浪宠物免费领养系统的设计与实现

基于java的流浪宠物免费领养系统的设计与实现

基于java的流浪宠物免费领养系统的设计与实现,基于,java,流浪,宠物,免费,领养,系统,设计,实现摘要随着人们生活水平的不断提高,人们不在满足去物质生活,越来越多的人把生活的重点放在了提高精神境界和追求精神享受。与此同时,互联网技术的飞速发展,使得这一类人可以通过互联网技术来寻找精神层面的满嘴。领养宠物已经成为当下炙手可热的可以让人们找到心灵寄托的一种方式,将互联网技术和领养宠物两者结合,形成了一种新型的网络电子商务,促进了宠物行业的飞速发展,还帮忙解决了流浪宠物过多的问题,帮助了很多爱心人士,让他们能够足不出户就在家领养到自己心仪的宠物。本系统主要是基于B/S结构的流浪宠物领养系统,运用JAVA语言,系统主要使用了MySOL作为数据库,myeclipse作为编程工具,系统实现的主要功能有:宠物品种管理、流浪宠物信息管理、宠物健康信息管理、商品类别管理、领养记录管理等功能,其中包含了一整套从宠物的筛选到领养以及宠物管理的过程,页面简洁明了,功能明确,为广大爱心人士提供了一个领养平台。关键词:B/S流浪宠物JAVAABSTRACTWith the continuous improvement of peoples living standards, people are not satisfied with the material life, more and more people focus on the life of the spiritual realm and the pursuit of spiritual enjoyment. At the same time, the rapid development of Internet technology, makes this kind of people can use the Internet technology to search for spiritual mouth. Adopt a pet has become the current hot that people can find a way of spiritual sustenance, the Internet technology and the combination of pet, forming a network of e-commerce model, to promote the rapid development of the pet industry, but also help solve the problem of too many stray pets, help a lot of people love, let they can stay at home at home to their favorite pet adoption.The system is mainly to pet adoption system based on B/S structure, using JAVA language, the system mainly uses MySOL as the database, MyEclipse as a programming tool, the main functions of the system are: pet breeding management, pet information management, pet health information management, category management, adoption records management and other functions, including a set of screening to and from pet adoption process of pet management, page concise, clear function, provides a platform for the majority of people love.Key words: B/SStray petJAVA大连科技学院2017届本科生毕业设计(论文)1 前言1.1 课题的来源及意义随着社会的进步,面对日益繁重的工作,压力越来越大,人们用来陪伴亲人的时间越来越少,逐渐开始寻找宠物来作为一种精神寄托,随着养宠物的家庭越来越多,与之相关的宠物用品也越来越得到重视和关注。与此同时随着网络技术的日益发展,各式各样的网站已经慢慢融入到我们的日常生活,越来越多的公司也建立了自己的门户网站。用于满足各式各样的需求。搭建这个系统的初衷是为了提供一个平台,通过这个平台可以让那些有爱心,有能力的人来领养流浪猫狗,也可以帮助那些无心或无力饲养自己宠物的人,帮助他们的宠物找到一个新家。这既可以减少街头流浪猫狗日益增多的情况,也可以给那些孤独的人心灵慰藉。网购已经逐渐深入人心,在这个平台上,还能销售各种宠物粮食或者宠物的生活用品,能减少用户购买东西的时间,也能从这个平台获取利润。该系统可以找一些合作商,比如宠物医院,系统帮助她们提供知名度,医院能帮助流浪宠物免费治疗,从而能近一步节省开支。1.2 国内外研究现状无论是国内还是国外大多数流浪动物都聚集在城市的各大公园、学校、以及居民小区,这些地方大都无人干涉但是偶尔又有人喂养,这为流浪宠物提供了客观上的生存条件,导致流量动物会在无人看管的情况下会大量繁殖,对周围环境及其不利。流浪动物自身生存得不到保障,而且还会和现代社会的管理产生矛盾,流浪动物攻击人类事件频发,干涉交通安全,以及导致一些传染病感染隐患。很多有心人会暂时的领回家照顾,然后送回喜欢宠物的人,给它们一个家。但是这种做法的地区局限性太大,还是有很多的流浪猫狗找不到人收养。即使在这个信息技术发达的时代,像这种流浪宠物的系统市场上还是没有的。现在越来越多人们喜欢宠物,也有很多人通过养宠物得到慰藉,但是她们只能通过购买方式的到宠物,这种方式不能减少流浪动物的数量。还有一些人老年人无人陪伴,需要动物来寄托自己的孤独,但是可能因为没有钱无法养动物。然后开发了通过平台领养的方式可以有效的减少流浪动物的产生,从而减少上述一些问题。1.3 研究内容及特点本课题主要采用了Jsp-servlet的框架完成了所有功能,主要功能有宠物信息管理,商品信息管理,订单管理,领养记录管理,个人信息管理,合作商管理等功能。该系统的主要人群是商家与爱心人士,该平台为他们提供了一个实时交互的渠道。在系统构建中把所有相关的信息设计为一个类,相当于把所有现实世界的事物封装成对象,对象之间的交互来实现系统的功能。利用这种面向对象思想开发的系统容易维护,容易扩展,由于对象与对象继承关系的存在,即使需求改变,也只需要在局部进行调整或者继续开发。也可以提高软件的开发效率和质量,降低开发人员的成本。1.4 论文组织结构第1章主要介绍了流浪宠物免费领养系统的课题研究意义,国内外现状以及研究内容及特点。第2章对流浪宠物免费领养系统的开发进行了可行性分析,并对介绍系统的功能、运行环境以及关键技术。第3章对流浪宠物免费领养系统的开发进行了需求分析,绘制了业务流程图、数据流图,并对数据流图写出所对应的数据字典。第4章对流浪宠物免费领养系统进行了概要设计,绘制功能结构图,并设计数据库的概念结构、逻辑结构以及物理结构。第5章对流浪宠物免费领养系统进行详细设计,画出每个模块的流程图以及截取系统实现图。第6章对系统进行了测试。最后对系统进行了总结,以及对老师的感谢。2 可行性研究21 可行性分析可行性分析就是调查研究从而进行分析这个系统是否值得开发,分别从技术可行性、经济可行性、社会可行性这三个角度进行分析,最后根据开发人员对市场进行的调查结果写成可行性分析报告,来反映它们对开发系统的看法。2.1.1 技术可行性主要采用了jsp-servlet的框架,连接mysql数据库完成了这个系统。主要使用Java这门编程语言,Java语言的思想是面向对象,具有着卓越的通用性、高效性和可移植性的优点。采用了JDBC连接数据库,它是为数据库提供了一个访问,这种是比较基础的方式。主要有加载JDBC驱动,提供JDBC连接的url,建立连接,创建语句,执行语句,关闭连接这几个步骤。这些技术是开发中最基础的知识,入门简单,容易上手。2.1.2 经济可行性流浪宠物管理系统属于半公益性半盈利性项目,在帮助流浪宠物的同时,利用这种知名度可以在该系统上销售相关东西,知名度可以打通市场,让人们广大关注这个系统,未来的收益将不可预估,有了一定的知名度,后期可以找一些合作商,优先找宠物医院,流浪宠物总有生老病死,医疗费会是一个庞大的开支,跟宠物医院合作就能帮助解决这个问题,系统帮助医院提高知名度,医院提供免费治疗,从而互惠互利。该系统属于小型网站,需要的开发人员以及后期的管理人员的需要数量很小,人力物力的支出有限,利润将会远大于支出。2.1.3 社会可行性被主人遗弃的宠物在野外会快速繁殖,导致大量的流浪动物产生,影响了社会稳定性,存在一定的隐患。流浪宠物管理系统有着极大的意义,能帮助社会解决这个问题,让每个流浪宠物找到属于自己的家,也能帮助人们找到陪伴。2.2 系统功能概述流浪宠物免费领养系统的主要功能是宠物领养这个功能,有意愿收养宠物的无需花钱购买,直接可以在这个平台上领养到自己喜欢的宠物。该系统除了宠物领养模板还有商品销售一块,主要销售关于宠物使用的相关商品,比如猫粮,猫砂,狗粮等东西,在这里用户可以买到关于宠物需要的任何东西,商品的显示有各种详细信息还有商品的图片,用户可以安心购买,当遇到用户喜欢的东西时,可以直接下单,跟据用户填写的信息送货上门,也可以暂时添加到购物车,稍后点击购物车商品在下单,购物车的东西也可以删除。该系统有个模块是用于显示合作商,系统会找一个合作商,比如宠物医院,宠物医院免费提供流浪宠物的治疗,作为回报,系统会帮助合作商宣传并且进行推广。该系统还有一个消息模块,任何注册过或者为注册的用户,对该系统有任何疑问或者要求,都可以通过该方式发送消息,管理员看到后会给用户回复邮件。该系统还有一个后台管理模块,主要是管理员管理这个系统的信息,主要有宠物信息管理,宠物健康信息管理,商品类别管理,商品信息管理,订单管理,领养审核,合作商管理等功能。管理员可以添加、修改或者删除流浪宠物信息,也可以根据流浪宠物一段时间的健康信息,给对应的宠物填写健康信息,放心领养的人能看到重新的具体情况。管理员可以添加或者删除商品类别,用户就可以根据商品类别快速的寻找到自己需要的商品。在用户购买错商品后,可以直接选择退款,管理员取消订单,那这个订单就不成立。在用户填写宠物领养申请之后,管理员根据他们的领养申请进行审核,适合领养的审核通过,不适合的审核不通过。管理员可以添加、修改或者删除合作商,便于用户看到系统真实的合作商。2.3 系统运行环境需求操作系统:Microsoft Windows 7 64位数据库:MySQL5.6系统开发工具:MyEcplise10软件开发语言:Java2.4 系统关键技术简介2.4.1 系统开发语言面向对象程序设计是当今程序设计的主流,而Java是完全面向对象。该系统采用的就是Java编程语言。该技术入门简单,拥有卓越的高效性、通用性、平台移植性以及安全性这几大优点。Java的面向对象的思想可以通过这几个关键字来概括:继承、重写/重载、多态、抽象类、封装、接口、包。前端语言采用的是Jsp,中文名叫java服务器页面,它是一个简化的Servlet设计,Jsp技术就是是在html页面上中插入Jsp标记以及Java程序代码,最终变成了Jsp文件。用Jsp技术开发的网站项目可以在window操作系统上运行,也能在Linux等其他操作系统上运行。2.4.2 系统数据库技术MySql是使用比较多的也是在 web项目开发中最好的关联数据库管理系统应用软件之一。MySql使用标准的sql数据语言形式。MySql 软件具有着其速度快、体积小以及成本低几大有点,特别是开源这一特点,中小型公司进行web项目开发都会选择 MySql 作为数据库。Navicat for MySQL 是一款强大的 MySql 数据库管理工具,它为程序开发人员提供了一套非常强大的尖端工具,而且对于新用户来说学习起来非常简单。Navicat for MySQL 基于Windows操作系统,特意为 MySQL 量身订作,提供类似于 MySQL 的管理界面工具。这个软件的出现,帮助了很多程序员以及数据库管理员解放了大脑,并且降低了项目开发的成本,以及提高了程序员的开发效率。 2.4.3 系统框架本系统采用MVC框架。MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。3 需求分析3.1 需求分析的任务需求分析是指对需要解决的每个问题进行详细分析,明白问题的要求,其中包括需要输入哪些数据,从而要得到什么样的结果,最后应该输出什么东西。换句话说,在软件工程这里面需求分析就是要明确计算机要做什么,最终要达到什么效果。在每个系统开发中需求分析都是必须要进行的事情。需求分析的任务是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求然后在此基础上确定新系统的功能。 3.2 业务流程图业务流程图就是用一些规定的符号及连线来表示某个具体业务处理过程,就是一种物理模型,系统的业务流程图如图3-1所示。图3-1业务流程图3.3 数据流图数据流图是用于表达软件模型的其中一种方法,也是结构化系统分析方法的主要表达工具。它是从数据的传递以及加工的角度,用图形来表达系统的逻辑功能,数据在系统内部的逻辑变换过程以及逻辑流向。流浪宠物免费领养系统顶层数据流图如图3-2所示:图3-2 流浪宠物免费领养系统的顶层DFD流浪宠物免费领养系统一层数据流图如图3-3所示:图3-3 流浪宠物免费领养系统的一层DFD流浪宠物免费领养系统用户第二层数据流图如图3-4所示:图3-4 流浪宠物免费领养系统用户二层DFD流浪宠物免费领养系统管理员第二层数据流图如图3-5所示:图3-5 流浪宠物免费领养系统管理员二层DFD3.4 数据字典数据字典是指对数据的数据项、数据结构、数据流、数据存储等进行定义和描述,主要目的就是对数据流程图中的各个元素做出详细说明。3.4.1 数据元素数据元素是以数据为基本单位,它又叫做结点或记录。有时,一个数据元素可由无数个数据项组成。但是数据项则是数据不可分割的最小单位。1.管理员数据元素。数据元素名称:管理员别名:admin说明:软件使用者2.用户数据元素数据元素名称:用户别名:user说明:软件使用者3.4.2 数据流数据流主要分为输入流、输出流这两类。输入流只可以读不可以写,则输出流却只可以写不可以读。在程序中使用输入流读出数据,输入流写入数据,就好像数据流入到程序又从程序中流出。由于篇幅,下面只举出几个重要的数据流,其它省略。1.购物车信息数据流 数据流名称:购物车信息说明:由用户产生,包含商品、商品数量等内容数据流来源:用户数据流去向:P2.22.订单信息数据流数据流名称:订单信息说明:由用户产生,包含订单号、商品、商品数量、总价、订单状态等内容数据流来源:用户数据流去向:P2.33.消息信息数据流数据流名称:消息信息说明:由用户产生,包含姓名、邮箱、内容、创建时间等内容数据流来源:用户数据流去向:P2.54.领养信息数据流数据流名称:领养信息说明:由用户产生,包含宠物、用户、申请状态、申请时间等数据流来源:用户数据流去向:P2.65.用户信息数据流数据流名称:用户信息说明:由用户产生,包含用户名、密码、角色、手机号、性别、姓名、身份证、详细地址等信息数据流来源:用户数据流去向:P2.73.4.3 数据存储数据存储是数据流在数据处理过程中需要查寻的信息或在数据处理过程中会产生的临时文件。由于篇幅,下面只举出几个重要的数据存储,其它省略。1.购物车信息表数据存储数据存储名称:购物车信息表编号:D13流入的数据流:购物车信息组成:购物车编号、用户信息、商品、商品数量2.订单信息表数据存储数据存储名称:订单信息表编号:D12流入的数据流:订单信息组成:订单编号、订单号、商品、商品数量、总价、用户、订单状态、创建时间3.消息信息表数据存储数据存储名称:消息信息表编号:D6流入的数据流:消息信息表组成:消息编号、姓名、邮箱、内容、创建时间、阅读状态4.领养记录信息表数据存储数据存储名称:领养记录信息表编号:D7流入的数据流:领养信息组成:领养编号、宠物、用户、审核状态、申请时间、删除标记5.用户信息表数据存储数据存储名称:用户信息表编号:D11流入的数据流:用户信息组成:用户名、密码、角色、手机号、性别、姓名、身份证、详细地址、删除标记3.4.4 数据处理数据处理是数据流图中对功能块的说明,在数据字典中只需要描述数据处理过程中的说明性信息。由于篇幅,下面只举出几个重要的数据处理,其它省略。1.数据处理P2.2处理过程名称:购物车管理编号:P2.2说明:用户加入商品输入数据流:购物车信息输出数据流:购物车信息2.数据处理P2.3处理过程名称:订单管理编号:P2.3说明:用户下单输入数据流:订单信息输出数据流:订单信息3.数据处理P2.5处理过程名称:发送消息编号:P2.5说明:用户给管理员发送消息输入数据流:消息信息输出数据流:消息信息4.数据处理P2.6处理过程名称:领养申请编号:P2.6说明:用户领养宠物输入数据流:领养信息输出数据流:领养信息5.数据处理P2.7处理过程名称:注册编号:P2.7说明:用户注册帐号输入数据流:用户信息输出数据流:用户信息4 概要设计4.1功能结构图该系统的主要群体分为两类:用户以及管理员,再从系统的需求分析来看,系统主要能分成后台管理模块和功能性模块,后台功能主要是对商品、商品类型、流浪宠物信息、流浪宠物健康信息以及合作商的增删改查,还有对查看消息,取消订单以及审核领养记录。功能性模块主要有用户注册,对个人信息进行修改,往购物车加入商品,删除购物车里的商品,下单,可以对订单进行退款,领养申请以及发送消息。系统的整体功能模块图如图4-1所示。图4-1 功能结构图4.2 数据库设计4.2.1 数据库设计的概念数据库设计是指在一个给定的应用环境,创建最好的数据库模式,建立数据库以及它的应用系统,让它可以有效地存储数据,并且满足用户的应用需求。数据库设计就是建立数据库以及它的应用系统的技术,是信息系统建设和开发的核心技术。因为数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得格外复杂,所以数据库的最佳设计不可能一蹴而就,而是一种“反复探寻,逐步求精”的过程,也就是规划数据库中的数据对象和这些数据对象之间关系的过程。4.2.2 数据库设计的步骤(1)需求分析阶段:需求收集和分析,得到数据字典和数据流图。 (2)概念结构设计阶段:对用户需求综合、归纳与抽象,形成概念模型,用实体-联系图表示。(3)逻辑结构设计阶段:将概念结构转换为某个数据库管理系统所支持的数据模型。(4) 数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构。(5)数据库实施阶段:建立数据库,编制与调试应用程序,组织数据入库,程序试运行。(6)数据库运行和维护阶段:对数据库系统进行评价、调整与修改4.2.3 数据库的概念结构设计在早期的数据库设计,在需求分析阶段中,就可以直接进行逻辑结构设计。但是由于此时不仅要考虑现实世界信息的联系和特征,又要满足特定的数据库系统的约束要求,所以对于客观世界的描述会受到一定的限制。在此同时,由于数据库设计时要同时考虑非常多方面的问题,也让数据库设计的工作变得非常复杂。1976年P.P.S.Chen提出在数据库的逻辑结构设计之前先设计出数据库的概念模型,并提出了数据库设计的实体-联系方法。这种方法可能不包括很深的理论,但却提供了一个有效、简单的方法,目前成为数据库概念结构设计中通用的工具。(1)领养记录实体如图4-2所示:图4-2 领养记录实体图(2)宠物健康实体如图4-3所示:图4-3 宠物健康实体图(3)宠物实体如图4-4所示:图4-4 宠物实体图(4)购物车实体如图4-5所示:图4-5 购物车实体图(5)商品实体如图4-6所示:图4-6 商品实体图(6)商品类型实体如图4-7所示:图4-7 商品类型实体图(7)消息实体如图4-8所示:图4-8 消息实体图(8)合作商实体如图4-9所示:图4-9 合作商实体图(9)订单实体如图4-10所示:图4-10 订单实体图(10)用户实体如图4-11所示:图4-11 用户实体图(11)系统整体的实体联系图如图4-12所示:图4-12 E-R实体联系图4.2.4 数据库的逻辑结构设计数据库的逻辑结构设计的主要任务将基本实体-联系图转换为与选用数据库管理系统产品所支持的数据模型与之相符合的逻辑结构。数据库的逻辑结构设计的过程:先将概念结构转换为现有数据库管理系统支持的层次、网状或关系模型中的某一种数据模型;然后从性能以及功能的要求上对转换出来的模型进行评论,看它是否可以满足各种用户的要求;然后在对数据模型进行优化。最后设计出的数据表如下所示:(1)领养记录(领养记录编号,宠物编号,用户编号,审核状态,申请时间)(2)宠物健康信息(宠物健康信息编号,宠物编号,描述,创建时间)(3)宠物信息(宠物编号,类型,品种,名字,特征,年龄,性别,介绍,照片,领养状态,创建时间,删除标识)(4)购物车(购物车编号,用户编号,商品编号,商品数量)(5)商品信息(商品编号,商品名称,商品类型,净重量,原价,折后价,描述,图片,出产地,删除标识)(6)商品类型(商品类型编号,商品名称)(7)消息(消息编号,姓名,邮箱,内容,创建时间,阅读状态)(8)合作商(合作商编号,名称,地址,联系电话,介绍,图片)(9)订单(订单编号,订单号,商品编号,商品数量,总价,用户编号,订单状态,创建时间)(10)用户信息(用户编号,用户名,密码,角色,手机号,性别,姓名,收货地址,身份证号)4.2.5 数据库的物理结构设计设计数据库的物理结构主要是根据数据库的逻辑结构来选定RDBMS,并设计和实施数据库的存储结构、存取方式等。(1)表领养记录:该表用于保存领养记录。表4-1 adopt_record字段名数据类型是否为空是否为主键是否为外键说明adoptIdVarchar(36)NoYesNo领养记录编号animalIdVarchar(36)NoNoYes宠物编号userIdVarchar(36)NoNoYes用户编号checkFlagIntNoNoNo审核状态applyDatedatetimeNoNoNo申请时间(2)表animal_health:该表用于保存宠物健康信息。表4-2 animal_health字段名数据类型是否为空是否为主键是否为外键说明animalHealthIdVarchar(36)NoYesNo健康信息编号animalIdVarchar(36)NoNoYes 宠物编号descriptiontextNoNoNo 描述createDatedatetimeNoNoNo创建日期(3)表animal_information:该表用于保存宠物信息。表4-3 animal_information字段名数据类型是否为空是否为主键是否为外键说明animalIdVarchar(36)NoYesNo宠物编号typeIdIntNoNoNo 类型varietyVarchar(15)NoNoNo 品种nameVarchar(15)NoNoNo名字featuretextNoNoNo特征ageIntNoNoNo年龄gendercharNoNoNo性别introductiontextNoNoNo介绍imageVarchar(255)NoNoNo照片adoptFlagIntNoNoNo领养状态createDatedatetimeNoNoNo创建日期deleteFlagIntNoNoNo删除标识(4)表cart_information:该表用于保存购物车信息。表4-4 cart_information字段名数据类型是否为空是否为主键是否为外键说明cartIdVarchar(36)NoYesNo购物车编号userIdVarchar(36)NoNoYes 用户编号goodsIdVarchar(36)NoNoYes 商品编号goodsNumberIntNoNoNo商品数量(5)表goods_information:该表用于保存商品信息。表4-5 goods_information字段名数据类型是否为空是否为主键是否为外键说明goodsIdVarchar(36)NoYesNo商品编号goodsNameVarchar(50)NoNoNo商品名称goodsTypeIdVarchar(36)NoNoYes商品类型编号weightdoubleNoNoNo 净重量pricedoubleNoNoNo 原价discountdoubleNoNoNo折扣价descriptionTextNoNoNo 描述imageVarchar(255)NoNoNo 图片originVarchar(10)NoNoNo出产地deleteFlagIntNoNoNo删除标识(6)表goods_type:该表用于保存商品类型信息。表4-6 goods_type字段名数据类型是否为空是否为主键是否为外键说明goodsTypeIdVarchar(36)NoYesNo商品类型编号nameVarchar(10)NoNoNo 类型名称(7)表message_manage:该表用于保存消息。表4-7 message_manage字段名数据类型是否为空是否为主键是否为外键说明messageIdVarchar(36)NoYesNo消息编号nameVarchar(10)NoNoNo 姓名emailVarchar(20)NoNoNo邮箱messageTextNoNoNo消息内容createDatedatetimeNoNoNo创建日期readFlagIntNoNoNo阅读状态(8)表parter_information:该表用于保存合作商的信息。表4-8 parter_information字段名数据类型是否为空是否为主键是否为外键说明parterIdVarchar(36)NoYesNo 合作人编号nameVarchar(30)NoNoNo姓名addressVarchar(50)NoNoNo地址telphonebigintNoNoNo 电话introductionTextNoNoNo描述imageVarchar(255)NoNoNo图片(9)表sale_order:该表用于保存订单信息。表4-9 sale_order字段名数据类型是否为空是否为主键是否为外键说明orderIdVarchar(36)NoYesNo订单编号orderNumberVarchar(14)NoNoNo 订单号goodsIdVarchar(36)NoNoYes商品编号goodsNumberIntNoNoNo商品数量totaldoubleNoNoNo总价userIdVarchar(36)NoNoYes用户编号orderFlagIntNoNoNo订单状态createDatedatetimeNoNoNo创建日期(10)表user_information:该表用于保存用户信息。表4-10 user_information字段名数据类型是否为空是否为主键是否为外键说明userIdVarchar(36)NoYesNo用户编号usernameVarcher(10)NoNoNo 用户名passwordVarchar(15)NoNoNo 密码roleIdIntNoNoNo 角色telphonebigintNoNoNo 电话gendercharNoNoNo性别realnameVarchar(10)NoNoNo姓名detailAddressVarchar(200)NoNoNo收获地址idCardVarchar(18)NoNoNo身份证号5 详细设计与实现5.1 详细设计的基本任务详细设计主要是指对软件功能模块过程中的设计。其主要的任务是有两个:第一,对总体设计产生的功能性模块进行过程描述,第二,开发一个可以直接转换成程序代码的软件表示。详细设计主要用到三种工具来描述程序的处理过程。分别为图形工具、表格工具和语言工具。图形工具最为广泛使用的是流程图。它有着算法方便,画图灵活以及直观的优点。表格工具主要是描述过程的细节,通过一张表格来列出所以的条件和可能。语言工具主要被使用的是伪码和PDL。5.2 系统实现5.2.1 消息的实现消息模块是用于用户的信息反馈,对于不满意的用户可通过该渠道给发送消息,管理员根据这个进行改进系统,用户也可以在此处提出问题。在发送消息页面,需要输入用户名、邮箱和内容,填写完信息,点击发送,页面通过form提交表单传到后台,执行sql语句。具体实现代码和图如下所示:publicint addMessage(Map map) StringBuffer sql = new StringBuffer();sql.append(insert into message_manage value(?,?,?,?,?,?);Date date = new Date();Objectparams=UUID.randomUUID()+,map.get(name),map.get(email),map.get(message),date.toLocaleString(),0;return tool.executeUpdate(sql.toString(), params);图5-1 发送消息流程图图5-2 消息界面5.2.2 领养记录模块的实现领养记录模块是用于领养流浪宠物所生成的记录的模块。用户有想养宠物的意愿。可以浏览该系统所有的流浪宠物,对于想领养的流浪宠物,点击申请,管理员看到领养申请,审核成功后即可。代码实现中根据宠物Id查询出动物的详细信息以及它的健康信息,然后显示在动物详情的页面上,这个页面有一个申请领养按钮,这个按钮是个input框,点击申请领养按钮,把宠物Id传到后台,在获取登录者的Id,添加到领养记录表中。Js代码和图如下所示:$(document).ready(function() $(#applyAdopt).click(function()var animalId = $(#animalId).val();if(confirm(确定申请领养?)window.location.href=AdoptServlet?method=apply&animalId=+animalId;););图5-3 领养记录模块流程图图5-4 领养记录模块申请界面图5-5 领养记录模块列表界面5.2.3 订单模块的实现订单模块主要是用户购买商品生成的记录。在这里能看到所有购买的商品,以及订单的状态,对于买完后悔的商品,用户点击退款,管理员点击取消订单,这个订单就彻底取消了。代码实现中点击立即购买,根据点击立即购买按钮的Id触发js,获取该商品的Id,商品的价格,选择的商品的数量,直接在js中计算出总价,然后用传给后台添加的数据库中。具体代码实现和图如下所示:$(#buyGoods).click(function()var goodsNumber = $(#goodsNumber).val();var goodsId = $(#goodsId).val();var discount = $(#discount).val();var total = goodsNumber*discount;if(confirm(确定购买吗?)window.location.href=OrderServlet?method=buy&goodsId=+$(#goodsId).val()+&goodsNumber=+$(#goodsNumber).val()+&goodsNumber=+$(#goodsNumber).val()+&total+total;);图5-6 购买流程图图5-7 订单模块列表界面5.2.4 购物车模块的实现购物车模块适用于用户暂时存放想要购买东西的商品,在购物车里面可以看到曾经添加的所有商品,不想要这个商品可以直接从这个购物车中删除,想要查找购物车中的某一个商品,直接输入关键字就能搜索。购物车列表显示,代码中先查询出该用户购物车里所有商品,把每个商品信息存放在商品对象里,然后把每个对象都放在list里面,通过request设置属性,让jsp页面获取list,页面用forEach标签循环list,获取每个商品的参数。具体代码实现和图如下所示:publicvoid list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOExceptionMap map = new HashMap();HttpSession session = req.getSession(true);User user = (User)session.getAttribute(user);map.put(userId, user.getUserId();List cartList = cartService.listCart(map);req.setAttribute(cartList, cartList);req.getRequestDispatcher(cart_user.jsp).forward(req,resp);$status.count $l.goodsName $l.discount $l.goodsNumber 删除图5-8 加入购物车流程图图5-9 购物车模块列表界面图5-10 购物车模块添加界面5.2.5 登录界面的实现系统启动之后,输入网址首先显示的是登录页面,输入帐号、密码,选择角色,系统就能判断帐号或密码是否正确,如果登录失败,系统会自动返回登录界面并且提示用户名或者密码错误,如果登录成功,管理员会进入后台管理界面,用户会进入系统首页。具体代码实现和图如下所示:Map map = new HashMap(); map.put(username, username);map.put(password, password);map.put(roleId, Integer.parseInt(roleId);boolean flag = loginService.login(map);if(flag)User user = loginService.queryUser(map);session.setAttribute(user, user);if(roleId.equals(1)List goodsTypeList = goodsTypeService.listGoodsType();session.setAttribute(goodsTypeList, goodsTypeList);req.getRequestDispatcher(welcome.jsp).forward(req,resp);elseif(roleId.equals(2)List messageListNoRead = messageService.listMessageByNoRead();session.setAttribute(messageListNoRead, messageListNoRead);req.getRequestDispatcher(index.jsp).forward(req,resp);elsereq.setAttribute(erro, 用户名或密码错误!);req.getRequestDispatcher(login.jsp).forward(req, resp);图5-11 登录界面图5-12 登录流程图6 系统测试6.1 测试概述软件测试是软件开发中的最后一阶段,其目的是通过测试来发现一些可以避免的风险,并且通过这种测试来降低所存在的风险,以及检验它是否满足当初所规定的需求和明白实际出来的结果与当初预计结果之间的差别。软件测试根据不同角度划可以分成不同方法,根据软件内部结构和实现技术的角度可以分为黑盒测试和白盒测试;根据执行程序的角度可以分为静态测试和动态测试;根据软件开发过程的角度可以分为单元测试、集成测试、确认测试、系统测试以及验收测试。本文采用黑盒测试进行,系统测试通过,能够正常运行。黑盒测试也称功能测试,是测试者把测试对象看作一个黑盒子,不考虑程序内部的逻辑结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试的优点:对较大的代码单元来说,黑盒测试的效率比白盒测试高;测试人员不需要了解实现得细节,包括特定的编程语言;测试人员和编程人员是相互独立的;从用户的角度进行测试,很容易被接受和理解;有助于暴露任何与规格不一致或者歧异的地方;测试用例可以在规格完成后马上进行。下面选取部分功能进行测试加以说明。6.2 测试效果合作商模块主要是测试添加合作商时输入的数据是否符合规则,不输入数据的情况下,点击确认按钮自动会提示请输入合作商,如果其中有一项内容没有输入就会出现其他提示,直到所有的输入框都输入了数据才能添加成功。表6-1是本系统合作商模块测试用例,测试结果跟预期结果一致。表6-1 合作商模块测试用例功能特性合作商模块测试用例测试目的验证输入信息是否有效测试内容数据期望结果实际结果测试状态1无数据输入显示提示信息“请输入合作商名称!”显示提示信息“请输入合作商名称!”与期望结果相同2合作商名称:大连宠物医院显示提示信息“请输入合作商地址!”显示提示信息“请输入合作商地址!”与期望结果相同3合作商名称:大连宠物医院,合作商地址:辽宁省大连市学前路23号显示提示信息“请输入联系电话!”显示提示信息“请输入联系电话!”与期望结果相同4合作商名称:大连宠物医院,合作商地址:辽宁省大连市学前路23号,联系电话:13861679227显示提示信息“请输入介绍!”显示提示信息“请输入介绍!”与期望结果相同5合作商名称:大连宠物医院,合作商地址:辽宁省大连市学前路23号,合作商联系电话:13861679227,介绍:真爱每一只动物!显示提示信息“请选择封面!”显示提示信息“请选择封面!”与期望结果相同6合作商名称:大连宠物医院,合作商地址:辽宁省大连市学前路23号,联系电话:13861679227,介绍:真爱每一只动物!合作商封面:1.png跳转到另一个页面跳转到另一个页面与期望结果相同(1)无数据输入,显示效果如图6-1:图6-1 测试结果页面图(1)(2) 输入合作商名称:大连宠物医院,显示效果图如图6-2:图6-2 测试结果页面图(2)(3)合作商名称:大连宠物医院,合作商地址:辽宁省大连市学前路23号,显示效果图如图6-3:图6-3 测试结果页面图(3)(4)合作商名称:大连宠物医院,合作商地址:辽宁省大连市学前路23号,联系电话:13861679227,显示效果如图6-4:图6-4 测试结果页面图(4)(5)合作商名称:大连宠物医院,合作商地址:辽宁省大连市学前路23号,

收藏

相关知识

基于java的流浪宠物免费领养系统的设计与实现
毕业设计:基于java的宠物领养系统设计与实现
【开题报告】基于java的流浪之家动物领养网站的设计与开发
基于ssm+vue基于Vue技术的流浪动物管理系统的设计与实现【开题+程序+论文】
毕业设计:基于java的宠物管理系统设计与实现
springboot179基于javaweb的流浪宠物管理系统的设计与实现
基于Java+MySQL+SpringBoot的流浪宠物管理系统的设计与实现
基于ssm+vue技术的宠物领养系统设计与实现【开题+程序+论文】
基于宠物领养系统的设计与实现
【2024】基于springboot的宠物领养管理系统设计与实现

网址: 基于java的流浪宠物免费领养系统的设计与实现 https://m.mcbbbk.com/newsview286403.html

所属分类:萌宠日常
上一篇: 牡丹江市宠物领养
下一篇: QQ宠物猪猪公测 免费领养赢大奖