【计算机毕业设计】092基于微信小程序二手闲置交易市场

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。

  1. 代码可以私聊博主获取。🌹
  2. 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
  3. 赠送开题报告模板,帮助书写开题报告。

作者完整代码目录供你选择:

  1. 《Springboot网站项目》400套
  2. 《ssm网站项目》800套
  3. 《小程序项目》300套
  4. 《App项目》500套
  5. 《python网站项目》600套

⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

项目演示

 

摘 要

随着计算机技术的成熟,互联网的建立,如今,PC平台上有许多关于二手闲置交易方面的应用程序,但由于使用时间和地点上的限制,用户在使用上存在着种种不方便,而开发一款基于微信小程序的二手闲置交易市场系统,能够有效地解决这个问题。

本基于微信小程序的二手闲置交易市场系统是针对二手闲置交易而开发,采用微信开发者工具进行微信端开发,使用MYSQL数据库进行系统数据的储存,系统满足用户通过微信客户端进行二手闲置交易的需求。本小程序是以微信为入口的,可以说是在自带接近10亿的流量人口。整个系统不仅操作简单、便捷,而且节约用户的时间及资源成本等,仅需通过一部手机和微信号即可满足用户们的需求。

论文首先阐述了基于微信小程序的二手闲置交易市场系统的开发背景,并对开发基于微信小程序的二手闲置交易市场系统所采用的相关技术进行了详细的介绍,然后对此应用软件进行了需求分析、设计,最后对系统进行测试、维护,保证系统的正常运行。

关键词:微信小程序 ;微信开发者工具;二手闲置交易;MYSQL数据库

第1章  绪论

1.1研究背景

二十一世纪是一个集数字化,网络化,信息化的,以网络为核心的社会。随着互联网的发展,传统生活变得更加方便快捷,许多事物都可以跟互联网相连接,于是就提出了“互联网+”[1]的概念,日常生活离不开计算机更离不开互联网,例如生活中最平常的衣食住行,都有其相关的智能产品,所以科技改变生活,传统的生活方式面对互联网的新浪潮的冲击,已经渐渐退出了历史舞台,相信未来的某一时刻,传统的生活方式将进入全智能化的阶段。

在信息技术迅速发展的今天,计算机技术已经遍及全球,使社会发生了巨大的变革,现今各类智能手机不断更新,智能手机的普遍使用让各种基于手机移动端的APP问世,其中,微信已是时下国内最火的聊天交流APP,备受人们青睐,近年来,微信发展规模越来越大,越来越多的人开始使用微信,目前智能手机系统的普及,人们手机上基本都有了微信,根据去年公布的一组数据中可知,微信去年最高用户量达到10亿多;而建立在微信平台基础上的小程序凭着它不用安装、不占内存、使用便捷、用完即走等众多优点[2],小程序借着微信平台快速成长,也为各行业的发展带来了极大的便利,这使得基于微信小程序的系统应运而生,为用户提供便利。

基于以上微信的发展,结合目前用户二手闲置交易方面的需求,开发了本基于微信小程序的二手闲置交易市场系统,满足了不同用户的功能需求,包括用户、卖家和管理员,实现二手闲置交易的重要功能,提高二手闲置交易效率。

1.2设计原则

在开始开发项目之前,必须要先考虑项目的实用性、科学性,以及该项目是否能够真正让用户受益并尽可能的发挥项目的作用。因此,在开发前,通过以下几条原则对项目进行判断:

(1)可行性原则。项目需要保证经济可行性和技术可行性,这包括了项目在浏览端、服务端等方面上的经济和技术上是可以达成的。

(2)适应性原则。项目要保证可维护性和可扩展性,这是每个非短期项目都需要考虑的,并且不论是维护还是扩展,都必须要建立在适应用户的正常需求的基础上。

(3)安全性及保密性原则。要充分保证用户信息的安全性和保密性,不能因为开发上的疏忽,导致用户的信息泄露。

(4)系统工程原则。为了确保项目的整体性,在项目调查、项目分析、项目设计、项目开发的过程中,都需遵从项目工程的方法和步骤逐步进行。

(5)统一规划、分期实施、逐步完善原则。项目开发的过程中,要按照规划、分期实施,特别是要注意在项目开发过程中要有条理,从点到面,一步步完善,不要贪图进度,要循环渐进的对项目进行开发。

1.3论文组织结构

本基于微信小程序的二手闲置交易市场系统在开发技术的选择上,使用WXML 、WXS、JS小程序编写语言和MYSQL数据库开发。本论文的组织结构如下:

第1章绪论。阐述论文工作的研究背景和设计原则。

第2章系统关键技术介绍。介绍构建基于微信小程序的二手闲置交易市场系统进的相关技术。

第3章系统分析。分析基于微信小程序的二手闲置交易市场系统的需求,包括系统性能分析、系统功能分析以及系统流程分析等。

第4章系统设计。根据需求分析对系统进行功能模块划分和数据库设计,并构建系统结构图以及数据库E-R图等。

第5章系统的实现。对系统主要功能模块进行界面展示。

