毕业设计(论文)-社区生鲜订购系统的设计与实现.doc_第1页
毕业设计(论文)-社区生鲜订购系统的设计与实现.doc_第2页
毕业设计(论文)-社区生鲜订购系统的设计与实现.doc_第3页
毕业设计(论文)-社区生鲜订购系统的设计与实现.doc_第4页
毕业设计(论文)-社区生鲜订购系统的设计与实现.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

盐城师范学院毕业设计盐 城 师 范 学 院毕业设计 社区生鲜订购系统的设计与实现 学生姓名 学 院 信息工程学院 专 业 软件工程 班 级 学 号 指导教师 2016年5月16日 社区生鲜订购系统的实现与设计摘 要二十一世纪是一个信息技术飞速发展的年代,同时也是人们工作生活变得更加忙碌的年代,因此网上购物送货到家已经成为时代的潮流。如今很多人工作忙碌了一天还要去超市、菜场购买食材,这样不仅时间紧迫,新鲜的蔬菜水果也所剩无几。针对这样的问题,我设计了一套社区生鲜订购系统,方便人们在网上购买蔬菜水果,直接送货到家,省时省力,而且保证新鲜健康。本文主要描述社区生鲜订购系统的分析与实现,对该系统的研究目的、背景和过程进行阐述,对系统的功能设计与实现以及数据库的设计做了介绍,最后进行系统的测试。该系统采用PHP语言编写,应用了THINKPHP当前主流的web框架,MVC的设计模式,使用户体验和用户交互得到更好的提升。【关键词】生鲜订购;PHP;MVC;THINKPHP 全套设计加扣 3012250582 Design and Implementation of fresh food ordering System in communityAbstractThe 21st Century is an age of rapid development of information technology, At the same time, people work and live in a busier time. Therefore, online shopping and home delivery has becomes the trend of the times. Now a lot of people not only have a busy working day but have to go to supermarket or food market to buy ingredients. Not only time presses, but fresh fruits and vegetables are not much left. In view of such problems, I design a set of fresh food ordering system, to make it convenient for people to buy fruits and vegetables online. It has home delivery and save time and effort. It also keeps fresh and healthy. The paper mainly consists of analysis and realization of fresh food ordering system in community, the explanation of the research purpose, background and process, introduction of the design and realization of functions, and the data bases, and system test in the end. System is written in PHP, and applied THINKPHP framework the current mainstream web framework, the design patterns is MVC. It better enhances user experience and user interaction. KeywordsFresh food ordering system; PHP; MVC; THINKPHP 目 录1 课题概述11.1 课题开发背景11.2 国内现状11.3 课题研究内容11.4 课题研究意义12系统相关技术介绍22.1 系统开发语言PHP22.2 NetBeans22.3 MYSQL数据库22.4 Apache22.5 THINKPHP23 可行性分析23.1技术可行性分析33.2经济可行性分析33.3操作可行性分析33.4法律可行性分析34 需求分析34.1功能需求分析44.2性能需求分析65系统设计65.1系统设计65.1.1系统结构描述65.1.2系统基本模块75.2数据库设计76 系统实现106.1系统架构106.2系统组织结构116.3项目具体实现过程116.3.1客户端登录126.3.2商品管理添加136.3.3商品管理-编辑146.3.4商品管理-查看列表156.3.5商品管理-查询166.3.6 商品管理-删除176.3.7权限管理分配权限186.3.8权限控制187系统测试217.1系统测试概述217.2测试用例与测试结果218系统开发总结24参考文献25致 谢261 课题概述1.1 课题开发背景现如今网上购物已然成为时代的潮流,更多的人倾向于在网上购买商品,方便且快捷。随着经济时代的进步,人们的工作也随之而更加繁忙,很多人白天忙于工作,下班回家还要去超市市场购买食材回家做饭,浪费时间和精力不说,同时去的太晚也很难购买到新鲜的水果蔬菜。因此更多的人会选择在网上订购食材直接送货到家,无需自己去超市选购,省时省力,而且保证新鲜度。该社区生鲜订购系统的使用,可以方便上班族直接网上选购蔬菜水果等,可以规定送货的时间,方便自己下班回家后就可以收到食材。生鲜超市也可以很方便的管理自己的订单和商品等。本文将很详细地描述系统的需求设计和开发流程,社区生鲜订购系统的主要功能是实现商品和订单的管理,实现用户网上方便快捷的订购生鲜。无论对商户还是用户都是有利的表现。1.2 国内现状20世纪初,我国互联网迅速发展,网购渐渐走进人们的生活,从一开始的网上购买商品,到现在可以在网上订购外卖,这两年国内网上外卖也受到不少人的欢迎,尤其是当代的大学生,但是几乎生鲜外卖还并没有普及,外卖可以网上订餐,但更多的人会认为不卫生,所以网上订购生鲜食材还是有必要的,会受到大部分上班族的欢迎。 1.3 课题研究内容生鲜订购系统分为面向管理员端的后台管理系统和面向客户端的系统平台,后台管理系统可以供商户很方便的管理自己的店铺,管理店铺中的商品、订单、留言、用户以及权限等信息的管理,客户端系统平台供用户查看与选购商品,以及给商户留言、查看历史订单等,方便且快捷,节省不少人力物力,给用户和管理员最好的用户体验。 1.4 课题研究意义本系统以用户在线订购生鲜为目的,便于管理员对商品和订单进行管理。没有网上订购,用户只能去实体店购买生鲜食材,耗费精力浪费时间,网上生鲜订购系统方便了用户,给用户省去不少时间,并且可以购买到新鲜的食材,也使得商户的销售额得到提高,实现商户与用户之间的双赢。 2系统相关技术介绍2.1 系统开发语言PHPPHP是一种服务器端脚本语言,将多种开发语言的特点集于一身,经过这么多年的发展,语言已经非常成熟,成为全球运用最多、使用最广泛的开发语言之一1。其语法混合了多种语言的语法以及PHP自身的语法。由于PHP开发速度快,开源免费等特点,更多的被用于商城、论坛以及微信等开发中。2.2 NetBeansNetBeans IDE是新近流行的一款功能强大的开发编辑器,可以提高开发者的开发效率。 2.3 MYSQL数据库MYSQL Database,简称MYSQL。虽其不属于大型数据库,但是功能完善,安全性强,很受广大开发者的欢迎。由于MYSQL卓越的性能,配合 PHP 和 Apache服务器可组建良好稳定的开发环境。 2.4 ApacheApache HTTP Server(简称Apache)是全球使用最多的WEB服务器软件。其运行快速,安全可靠,且可跨平台运行。是WEB开发中首选服务器软件。2.5 THINKPHPTHINKPHP框架是国内最流行也是使用最多的一个框架之一,其创始人是一个华人,因此注释全是中文,很受国内开发者的喜爱。经过不断的发展,现如今已经发展到3.2.3版本,技术已经相当成熟,由于其简单快速开发的特点,在国外也甚是受欢迎。3 可行性分析系统开发中不可缺少的一个环节,就是系统的可行性分析。它在项目的开发过程起到有非常重要的作用。对系统进行准确的可行性分析,可以提前避免不必要的失误,保证开发过程的顺利进行。分析该系统在各方面的设计是否符合实际。分析当前的条件是否能够完成需求,能否达到预期的效果。本系统从四个方面对此次开发做了详细的可行性分析。3.1技术可行性分析系统采用PHP进行开发,采用MVC的设计模式,采用流行的B/S结构,在WAMP环境下开发,即windows+Apache+MySQL+PHP,使用了THINKPHP框架,其结构清晰,可重用性强,可维护性强,开发速度快。数据库使用MYSQL数据库,功能完善,能满足系统的技术要求,服务器使用Apache,快速、可靠、安全性强。因此本系统在技术上是没有问题的。3.2经济可行性分析生鲜订购系统可以减少人工的开支,并且方便信息的获取与查询,可以很快速方便的处理订单,摒弃了传统的电话预定、实体店选购的模式,提高了办事的效率,节省了不少的时间。本系统开发使用PHP开发语言,服务器选用了Apache,并且使用免费的Mysql数据库,几乎没有其他的开支。在经济上是可以接受的,并且本系统可以提高工作效率,省时省力。由此可得本系统在经济上是可行的。3.3操作可行性分析本系统界面简洁,操作简易,上手容易,人机交互体验良好,一般只要稍微懂一点网络知识的人都很容易操作。用户和管理员无论何时何地只要在有网络的情况下,只需通过浏览器,就可以打开系统进行操作,无需下载,不需要配置其他的应用程序,操作非常方便。因此系统在操作上是可行的。3.4法律可行性分析本系统作为毕业设计来研究,完全为自己一个人开发。不造成任何侵权行为,不存在任何的商业利益,在法律上是可行的。4 需求分析软件需求是指对软件系统的各个方面的要求和目标。需求分析是软件开发过程中的一个关键点,系统设计之初便要确定需求,开发过程中尽量避免修改需求,以便后期开发工作的顺利进行。4.1功能需求分析社区生鲜订购系统分为面向管理员端的后台管理系统以及面向客户端的系统平台。后台管理系统可以对店铺的商品、订单、用户、权限等进行管理,客户端平台可供用户购买商品等一系列功能。本系统的分为后台管理端和客户端两大块:后台管理端供商户后台管理员使用,客户端则为用户使用。1.后台系统管理员后台系统管理员可以对客户端系统全面的管理,可以对前台的商品进行编辑、查询、删除等处理,对订单的查看和发货处理,对后台管理员的权限的控制等,其主要功能如下,用例图如图4-1所示:1)可以登录系统;2)可以对商品信息进行增删改查操作;3)可以对商品分类进行增删改操作;4)可以对订单进行查看、查询、发货和打印;5)可以对后台子管理员进行增加、删除、修改、分配权限;6)可以对公司信息进行设置;7)可以对店铺基本设置进行设置;8)可以对店铺留言进行查看、删除;9) 可以对用户信息进行查看;10)可以对个人密码进行修改;图4-1 管理员用例图 2.用户用户是客户端系统的使用者,其主要拥有的操作功能如下,用例图如图4-2所示:1)可以注册账户;2)可以登录系统;3)可以添加商品至购物车;4)可以提交留言;5)可以分类查看商品;6)可以查看商品详情;7)可以下单购买商品;8)可以查看个人历史订单图4-2 用户用例图4.2性能需求分析1) 人机交互体验良好,操作简便易于使用,兼容性好,要可以在大部分的浏览器中完美运行,界面简洁漂亮。2) 可在WINDOWS操作系统下完美运行。3) 运行速度快,响应时间可以达到在0.5秒以内。 5系统设计5.1系统设计5.1.1系统结构描述本系统是基于B/S结构的系统,使用THINKPHP框架,很好的展现了MVC的分层系统结构。视图层负责数据界面显示,控制器负责协调多个事务操作,模型层负责数据的处理。本系统遵循模块化的设计原则,各模块之间互不影响,易于维护,低耦合,高内聚。5.1.2系统基本模块本系统包括后台管理端和客户端,本系统的基本模块如图5-1所示。 图5-1 社区生鲜订购系统基本模块图 5.2数据库设计数据库设计是项目开发的核心部分,系统中几乎全部数据都是存储在数据库中的。页面中所展示出的数据都是由数据库组织起来的。在系统开发初期一定要先设计出满足系统要求的数据库结构,使得各个模块之间的数据得到交互。对数据库进行良好的设计才能使系统更完善,更安全。通过系统的需求分析,对数据库结构进行逻辑设计,下面是各表的详情:1)AUTH:权限表,用来存储权限信息,如表5-1所示:表5-1 AUTH表字段名类型说明是否主键可否为空IdInt(10)权限ID是否auth_nameVarchar2(20)权限名否否auth_pidInt(10)权限父id否否auth_cVacher(20)控制器否是auth_aVarchar(20)方法否是auth_pathVarchar(30)权限路径否否auth_levelInt(2)权限等级否否2)BASE:店铺基本设置表,用来存储客户端首页的相关信息,如表5-2所示:字段名类型说明是否主键可否为空idInt(1)ID是否pic_1Varchar(100)海报1否是pic_2Varcher(100)海报2否是pic_3Varchar(100)海报3否是TitleVarchar(100)公告标题否是contentVarcher(400)公告内容否是表5-2 BASE表3)GOODS:商品表,用来存储产品的详细信息,如表5-3所示:字段名类型说明是否主键可否为空IdInt(10)商品ID是否TitleVarchar(50)商品标题否否contentVarchar(3000)商品详情否否Pricedecimal(20)商品价格否否pictureVarchar(50)商品大图否否Small_picVarchar(50)商品小图否否creattimedatetime创建时间否否Type_idInt(10)类别id否否FormatVarchar(10)商品规格否否StateInt(1)商品状态否否表5-3 GOODS表4)MANAGER:管理员表,用来存储管理员账号信息,如表5-4所示:字段名类型说明是否主键可否为空IdInt(10) 管理员ID是否UsernameVarchar(50)管理员账号否否passwdVarchar(50)密码否否creattimeDatetime创建时间否是 updatetimedatetime修改时间否是RoleInt(8)角色id否否Role_nameVarchar(10)角色名称否是表5-4 MANAGER表5)MESSAGE:留言表,用来存储店铺留言信息,如表5-5所示:表5-5 MESSAGE表字段名类型说明是否主键可否为空IdInt(10)留言ID是否Timedatetime留言时间否否NameVarchar(20)姓名否否emailVarchar(30) 邮箱否是phoneVarchar(16)电话否否续表5-5msgVarchar(400)留言内容否否uidInt(10)留言者id否否unameVarchar(20)留言用户名 否否stateInt(1)查看状态否否6)ORDER:订单表,用来存储订单的明细,如表5-6所示:字段名类型说明是否主键可否为空orderidVarchar(40)订单号是否OrderdateDatetime下单时间否否UseridInt(10)下单用户id否 否addressVarchar(100)地址否否TelVarchar(15)电话否否NoteVarchar(100)备注否否StateInt(1)订单状态否否Trans_timeInt(1)送货时间否否invoiceint(1)发票信息否否NameVarchar(15)姓名否否表5-6 ORDER表7)ORDERLIST:订单详情表,用来存储每个订单的明细,如表5-7所示:字段名类型说明是否主键可否为空IdInt(10)订单详情ID是否goodsidint(10)商品id否否TitleVarchar(50)商品标题否否Pricedecimal(20)商品价格否否Numint(10)个数否否Zongjiadecimal(30)小计否否OrderidVarchar(40)订单号否否表5-7 ORDERLIST表8)ROLE:角色表,用来存储管理员角色详细信息,如表5-8所示: 表5-8 ROLE 表字段名类型说明是否主键可否为空IdInt(10)角色ID是否RolenameVarchar(10)角色名称否是Role_auth_idsVarchar(500)拥有的权限id否是Role_auth_acVarchar(500)权限控制器方法名否是9)STORE:店铺表,用来存储系统中显示的公司各种信息,如表5-9所示:表5-9 STORE表字段名类型说明是否主键可否为空IdInt(10)ID是否nameVarchar(50)公司名称否是AddressVarchar(70)实体店地址否是FaxVarchar(50)传真否是 TelVarchar(20)电话否是EmailVarchar(40)邮箱否是AboutVarchar(300)公司介绍否是mapVarchar(500)公司地图文件路径否是10)TYPE:商品类别表,用来存储产品类别,如表5-10所示:字段名类型说明是否主键可否为空Type_idInt(10)类别id是否typeVarchar(20)类别名否否表5-10 TYPE表11)USERS:用户信息表,用来存储用户信息,如表5-11所示:字段名类型说明是否主键可否为空idInt(10)类别id是否UsernameVarchar(50)用户名否否passwdVarchar(100)密码否否createtimedatetime注册时间否是lasttimedatetime最后登录时间否是TelVarchar(11)电话否否emailVarchar(30)邮箱否否sexVarchar(1)性别否否表5-11 USERS表6 系统实现6.1系统架构本系统采用MVC的设计模式,MVC即视图层、控制层、模型层,使用THINKPHP框架。使用者所看到的为视图层(view),使用者可在浏览器看到视图层界面,其可操作界面中的操作按钮向服务器端发送请求,由服务器处理其请求,调用对应的控制器(Controller),控制器将数据传给对应的模型层(Model)处理,模型层再将处理后的数据返回给控制器,控制器再将数据返回给对应的视图,呈现给使用者。6.2系统组织结构本系统的项目结构如图6-1所示。外部shop文件夹是项目的根目录,内部的shop文件夹存放的是项目的代码,Admin存放的是后台管理系统的代码,Home存放的是前台客户端的代码,Controller存放的是控制器,Model存放的是模型层、数据处理方法以及业务逻辑,View存放视图页面,Public包含js、css、图片等文件,Tools中存放的是工具类。Common中存放的是配置信息文件。ThinkPHP文件夹是框架文件夹,为防止出错,里面的任何东西都是不允许手动修改的。图6-1 项目结构图 6.3项目具体实现过程本系统后台管理系统有商品、订单、权限、店铺、用户等管理几大模块,客户端系统有查看历史订单,加入购物车,下单等功能模块,很多模块大同小异,本节将只列举本系统最核心的几个模块进行阐述。 6.3.1客户端登录1.页面设计,本系统的客户端登录界面,如图6-2所示 图6-2 后台管理员登录2.点击登录将会提交一个ajax请求,异步提交账号密码以及验证码到后台处理,ajax代码如下: $.ajax( type:POST, url:/shop/shop/index.php/Admin/Manager/login, data:adminname=+adminname+&passwd=+passwd+&verify=+verify, success:function(data) if(data = 1) . else if(data = 0) . else if (data = 2) . ); 3.控制器接收参数请求,验证验证码是否正确,如果正确则将参数传给模型层处理,主要代码如下: if(!empty($_POST) $very=new ThinkVerify(array(reset=false); if($very-check($_POSTverify) $manager=new ModelManagerModel(); $name=$_POSTadminname; $pwd=$_POSTpasswd; $info = $manager - checkNamePwd($name,$pwd); if($info) session(admin_id,$infoid); session(admin_name,$infousername); $this-ajaxReturn(2); else . $this-display(); 4.模型层接收参数进行处理,先验证账号是否存在,如果存在则验证该账号下的密码是否和输入的密码一致,将结果返回给控制器,代码如下: function checkNamePwd($name,$pwd) $info=$this- where(username = $name)-find();if($info) if($infopasswd=$pwd) return $info; return null; 6.3.2商品管理添加1.添加商品的页面设计,如图6-3所示 图6-3 商品添加2 控制器层的实现编辑完成后,点击添加将表单参数POST给Controller控制器,控制器接收参数并处理,上传图片且生成缩略图,主要代码如下function goods_add() $goods=D(goods); if(!empty($_POST) if($_FILESpicerror ./Public/uploads/, ); $up=new ThinkUpload($cfg); $u=$up-uploadOne($_FILESpic); $bigpath=$up-rootPath.$usavepath.$usavename; $smallpath=$up-rootPath.$usavepath.small_.$usavename; $im=new ThinkImage(); $im-open($bigpath); $im-thumb(100,100); $im-save($smallpath); $_POSTpic=$usavepath.$usavename; $smallpic=$usavepath.small_.$usavename; $now=Date(Y-m-d H:i:s); $arr=array( . ); $g=$goods-add($arr); . 6.3.3商品管理-编辑 1.编辑商品的页面设计,选择要编辑修改的产品点击编辑,页面会显示之前的编辑信息,如图6-4所示图6-4编辑商品2.基本业务逻辑和添加商品功能相似,但要对上传图片做判断处理,如果重新上传了图片则替换之前的图片,否则图片将不做处理,主要代码如下if($_FILESpicname != ) if($_FILESpicerror ./Public/uploads/, ); $up=new ThinkUpload($cfg); $u=$up-uploadOne($_FILESpic); $bigpath=$up-rootPath.$usavepath.$usavename; $smallpath=$up-rootPath.$usavepath.small_.$usavename; $im=new ThinkImage(); $im-open($bigpath); $im-thumb(100,100); $im-save($smallpath); $picture=$usavepath.$usavename; $smallpic=$usavepath.small_.$usavename; else $picture=$infopicture; $smallpic=$infosmall_pic; 6.3.4商品管理-查看列表1.查看商品列表,如图6-5所示 图6-5商品列表页面2.查找商品表中的所有信息按创建时间排序,并每页6条记录进行分页显示,通过url中的page参数的值查找数据库中的相应内容,主要代码如下 function showlist() $goods=D(goods); $total=$goods-count(); $pagesize=6; $page_obj=new ToolsPage($total,$pagesize); $sql=select * from goods order by id desc .$page_obj-limit; $info=$goods-query($sql); $showpage=$page_obj-showpage(); if(!empty($_GET) $i=($_GETpage-1)*$pagesize+1; else $i=1; . 6.3.5商品管理-查询1.查询商品页面设计,分为三种查找方式,如图6-6所示图6-6商品查询2.商品查询功能使用ajax无刷新实现,参数传入后台得到json数据,将数据显示在视图层,ajax代码如下:$.ajax( type:POST, url:/shop/shop/index.php/Admin/Goods/goods_search, data:type=+type+&text=+text, dataType: json, success:function(data) . html=html+; box.innerHTML=html; else if(data = 0) box.innerHTML=没有您要查询的商品; );3.Controller接收参数,判断查找方式,然后根据查找方式模糊查找出所有有关的数据,主要代码如下:function goods_search() if(!empty($_POST) $type=$_POSTtype; $text=$_POSTtext; $goods=D(goods); if($type = 1) $sql=select * from goods where title like %$text% order by id desc; else if($type = 2) $sql=select * from goods where

温馨提示

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

评论

0/150

提交评论