第6章系统测试。对系统进行测试工作,发现系统bug,进行修改,确保系统正常稳定的运行。

第7章结论。总结论文的主要工作,提出进一步完善基于微信小程序的二手闲置交易市场系统的目标和明确方向。

第2章  关键技术简介

2.1 微信小程序

微信小程序,简称小程序,英文名Mini Program,是一种全新的连接用户与服务的方式,可以快速访问、快速传播,并具有良好的使用体验[12]。

小程序的主要开发语言是JavaScript,它与普通web的开发有很多相似之处。小程序和普通网页开发并不是相同的东西,是有差异的。网页开发的渲染线程和脚本线程是互斥的,而在小程序中,确实分开的,分别在不同的线程之中运行。网页开发的工作者可以运用各种浏览器暴露出来的DOM API,进行DOM选中和操作,但小程序不行,它并没有一个完整的浏览器对象,因此缺失DOM API和BOM API。这样的差别使得前端开发中经常用到的一些库是无法在小程序中运行的。另外,网页开发的工作者在开发网页时所要面对的环境是在各式各样系统上运行的各式各样的浏览器,,而小程序只,只需面对iOS和Android这两道操作系统下的微信就足够了。

小程序和传统的APP相比,有着开发成本更低,获客成本更低,开发周期更短,发展空间更大等的优点。不过,为了体现“用完即走”、“无需安装”等理念,小程序的功能、性能还有大小都受到了制约,可以说是各有利弊。

2.2 微信开发者工具

为了能够让微信小程序的开发人员有根家优秀的开发环境,腾讯在原有的公众号网页调试工具的基础上,推出了全新的微信web开发者工具。

微信web开发者工具具备编辑、调试、项目、编译、关闭、后台和缓存这七个选项卡,让开发者能够更方便的进行开发和调试,节省开发所耗费的时间。

2.3微信小程序API接口

微信小程序API接口是腾讯公司为了微信小程序和微信公众号提供的接口文档,里面包含了各种需要使用的接口技术[7],例如本项目用到的获取微信用户信息(wx.getUserInfo)、蓝牙通讯传输功能、网络请求(wx.request)、定位功能等,总的来说,小程序API是满足一个程序开发的大部分接口。

2.4 WXML 、WXS、JS小程序编写语言

WXML全称是 WeiXin Markup Language,是微信标记语言,是微信小程序的标签语言,结合小程序的基础组件、事件系统,可以构建出页面的结构。类似于HTML语言,但是他自身也拥有一定的特色。

WXSS(WeiXin Style Sheets)是微信样式表,是微信小程序用于修饰标签语言的样式文件,WXSS 用来决定 WXML 的组件应该怎么显示。为了适应广大的前端开发者,WXSS 具有 CSS 大部分特性,同时为了更适合开发微信小程序,WXSS对CSS语言进行修改和扩充,引入全新尺寸单位rpx,但大体语法于CSS语言不分离。

JS是 JavaScript[4]语言的简称,微信小程序里面也可以叫做WXS,是一门脚本语言,通俗易懂,用于页面交互的语言。

2.5 MYSQL数据库

MySQL 是关系型数据库管理系统的代表,它是属于 Oracle 旗下产品,使用C语言和C++语言编写的,使用了多种技术,由于它体积小,易使用,成本低,灵活性[2],该数据库在中小企业比较受欢迎。MySQL的灵活性体现在非常多方面,可是适应高要求的环境,通过不同配置适应各种硬件,同时支持各种不同的数据。因为MySQL是其免费开源的,而且MySQL的功能已经足够用对于学习和中小型企业来讲,所以开发中小型网站都会选择MySQL作为网站的数据库。[5]

第3章  系统分析

3.1 可行性分析

需要使用大部分精力开发的基于微信小程序的二手闲置交易市场系统为了充分降低开发风险,特意在开发之前进行可行性分析这个验证系统开发是否可行的步骤。本文就会从技术角度,经济角度,还有操作角度等进行综合阐述。

3.1.1技术可行性

本二手闲置交易市场系统采用Java技术,基于微信小程序,采用MYSQL数据库进行开发的。

(1)Java提供了稳定的性能、优秀的升级性、更快速的开发、更简便的管理、全新的语言以及服务。整个系统帮用户做了大部分不重要的琐碎的工作。

(2)基于微信小程序的系统的开发已发展日趋成熟。

(3)作为计算机专业的学生,对数据库比较熟悉,掌握了MYSQL数据库,建立这样一个系统应该在能力范围之内

综上所述:基于微信小程序的二手闲置交易市场系统的开发技术具有很高可行性。

3.1.2 经济可行性

该系统的开发工具使用的都是免费的开发工具,且内容较为简单,一台计算机便可以开发出这个系统,且后期的维护,修改等对本系统的改动,都可以只通过一台计算机实现,因此开发该系统的成本在有计算机的情况下基本为0,所以本系统在经济上是可行的。

3.1.3 操作可行性

本系统操作页面简洁明了,操作极其容易,用户登陆后一眼便可看到自己所需要的信息,而管理员的操作也十分轻松便捷,只要操作人员具有一定的文字水平以及简单的逻辑思维,就可以轻松操作本系统,因此本系统在操作上是可行的。

3.1.4时间可行性

从2020年11月份我们在学校就没有课程了,同学们大部分选择找工作实习了,我也是在其中。一边找工作的同时,一边忙着完成毕业设计工作。对于我本人来讲,目前的情况是白天我要上班参加实习工作,只有晚上我才有时间完成论文编写工作。论文答辩是在2021年5月份左右,将近半年时间来完成毕业设计,时间上还是很充分。

综上可以看出,本基于微信小程序的二手闲置交易市场系统的开发在技术、经济、操作以及时间四个方面都具有很高的可行性,开发本程序可行。

3.2 系统性能分析

随着互联网的发展,微信小程序越来越完善,现在的生活中充斥着微信小程序,由于小程序方便快捷,基于微信这个大平台,小程序发展是高速的,吃饭可以通过小程序点餐,出去玩可以用小程序打车,因此二手闲置交易也可以使用小程序。系统性能需求如下:

(1)软件功能清晰明了,尽量多用列表的展示简化用户操作,提升使用者体验,减少下拉菜单这种降低体验的操作。

(2)软件的功能要尽量完整,也要全面。

(3)经常的在以后版本更新完善软件,使得软件保持一个新鲜度,也可以做一些活动来促进用户使用软件。

(4)减少软件使用过程中出错,做好优化,遵循开发逻辑,降低bug的产生率以提升用户体验。

3.3 系统功能分析

本基于微信小程序的二手闲置交易市场系统满足了不同用户的功能需求,包括用户、卖家以及管理员,下面对这不同用户的功能需求进行简介。

(1)管理员功能分析

管理员可进行后台进行管理,包含个人中心、用户管理、卖家管理、商品分类管理、商品信息管理、商品购买管理、商品配送管理、订单评价管理、用户咨询管理以及系统管理。

管理员用例图如图3.1所示。

图 3.1 管理员用例图

(2)卖家功能分析

卖家注册登录后主要功能模块包括首页、商品信息(增删改查商品)、系统公告以及我的(商品信息、商品购买、商品配送、订单评价、用户咨询和在线客服)。

卖家用例图如图3.2所示。

图 3.2 卖家用例图

(3)用户功能分析

没有账号的用户可进行注册操作,注册登录后主要功能模块包括首页、商品信息(商品查询收藏购买)、系统公告以及我的(商品信息、商品购买、商品配送、订单评价、用户咨询、我的收藏管理以及在线客服)。

用户用例图如图3.3所示。

3.4 系统流程分析

3.4.1注册登录流程

没有账号的卖家和用户均可进行注册,注册后可进行登录系统,注册登录流程图如图3.4所示。

图3.4注册登录流程图

3.4.2添加信息流程

管理员、用户以及卖家均可添加信息,下面是添加信息的时候的流程图,如图3.5所示

图3.5 添加信息流程图

3.5系统界面分析

用户界面指的是用户直接看到的图形界面也称为前端设计。用户界面的好坏直接影响到用户操作时的体验、效率,愉快性,而且用户界面设计不当还会导致无法很好的发挥出系统的性能。

1.界面元素

常见的用户界面都会包括:整体页面的主颜色,字体的大小,字体的颜色,整体页面的布局,主要功能在页面上的布局位置,重要的输入界面和输出界面,人机交互界面。用户界面采用的主颜色,还有整体的布局的美观和功能布局的位置是否符合人性的设计都会直接的影响到用户对本系统软件的认同度。

2.用户角色

界面的设计必须建立在用户的角度,只有把自己当作用户思考人们的使用习惯和爱好的时候,才能开发出一个围绕用户的界面。通过调查用户的操作习惯,并将收集而来的纷乱复杂信息,进行总结,抽象得出满足用户的用户界面模型。

3.需求变化

人们的审美和习惯爱好,总是在不断的改变着。故要根据不同用户的喜好,操作习惯作不同的需求设计分析,作出更加符合的用户口味的操作界面。从而得到用户的认可。

4.界面原型

设计的前期通过快速的创建界面原型,通过同学的建议一点一点的改进用户界面从快速的达到理想的效果。用户界面的设计原则要满足以下几点:

(1)页面简洁,操作简单。

(2)对于用户而言,浏览信息比记忆信息更友好。

(3)从用户的角度思考,才能让用户更好的接纳。

(4)利用当今已经流行的页面设计,让用户快速的学会操作。

5.安全性问题

安全性问题应该是人们最看重的。用户界面上输入的信息不会被别人窃取,还有若输入的时候出现错误页面必须能够回退。

第4章  系统设计

4.1系统结构设计

本基于微信小程序的二手闲置交易市场系统主要实现了卖家功能模块、用户功能模块和管理员功能模块三大部分,系统结构图如图4-1所示。

图4.1系统功能结构图

4.2系统顺序图设计

4.2.1登录模块顺序图

登录模块主要满足了管理员、卖家和用户的权限登录,登录模块的顺序图如图 4.2 所示。

图4.2登录顺序图

4.2.2添加信息模块顺序图

管理员、用户以及卖家登录后均可进行信息的添加操作,添加信息顺序图如图4.3所示

图4.3添加信息顺序图

4.3系统数据库设计

4.3.1 数据库E-R图设计

系统E-R图就是系统的实体关系图,它是用来描述某一组织(单位)的概念模型,提供了表示实体、属性和联系的方法。构成E-R图的基本要素是实体、属性和关系。实体是指客观存在并可相互区分的事特;属性指指实体所具有的每一个特性。根据数据库中的几个表分别绘制数据库的实体图。以下给出本系统中比较重要的实体E-R图。

(1)商品订单信息实体E- R图,如图4.4所示

图4.4 商品订单信息实体属性图

(2)商品类型信息实体E- R图,如图4.5所示

图4.5 商品类型信息实体属性图

(3)管理员信息实体E- R图,如图4.6所示

图4.6  管理员信息实体属性图

(4)用户信息实体E- R图,如图4.7所示

图4.7 用户信息实体属性图

(5)卖家信息实体E- R图,如图4.8所示

图4.8 卖家信息实体属性图

(6)商品信息实体E- R图,如图4.9所示

图4.9 商品信息实体属性图

4.3.2 数据库表设计

本基于微信小程序的二手闲置交易市场系统在开发过程中使用MySQL数据库系统进行系统数据的储存,以下是本系统的主要数据库表信息。

表4.1  shangpindingdan商品订单信息表

序号

字段

描述

类型和长度

主键

是否可空

1

id

编号

bigint(20)

是

不允许

2

addtime

创建时间

timestamp

否

允许

3

maijiahao

卖家号

varchar(200)

否

允许

4

maijiaming

买家号

varchar(200)

否

允许

5

`shangpinbianhao

商品编号

varchar(200)

否

允许

6

shangpinmingcheng

商品名称

varchar(200)

否

允许

7

shangpinleixing

商品类型

varchar(200)

否

允许

8

shangpintupian`

商品图片

varchar(200)

否

允许

9

shuliang

数量

int(11)

否

允许

10

`shangpinjiage

商品价格

int(11)

否

允许

11

zongjine

总金额

int(11)

否

允许

12

`zhanghao

账号

varchar(200)

否

允许

13

xingming

姓名

varchar(200)

否

允许

14

`shouji

手机

varchar(200)

否

允许

15

dizhi

地址

varchar(200)

否

允许

16

goumaishijian

购买时间

datetime

否

允许

17

beizhu

备注

varchar(200)

否

允许

18

sfsh

是否审核

varchar(200)

否

允许

19

shhf

审核回复

longtext

否

允许

20

ispay

是否支付

varchar(200)

否

允许

21

userid

用户编号

bigint(20)

否

允许

表4.2  shangpinleixing商品类型信息表

序号

字段

描述

类型和长度

主键

是否可空

1

id

编号

bigint(20)

是

不允许

2

addtime

创建时间

timestamp

否

允许

3

fenlei

分类

varchar(200)

否

允许

表4.3   users管理员信息表

序号

字段

描述

类型和长度

主键

是否可空

1

id

编号

bigint(20)

是

不允许

2

username

用户名

varchar(100)

否

允许

3

password

密码

varchar(100)

否

允许

4

role

角色

varchar(100)

否

允许

5

addtime

添加时间

timestamp

否

允许

表4.4   yonghu用户信息表

序号

字段

描述

类型和长度

主键

是否可空

1

id

编号

bigint(20)

是

不允许

2

addtime

创建时间

timestamp

否

允许

3

zhanghao

账号

varchar(200)

否

允许

4

mima

密码

varchar(200)

否

允许

5

xingming

姓名

varchar(200)

否

允许

6

xingbie

性别

varchar(200)

否

允许

7

`nianling

年龄

int(11)

否

允许

8

shouji`

电话

varchar(200)

否

允许

9

youxiang`

邮箱

varchar(200)

否

允许

10

`dizhi

地址

varchar(200)

否

允许

11

`zhaopian

照片

varchar(200)

否

允许

表4.5  maijia卖家信息表

序号

字段

描述

类型和长度

主键

是否可空

1

id

编号

bigint(20)

是

不允许

2

addtime

创建时间

timestamp

否

允许

3

maijiahao

卖家号

varchar(200)

否

允许

4

mima

密码

varchar(200)

否

允许

5

maijiaming

卖家姓名

varchar(200)

否

允许

6

xingbie

性别

varchar(200)

否

允许

7

`nianling

年龄

varchar(200)

否

允许

8

`maijiashouji

卖家手机

varchar(200)

否

允许

9

youxiang

邮箱

varchar(200)

否

允许

10

shenfenzheng

身份证

varchar(200)

否

允许

11

zhaopian

照片

varchar(200)

否

允许

12

`thumbsupnum

赞数

int(11)

否

允许

13

crazilynum

踩数

int(11)

否

允许

14

clicktime

最近点击时间

datetime

否

允许

15

clicknum

点击次数

int(11)

否

允许

表4.6   shangpinxinxi商品信息表

序号

字段

描述

类型和长度

主键

是否可空

1

id

编号

bigint(20)

是

不允许

2

addtime

创建时间

timestamp

否

允许

3

maijiahao

卖家号

varchar(200)

否

允许

4

maijiaming

卖家名

varchar(200)

否

允许

5

shangpinbianhao

商品编号

varchar(200)

否

允许

6

shangpinmingcheng`

商品名称

varchar(200)

否

允许

7

shangpinleixing

商品类型

varchar(200)

否

允许

8

shangpintupian

商品图片

varchar(200)

否

允许

9

kucun

库存

varchar(200)

否

允许

10

shangpinjiage

商品价格

int(11)

否

允许

11

shangpinxiangqing

商品详情

longtext

否

允许

12

sfsh`

是否审核

varchar(200)

否

允许

13

shhf

审核回复

longtext

否

允许

14

thumbsupnum`

赞数

int(11)

否

允许

15

crazilynum

踩数

int(11)

否

允许

16

`clicktime

最近点击时间

datetime

否

允许

17

clicknum

点击次数

int(11)

否

允许

18

userid`

用户编号

bigint(20)

否

允许

第5章 系统的实现

5.1微信端功能模块的实现

5.1.1注册登录界面

没有账号的用户可进行注册操作,注册时可选择注册类型进入对应角色的注册界面,注册后可进行登录系统,用户注册登录界面展示如图5.1所示。

图5.1 用户注册登录界面

5.1.2首页界面

所有用户登录后均可进入首页查看首页信息,首页界面展示如图5.2所示。

图5.2首页界面

5.1.3商品信息界面

用户登录后可查看商品信息,并可根据条件快速查询所需商品,可选择商品进行查看详情操作,卖家登录后可管理商品信息,能够新增商品,商品信息界面展示如图5.3所示。

图5.3 商品信息界面

5.1.4系统公告界面

卖家和用户登录后均可查看系统公告信息,系统公告界面展示如图5.4所示。

图5.4 系统公告界面

5.1.5商品详情界面

用户可选择商品查看详情,并可进行咨询和购买,商品详情界面展示如图5.5所示。

图5.5 商品详情界面

5.1.6发布商品界面

卖家登录后可发布商品信息,发布商品界面展示如图5.6所示。

图5.6 阅读心得界面

5.2管理员功能模块的实现

5.2.1管理员登录界面

管理员要想进入系统后台对系统进行管理操作,必须登录系统后台,管理员登录界面展示如图5.7所示。

图5.7 管理员登录界面

5.2.2用户管理界面

管理员登录后可添加、修改和删除用户信息,用户管理界面如图5.8所示。

图5.8 用户管理界面

5.2.3卖家管理界面

管理员在卖家管理界面可查看所有卖家信息,对已有卖家信息可进行编辑和删除操作,同时也可添加卖家信息,卖家管理界面如图5.9所示。

图5.9  卖家管理界面

5.2.4商品管理界面

管理员可管理商品信息,对已有商品信息可进行编辑和删除,商品管理界面展示如图5.10所示。

图5.10 商品管理界面

5.2.5商品购买管理界面

管理员可进入商品购买管理界面查看所有购买信息,商品购买管理界面展示如图5.11所示。

图5.11 商品购买管理界面

第6章 系统测试

6.1 软件测试

软件测试使用人工或是软件自动测试,为的是测试软件在不同的情况下和不同的操作下是否会出现预期之外的显示或数据。在每个项目上市之前,都会进行软件测试。从来不会出现开发人员将开发流程结束之后就完工放假的情况,这是对软件所付出的时间金钱精力以及对开发人员自身的不负责任。

在现在的互联网行业中,测试更是成为了一种常见、关键的岗位。软件开发人员和测试在日常工作中更是交流频繁。在很多的情况下,两者的业绩和工作效率都是息息相关的。如果测试人员负责任且工作效率高的话,那么在开发途中就能发现已经出现的或者是隐藏的bug和逻辑错误。那么就不至于在开发流程进行到中后期出现严重bug导致整个开发流程推倒重来的情况。测试人员就像是医生,优秀的测试人员印证了一句话“优秀的医生总是在疾病还隐藏在身体中就将疾病消灭,所以他不会治疗绝症。”

在学习软件工程这门课程的时候,其中有对与软件测试的介绍,重点是黑盒和白盒测试。在此次测试中主要使用黑盒测试的手法,测试项目是否完成了符合预期的功能。

6.2 测试的重要性

在最初,所谓的软件测试都是在项目要运行之前,进行测试,保证质量,避免在用户心中留下糟糕的印象。而随着技术的发展,这些年,计算机界中开始向一种新的观念倾斜,那就是认为项目在每一个阶段的生命周期都应该进行测试,尽可能的提早发现问题,避免到最后问题堆积,导致牵引出一些列的大问题。

事实上,要让项目没有半点错误是不可能的,不论我们是使用新型的开发方法,先进的编程语言…等等的方法,项目终究还是会出现错误的,我们只能精良的去降低错误的概率,减少错误出现的次数,最后在通过测试,一步一步的将隐藏在项目中的错局抽出,并解决它,让项目更趋近于完美。

测试听起来似乎并不困难,但在实践之后,却会发现,测试是一件繁琐且困难的事情,并且,繁琐乏味的测试并不会给测试人员成就感和兴趣,这无疑大大的打击了他们的积极性,降低了测试的工作效率。还有一种情况,那就是如果测试人员是开发人员,很有可能就会出现一种情况——当局者迷,旁观者清。作为开发者的一员,我清楚的明白,对于自己开发的项目,自己总会有一种迷之自信,这种自信会阻碍开发者在测试中发现隐藏在项目之中的错误,这无疑是很致命的。因此,如果要做好测试工作,我们就需要耐得下心来,不能因为繁琐枯燥的而不耐烦,同时,要以旁观者的角度来对自己的项目进行测试,不能对自己开发的项目抱有迷之自信。

6.3 测试方法

为了使系统更完善,我们通常会采用测试系统常用的测试方法,主要有两种:功能测试和结构测试。

功能测试,也可以称作是黑盒测试,在我们已经了解系统有的功能的情况下,通过整个软件或是软件的某项功能来严格测试系统功能是不是能够正常运行。测试者不需要审查内部源代码,也不用了解源代码的原理及是如何工作,而是输入各种可能来验证功能。

白盒测试则完全不同,黑盒测试是绕过了程序的源代码,直接在系统前端上进行各种可能的测试,那么白盒测试就是专门针对源代码及其逻辑所进行的一种检测,从代码中发现在算法、语法、溢出等方面可能出现的缺陷或错误。

6.4测试分析

经过对上述的测试结果分析,本基于微信小程序的二手闲置交易市场系统满足用户的要求和需求。系统界面友好、功能齐全,系统运行后很稳定,可靠,也具有二手闲置交易的重要的功能。所有基本功能齐全,操作简单,系统运行性能良好,是一个值得推广的大众化的二手闲置交易软件。

第7章 总结

在这次毕业设计中,我发现在生活和工作中,计算机应用隐藏着巨大的潜力。在学校的四年中,我全力学习计算机网络专业知识和本文使用,我相信所有困难终都会被解决的。

本次开发的基于微信小程序的二手闲置交易市场系统已经接近尾声阶段了,在这次独立完成毕业设计的期间,我自己体会到了很多的东西,另外我很想说的就是独立开发软件真的很能让人在开发期间得到锻炼,不管是需求分析,还是系统的设计以及系统功能详细实现还有最后的测试工作,每一步都要小心翼翼的完成,一步一步来,不然任何环节出现了差错,返工起来也很麻烦,开发系统过程中,遇到了很多的难题,比如基于微信小程序的二手闲置交易市场系统需要具有什么样的功能,这个我还是思考了很久,后来同学给我提示了一下,参考别人做好的系统,看看人家设计了什么功能,自己就多多参考下,后来这个问题就很好解决了,最难的就是系统编码了,我这个人本来就比较粗心,编码出现很多不该出现的错误,不该打空格也不小心键盘空格键多敲了两下,整得自己老是程序运行出错,找了好久都没有解决,后来无奈找到室友帮忙看看,慢慢检查终于找到问题了,编码过程真的很心塞。还好东拼西凑总算完成了功能要求了。系统整体界面虽然不是很好看,但起码不花哨,用户使用起来整体感觉就是简洁,功能体验虽然有点啰嗦,但是需要的功能都已经具备了。

自己的身份目前还是学生,开发程序肯定是不会考虑周全,程序完成开发后也经过了一系列测试,整体来说还是没有发现明显的操作逻辑错误,自己在毕设制作过程中不仅知识有所增加,独立学习的能力也有所提高了,更重要的就是遇到问题向周边同学寻求帮助,这个是很有必要的。总的来说毕业设计的圆满完成,我真的觉得很自豪。

致  谢

设计基于微信小程序的二手闲置交易市场系统的过程是对我学习能力与学业水平的一次考验。通过这次的毕业设计使我对程序的编写有了深刻的认识,我的程序编辑能力也得到了很大的提升。虽然在系统开发过程中有很多我无法独立解决的难题,但是在老师的悉心指导,以及经过自己持之以恒的编写与调试程序下,程序的开发最后得到了完满的结果。

我的毕业论文(设计)撰写工作自始至终都是在指导老师全面、具体的指导下进行的。在这里我要对指导老师表示由衷的感谢,从系统的选题,到功能体系的设计,指导老师给出了许多建设性的意见,当设计碰到问题时,他总是不辞辛劳研究模块,代码,提出有效的解决建议。指导老师给予了我悉心的关怀与指导,尤其是他那种一丝不苟、严谨求实、兢兢业业的教学和工作态度将使我终身受益。设计期间,虽然辛苦,但很幸福。经过几个月以来的学习与设计我学到了很多知识,它让我更加懂得了一份耕耘,一份收获的深刻道理,更学会了与身边同学进行团队合作,共同进步。通过此次毕业设计,也让我明白了:首先,在工作学习过程中,对所要做的事情要先收集各种相关资料,对其有大致的了解;其次,考虑问题不能只考虑单方面,要全面分析、认真思考;最后,做事情要合理安排。

感谢我的指导教师对我的关心、指导和教诲! 感谢我的父母把我培养这么大,供我上大学,让我有机会学习这么多。感谢陪伴我四年一起成长学习的同学们,同学们在学习和生活上对我的帮助和照顾!最后,最主要的是要感谢各位老师对我的教育,在设计途中,多次的崩溃,多次的手足无措,很多次的想要放弃,都是老师对我不断的鼓励,我才坚持下来,最终完成了毕业设计。感谢大家的支持,使我对今后将要面对的社会,工作,生活,信心百倍。再次表示感谢,谢谢!

参考文献

[1]中国微信发展的量化研究[J].匡文波.国际新闻界. 2014(05)

[2]微信平台上的品牌营销策划研究[J].李鑫.中小企业管理与科技(上旬刊). 2014(01)

[3]论微信公众平台在教辅出版中的应用[J].杨宁.编辑之友. 2014(01)

[4]微信小程序开发[J]. 王婷婷.信息技术与信息化.2018(12)

[5]基于微信小程序的高校停车位管理系统[J]. 赵妍,赵靖,王滢.科学技术创新.2019(22)

[6]微信小程序:机遇与挑战并存[J]. 匡文波.新闻论坛.2017(02)

[7]微信小程序入口在哪?有什么用?[J]. 张小龙.计算机与网络.2017(04)

[8]微信小程序如何使用[J]. 意达.新天地.2017(02)

[9]微信“小程序”开发的系统实现及前景分析[J]. 刘玉佳.信息通信.2017(01)

[10]微信小程序会杀死APP吗[J]. 周平平.计算机与网络.2017(01)

[11]MySQL数据库安全研究[J]. 蒋睿.电脑知识与技术.2020(09)

[12]微信小程序开发图解案例教程[M].人民邮电出版社 , 刘刚, 2017

[13]实战微信小程序[M]. 电子工业出版社 , 荣蓉, 2017

[14]微信小程序开发快速入门[M]. 电子工业出版社 ,黄曦, 2017

[15]基于微信小程序的移动学习平台的设计与实现[J]. 牛琳,吴琳.软件工程.2018(09)

核心代码展示

/*** 公告通知* 后端接口* @author * @email * @date 2021-03-09 11:33:59*/
@RestController
@RequestMapping("/news")
public class NewsController {@Autowiredprivate NewsService newsService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( NewsEntity news){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); return R.ok().put("data", newsService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(NewsEntity news){EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); NewsView newsView =  newsService.selectView(ew);return R.ok("查询公告通知成功").put("data", newsView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody NewsEntity news, HttpServletRequest request){//ValidatorUtils.validateEntity(news);newsService.updateById(news);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){newsService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = newsService.selectCount(wrapper);return R.ok().put("count", count);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/diannao/37308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSQL的系统视图pg_stat_archiver

PostgreSQL的系统视图pg_stat_archiver 在 PostgreSQL 数据库中&#xff0c;pg_stat_archiver 视图提供了关于归档进程&#xff08;archiver process&#xff09;的统计信息。归档进程负责将 WAL&#xff08;Write-Ahead Logging&#xff09;日志文件复制到归档存储&#xff0…

探索区块链:颠覆性技术的崛起

目录 一、引言 二、区块链技术概述 三、区块链应用场景 四、区块链面临的挑战 五、区块链的未来展望 六、结语 一、引言 在数字化浪潮的推动下&#xff0c;区块链技术以其独特的去中心化、透明性和不可篡改性等特性&#xff0c;正在逐步改变我们的生活。从金融领域到供应…

基于Java的茶文化交流系统【附源码+LW】

摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&#xff0c;让整个世界都可以即时通话…

MySQL数据库存储引擎

MySQL数据库存储引擎 存储引擎概念 存储引擎也称为表类型 通过不同的技术比如说&#xff0c;存储机制&#xff0c;索引技巧&#xff0c;锁定水平等等&#xff0c;来提供不同的功能。 查看MySQL支持的存储引擎 show engines\G&#xff1b; 常用引擎比较 对事务有需求 innodb …

TiDB-从0到1-数据导出导入

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCCTiDB-从0到1-部署篇TiDB-从0到1-配置篇TiDB-从0到1-集群扩缩容 一、数据导出 TiDB中通过Dumpling来实现数据导出&#xff0c;与MySQL中的mysqldump类似&#xff0c;其属于…

Spring Boot中如何配置和使用多数据源

Spring Boot中如何配置和使用多数据源 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将深入探讨如何在Spring Boot应用中配置和使用多数据…

oracle with as 是什么并且怎么用

Oracle中的WITH AS语句&#xff0c;也被称为Common Table Expressions&#xff08;CTE&#xff09;&#xff0c;是一个用于定义临时结果集或视图的子句。这个临时结果集或视图只在当前的查询中存在&#xff0c;并且在查询完成后会被自动删除。使用WITH AS可以提高SQL语句的可读…

JavaWeb——MySQL:navicate客户端工具简单使用

目录 1. 连接 2. 新建数据库 3. 使用数据库 4. 新建表 5.使用表 6. 导出数据库 我这里是英文版&#xff0c;没有进行汉化。 1. 连接 点击左上角Connection&#xff0c;选择MySQL&#xff0c;&#xff08;我连接的是自己计算机上的数据库&#xff09;连接名输入&#x…

使用ScheduledExecutorService进行任务调度

使用ScheduledExecutorService进行任务调度 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在软件开发中&#xff0c;任务调度是一项重要的技术需求&#xff…

抖音开放平台运营同学联系我了,非常感谢

大家好&#xff0c;我是小悟 是怎么个事呢&#xff1f; 前几天在对接抖音开放平台&#xff0c;服务商代开发小程序里面的小程序备案&#xff0c;上传备案图片接口遇到了问题&#xff0c;具体的问题可详阅【抖音开放平台&#xff0c;这谁写的&#xff0c;要扣绩效吧】。 评论…

Zoom视频会议的虚拟背景功能:打造个性化会议体验

在远程工作和在线交流日益普及的今天&#xff0c;视频会议已成为连接人们的桥梁。Zoom视频会议软件因其出色的音视频质量和丰富的功能而广受欢迎。其中&#xff0c;虚拟背景功能是Zoom的一大亮点&#xff0c;它不仅能够保护用户隐私&#xff0c;还能为会议增添趣味性。本文将详…

Java编程基本功大揭秘 | 详解深入分析Java线程池源码和底层原理,掌握实战技巧【1】

详解深入分析Java线程池源码和底层原理 文章大纲引言Java线程池概念及重要性 ThreadPoolExecutor类的概述ThreadPoolExecutor类的基本功能和作用**基本功能****核心作用** ThreadPoolExecutor主要构造函数及其参数继承关系链功能介绍ThreadPoolExecutor 构造器构造器参数构造器…

c语言自动售货机

C语言编写的自动售货机程序可以模拟真实自动售货机的基本功能&#xff0c;例如选择商品、显示价格、付款和找零。下面是一个简单的示例代码&#xff0c;展示了一个基本的自动售货机程序&#xff1a; #include <stdio.h>// 商品结构体 typedef struct {char name[30];int…

破解对LabVIEW的偏见

LabVIEW被广泛应用于科学研究、工程测试和自动化控制领域&#xff0c;具有专业性和高效的开发能力。尽管有人对其存在偏见&#xff0c;认为不如C语言&#xff0c;但LabVIEW的图形化编程、强大集成能力、丰富社区支持和专业功能&#xff0c;使其在许多实际应用中表现出色。通过多…

Go语言环境安装

Go下载地址 哪个能用用哪个。 https://go.dev/ https://golang.google.cn/&#xff08;Golang官网的官方镜像&#xff09; Windows 使用.msi安装包安装 下载msi文件 安装 双击运行go1.22.4.windows-amd64.msi Next 勾选I accept the terms in the License Agreement&…

收藏 | SSL证书无效的原因和解决办法

当浏览器访问一个使用SSL证书保护的网站时&#xff0c;会检查其证书的有效性。如果发现证书存在问题&#xff0c;浏览器会显示“SSL证书无效”的警告信息&#xff0c;提醒用户存在潜在的安全风险。 “SSL证书无效”的警告可能会导致用户离开站点&#xff08;并且永远不会返回&…

MySQL高级-SQL优化-小结

文章目录 1、insert 优化2、主键优化3、order by 优化4、group by 优化5、limit 优化6、count 优化7、update 优化 1、insert 优化 insert&#xff1a;批量插入、手动控制事务、主键顺序插入 大批量插入&#xff1a;load data local infile 2、主键优化 主键长度尽量短、顺序插…

系统漏洞复现与勒索病毒

知识点&#xff1a;SMB漏洞介绍、漏洞复现流程、勒索病毒攻击与防护 渗透测试相关&#xff1a; 基本概念&#xff1a; 渗透测试就是利用我们所掌握的渗透知识&#xff0c;对网站进行一步一步的渗透&#xff0c;发现其中存在的漏洞和隐藏的风险&#xff0c;然后撰写一篇测试报…

FastAPI教程I

本文参考FastAPI教程https://fastapi.tiangolo.com/zh/tutorial 第一步 import uvicorn from fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message": "Hello World"}if __name__ __main__:uvicorn.run(&quo…

GPT-4o模型到底有多强

近年来&#xff0c;人工智能技术突飞猛进&#xff0c;在自然语言处理&#xff08;NLP&#xff09;和计算机视觉等领域取得了令人瞩目的成就。OpenAI推出的GPT-4o模型作为最新一代的语言模型&#xff0c;进一步提升了AI的能力&#xff0c;尤其在文档分析、识图生文、文生图等功能…