🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。
- 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目展示
1 绪 论
1.1课题背景
在Internet高速发展的今天,计算机的应用几乎完成覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国,网上管理的兴起也同时飞速发展着。为了适应现代人类强烈的时间观念,对于大量考研物品信息不能及时的被分享,用户也没有办法了解更多的考研物品信息这样一种现状,造成各方面的不方便,许多用户找不到相关物信息;考研购物管理的方式已经成为一个重要的问题。因此,这就需要一个方便的考研购物网站,方便用户。王道考研购物网站正是这么一个方便的平台。本网站中,用户可以以最方便的形式,在最短的时间内查找最多的考研购物信息,完成分享与收藏。因此,系统无疑给人们的生活带来了极大的方便,网络的应用让时间和距离不再是局限。
1.2课题研究的意义
通过王道考研购物网站的研究可以更好地理解系统开发的意义,而且也有利于发展更多的智能系统,解决了人才的供给和需求的平衡问题,王道考研购物网站的开发建设,由于其开发周期短,维护方便,所以它可以适应考研购物体系基本要求。
1.3系统实现的功能
本次设计任务是要设计一个王道考研购物网站,通过这个系统能够满足考研购物的管理以及用户的王道考研购物信息管理功能。系统的主要功能包括:个人中心,用户管理,考研书籍管理,课程信息管理,课程购买管理,课程文件管理,系统管理,订单管理等。
管理员可以根据系统给定的账号进行登录,登录后可以进入王道考研购物网站,对网站所有模块进行管理。包括查看和修改自己的个人信息以及登录密码。
该系统为每一个用户都分配了一个用户账号,用户通过账号的登录可以在系统中查看考研购物信息及对个人信息进行修改等功能。
1.4课题研究现状
现今,越来越多的人乐于选择一项合适的管理方案,但是普通用户往往受到管理经验地限制,这时购物网站的崛起,大量考研购物制度进入人们生活,而王道考研购物网站无疑是最好制度,在这样成功的管理模式背景下,考研购物信息越来越多。但是随着考研购物信息的增多,考研购物的管理成为了一个难题。高效便捷地管理考研购物是转变管理模式,与时代兼容的当务之急。
王道考研购物网站,为用户随时随地查看考研购物信息提供了便捷的方法,更重要的是大大的简化了管理员管理信息的方式方法。相比于传统信息管理方法,这样的电子信息管理更为简洁方便,在考研购物维护信息反馈和处理考研购物信息意见方面也有得天独厚的优势。
王道考研购物网站能做到的不仅是大大简化管理员的信息管理工作,在提高考研购物运营收益的同时还能缩减开支,更能在数字化的平面网络上将考研购物最好的一面展示给客户和潜在客户,而这个系统在带给考研购物全新用户信息管理统计和分类的同时,还成为日后考研购物制定管理思路的重要数据参考。过程永远比结果重要。毕业设计是大学生活中最为浓墨重彩的一笔,在这个过程中不仅学到更为全面的书本和实践知识,更让我感受到了浓浓的同窗之情及师生情。这个系统成为考研购物管理者最不可或缺的内容。尽管目前大部分已经考研购物管理系统投入使用,但是人们对于系统要求也变得越来越高,大部分系统已经能完美处理各类信息,但是为了更好地契合考研购物管理思路,不同机构有不同的要求,个性化也是管理系统十分重要的一点,所以都希望自己能有一个个性化定制的考研购物网站,但这又涉及到成本控制问题,目前定制一个系统价值不菲,但是如果有这样一个可以根据需求自己制定页面和内容的王道考研购物网站就可以大大缩减开支,但是凭借目前自身技术恐怕难以实现,不过让系统可二次设计却是有可能实现的。随着考研购物规模的不断扩大,用户信息共享也成一种趋势。考研购物网站的发展也证明了系统管理在不断发展进步,各种理念也越来越先进,对各方面的要求也变得越来越高,王道考研购物网站完全可以在进入页面时发布各类信息进行推荐交流。
2系统相关技术
2.1 Java技术
JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言,便于结构的分离,支持多种浏览器可以在多平台下运行。它具有三个不同的体系,分别为J2SE、J2EE、J2ME。Java 语言比较容易理解,而且也容易学习和上手,其语法与C语言和C++语言很相似,它可以自动的处理废料,而且不会受到内存的影响。
Java 程序被编译后形成的class 文件,这样就能够实现在多系统中正常运行。Java语言支持多个线程同吋执行,Java程序所需要的类能够动态的或者通过网络被载入到运行环境。Java开发工具支持JavaJDK7\8。
2.2 B/S架构
B/S的系统是通过能上网的电脑就可以使用,它最大的优点是不需要安装专门的软件,首先浏览器向服务器发出请求,然后服务器处理请求把信息再返回给浏览器。不需要再次对数据进行存取与计算数据,只要负责显示数据来降低要求,如果说客户端像个“瘦子”,而服务器会越来越“胖”。B/S体系结构与C/S体系结构相比,最大的不同是:B/S体系的应用软件使用网络浏览器作为与用户交互的平台,而C/S则需要开发专用的应用程序。
图2-1 B/S结构图
2.3 MySQL 介绍
在软件项目,通过经营性数据的数据库,可以保证其安全,独立和数据一致,访问数据的系统来提供,所以有效减少时间程序员开发应用程序。
MySQL可以支持多线程,可以方便使用系统的资源,提高运行的速度。并提供odbc、jdbc和tcp/ ip,以各种形式连接到MySQL; 功能方面表现欠缺,规模小,但对于这个系统就足够了。
因为MySQL是源代码对外开放的,所以任何人都可以通过相应的方法下载,并根据个性化需求进行修改。 由于MySQL的速度,可靠性和适应性,MySQL受到重视。
MySQL虽然功能可能不是很强大,但由于其开源,广泛传播,导致很多人都意识到这个数据库。
2.4MySQL环境配置
本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。
修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\Program Files\MySQL\bin
MySQLadmin -u root -p password 123
回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。
2.5SSM框架
开发信息管理系统的主流框架是SSM(Spring + Spring MVC + MyBatis),SSM框架web层使用Spring MVC框架,使传输前后端数据变得简单;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框架;对于相关SQL操作,采用Mybatis作为持久层框架,对JDBC进行封装,使得数据库的底层面向开发者操作处于一种透明状态。
3系统需求分析
3.1系统功能
通过前面的功能分析可以将王道考研购物网站的功能分为管理员和用户两个部分,系统的主要功能包括个人中心,用户管理,考研书籍管理,课程信息管理,课程购买管理,课程文件管理,系统管理,订单管理等内容。本系统是针对已注册登录的用户看到满意的考研购物信息而设计的。
1、用户的功能及权限
用户登录注册后,进入到网站首页,可以查看首页,考研书籍,课程信息,公告信息,个人中心,后台管理,购物车等内容进行操作。
2、管理员的功能及权限
用户信息的添加和管理,考研购物详细信息添加和管理,这些都是管理员的功能。
3.2可行性研究
通过对系统研究目标及内容的分析审察后,提出可行性方案,并对其进行论述。主要从技术可行性出发,再进一步分析经济可行性和操作可行性等方面。
3.2.1经济可行性
开发系统所涉及到的资料,一般是在图书馆查阅,或是在网上进行查找收集。所需要的一些应用软件也都是在网上可以免费下载的,因此,开发成本是几乎为零。但是开发出来的系统,还是具有高效率,低成本,较高质量的。所以,从经济可行性的角度,该系统符合标准。
3.2.2技术可行性
技术可行性是考虑在现有的技术条件下,能否顺利完成开发任务。以及判断现有的软硬件配置是否能满足开发的需求。而本系统采用的是开发技术,并非十分困难,所以在技术上是绝对可行的。此外,计算机硬件配置是完全符合发展的需要。
3.2.3运行可行性
当前计算机信息化的知识已经十分普及了,现在的操作人员也都是对系统环境有很强的适应性,各类操作人员大都是有过培训补充的,因此完全不影响组织结构,所以在运行上也是可行的。
3.2.4时间可行性
从时间上看,在大四的最后一个学期,在实习工作与完成毕设两件大事相交叉的时间里,结合之前学习的相关知识,并开发系统,时间上是有点紧,但是也不是完全没可能实现,通过这段时间的努力功能基本实现。
3.3系统业务过程分析
王道考研购物网站是两种身份的用户,主要涉及管理员和用户。每个身份都是操作起来都是清楚方便的。对于一些考研书籍信息要进入后台进行操作,必须是已经进行注册登录的用户。这些用户的基本信息都由管理员对其统一管理。
根据考研购物实际过程的分析,网站有以下几个部分,其中用户注册,发布个人信息,修改个人信息;一般用户只可以浏览不可以发布信息。以上业务过程从用户角度可以分为两类使用本系统的用户角色,包括管理员和用户。以下针对各类用户说明相应的业务过程。
3.4系统用例图
系统用例图如下图3-1所示:
图3-1 系统业务用例图
4系统设计
4.1数据库设计
信息管理系统的效率和实现的效果完全取决于数据库结构设计的好坏。为了保证数据的完整性,提高数据库存储的效率,那么统一合理地设计数据库结构是必要的。数据库设计一般包括如下几个步骤:
(1)根据用户需求,确定数据库信息进行保存
对用户的需求分析是数据库设计的第一阶段,用户的需求调研,熟悉运作流程,系统要求,这些都是以概念模型为基础的。
(2)设计数据的概念模型
概念模型与数据建模用户的观点一致,用于信息世界的建模工具。通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。
用户注册实体图如图4-1所示:
图4-1用户注册实体图
考研书籍实体图如图4-2所示:
图4-2考研书籍实体图
(3)数据库逻辑结构分析
数据库概念结构设计后,可以数据库概念转化实际的数据模型,这是一种数据库的逻辑结构,就是将概念结构与支持数据库管理系统的模型相符合。具体的表设计如下所示:
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
yonghuming |
varchar |
200 |
用户名 |
||
mima |
varchar |
200 |
密码 |
||
xingming |
varchar |
200 |
姓名 |
||
xingbie |
varchar |
200 |
性别 |
||
touxiang |
varchar |
200 |
头像 |
||
shouji |
varchar |
200 |
手机 |
||
money |
float |
余额 |
0 |
表4-2:购物车表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
tablename |
varchar |
200 |
商品表名 |
kaoyanshuji |
|
userid |
bigint |
用户id |
|||
goodid |
bigint |
商品id |
|||
goodname |
varchar |
200 |
商品名称 |
||
picture |
varchar |
200 |
图片 |
||
buynumber |
int |
购买数量 |
|||
price |
float |
单价 |
|||
discountprice |
float |
会员价 |
表4-3:用户表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
username |
varchar |
100 |
用户名 |
||
password |
varchar |
100 |
密码 |
||
role |
varchar |
100 |
角色 |
管理员 |
|
addtime |
timestamp |
新增时间 |
CURRENT_TIMESTAMP |
表4-4:地址
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
userid |
bigint |
用户id |
|||
address |
varchar |
200 |
地址 |
||
name |
varchar |
200 |
收货人 |
||
phone |
varchar |
200 |
电话 |
||
isdefault |
varchar |
200 |
是否默认地址[是/否] |
表4-5:token表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
userid |
bigint |
用户id |
|||
username |
varchar |
100 |
用户名 |
||
tablename |
varchar |
100 |
表名 |
||
role |
varchar |
100 |
角色 |
||
token |
varchar |
200 |
密码 |
||
addtime |
timestamp |
新增时间 |
CURRENT_TIMESTAMP |
||
expiratedtime |
timestamp |
过期时间 |
CURRENT_TIMESTAMP |
表4-6:收藏表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
userid |
bigint |
用户id |
|||
refid |
bigint |
收藏id |
|||
tablename |
varchar |
200 |
表名 |
||
name |
varchar |
200 |
收藏名称 |
||
picture |
varchar |
200 |
收藏图片 |
||
type |
varchar |
200 |
类型(1:收藏,21:赞,22:踩) |
1 |
|
inteltype |
varchar |
200 |
推荐类型 |
表4-7:订单
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
orderid |
varchar |
200 |
订单编号 |
||
tablename |
varchar |
200 |
商品表名 |
kaoyanshuji |
|
userid |
bigint |
用户id |
|||
goodid |
bigint |
商品id |
|||
goodname |
varchar |
200 |
商品名称 |
||
picture |
varchar |
200 |
商品图片 |
||
buynumber |
int |
购买数量 |
|||
price |
float |
价格 |
0 |
||
discountprice |
float |
折扣价格 |
0 |
||
total |
float |
总价格 |
0 |
||
discounttotal |
float |
折扣总价格 |
0 |
||
type |
int |
支付类型 |
1 |
||
status |
varchar |
200 |
状态 |
||
address |
varchar |
200 |
地址 |
||
tel |
varchar |
200 |
电话 |
||
consignee |
varchar |
200 |
收货人 |
||
logistics |
longtext |
4294967295 |
物流 |
表4-8:公告信息
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
title |
varchar |
200 |
标题 |
||
introduction |
longtext |
4294967295 |
简介 |
||
picture |
varchar |
200 |
图片 |
||
content |
longtext |
4294967295 |
内容 |
表4-9:课程信息
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
kechengmingcheng |
varchar |
200 |
课程名称 |
||
kechengleixing |
varchar |
200 |
课程类型 |
||
kechengtupian |
varchar |
200 |
课程图片 |
||
shangkedidian |
varchar |
200 |
上课地点 |
||
shipinjieshao |
varchar |
200 |
视频介绍 |
||
kechengjiage |
int |
课程价格 |
|||
kechengneirong |
longtext |
4294967295 |
课程内容 |
||
faburiqi |
date |
发布日期 |
表4-10:课程文件
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
dingdanbianhao |
varchar |
200 |
订单编号 |
||
kechengtupian |
varchar |
200 |
课程图片 |
||
kechengwenjian |
varchar |
200 |
课程文件 |
||
xinxibeizhu |
longtext |
4294967295 |
信息备注 |
||
fasongriqi |
date |
发送日期 |
|||
yonghuming |
varchar |
200 |
用户名 |
表4-11:课程购买
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
dingdanbianhao |
varchar |
200 |
订单编号 |
||
kechengtupian |
varchar |
200 |
课程图片 |
||
kechengjiage |
int |
课程价格 |
|||
kechengwenjian |
varchar |
200 |
课程文件 |
||
goumairiqi |
date |
购买日期 |
|||
yonghuming |
varchar |
200 |
用户名 |
||
crossuserid |
bigint |
跨表用户id |
|||
crossrefid |
bigint |
跨表主键id |
|||
sfsh |
varchar |
200 |
是否审核 |
否 |
|
shhf |
longtext |
4294967295 |
审核回复 |
||
ispay |
varchar |
200 |
是否支付 |
未支付 |
表4-12:考研书籍
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
shujimingcheng |
varchar |
200 |
书籍名称 |
||
shujifenlei |
varchar |
200 |
书籍分类 |
||
shujifengmian |
varchar |
200 |
书籍封面 |
||
shujizuozhe |
varchar |
200 |
书籍作者 |
||
chubanshe |
varchar |
200 |
出版社 |
||
shujijieshao |
longtext |
4294967295 |
书籍介绍 |
||
price |
float |
价格 |
表4-13:配置文件
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
name |
varchar |
100 |
配置参数名称 |
||
value |
varchar |
100 |
配置参数值 |
4.2系统整体设计
系统功能结构图是系统设计阶段,系统功能结构图只是这个阶段一个基础,整个系统的架构决定了系统的整体模式,是系统的根据。王道考研购物网站的整个设计结构如图4-4所示。
图4-4系统功能结构图
4.2.1系统设计思想
系统确定了各项需求,完成了系统的分析和数据库的设计,它就可以根据网站的特点决定网站的发展模式,才能实现代码。通过对网站的分析,这个网站是属于一个小项目,所完成的功能相对简单,就是对数据的基本操作。从而决定采用B/S开发模式。该模型的基本过程是:当用户访问网站的浏览器,或从用户向服务器发送请求时,通过接收请求,然后调用数据访问逻辑运算如比,将结果返回给将结果返回到用户通过浏览器。
使用开发的模型时,我们要把一些常用的,可以重复使用了java技术。当用户浏览网页,很多网页上的信息是从数据库动态删除,这就要求网页必须有数据库操作的能力,如连接数据库和数据表,更新。一个网站包含多个相同的网页,实现数据库操作功能的、代码就需要在不一样的网页中重复的被使用,这样不仅降低了工作的效率,一般也会给维护带来较大的麻烦。为了弥补这一缺陷,功能代码应该在java中完整的数据库操作,可以使用在每一个页面上。
4.2.2系统流程图
下图是用户进入这个王道考研购物网站后,基本的操作流程。一进入首页便可以查看王道考研购物信息,如果有合适的课程信息,就能进行相应的购买,收藏,添加到购物车等操作,但前提是必须是登录的用户,不然系统会提示需重新登录才可操作。用户也可通过公告的消息,了解实时的情况。
图4-5系统操作流程图
5系统详细设计
5.1系统功能模块
王道考研购物网站,用户进入到网站首页,可以查看首页,考研书籍,课程信息,公告信息,个人中心,后台管理,购物车等内容进行操作,如图5-1所示。
图5-1网站首页界面图
考研书籍;在考研书籍页面中可以查看书籍名称,价格,书籍分类,书籍作者,出版社等内容,并进行添加到购物车,立即购买,点我收藏等操作;如图5-2所示。
图5-2考研书籍界面图
用户注册;在用户注册页面中输入用户名,密码,确认密码,姓名,手机等内容进行用户注册操作;如图5-3所示。
图5-3用户注册界面图
个人中心,在个人中心页面中输入用户名,密码,姓名,性别,图片,手机,余额等内容进行更新信息,并可以根据需要对我的订单,我的地址,我的收藏等进行详细的操作,如图5-4所示。
图5-4个人中心界面图
5.2管理员功能模块
管理员登录系统,通过输入用户名、密码,选择角色并点击登录进行系统登录操作,如图5-5所示。
图5-5管理员登录界面图
管理员登录系统后,可以对个人中心,用户管理,考研书籍管理,课程信息管理,课程购买管理,课程文件管理,系统管理,订单管理等功能模块进行相应操作,如图5-6所示。
图5-6管理员功能界面图
用户管理,在用户管理页面可以对用户名,姓名,性别,头像,手机等信息进行查看,修改和删除等操作,如图5-7所示。
图5-7用户管理界面图
考研书籍管理,在考研书籍管理页面可以对书籍名称,书籍分类,书籍封面,书籍作者,出版社,价格等信息进行查看,修改和删除等操作,如图5-8所示。
图5-8考研书籍管理界面图
课程信息管理,在课程信息管理页面可以对课程名称,课程类型,课程图片,上课地点,视频介绍,课程价格,发布日期等信息进行查看,修改和删除等操作,如图5-9所示。
图5-9课程信息管理界面图
课程购买管理,在课程购买管理页面可以对订单编号,课程图片,课程价格,课程文件,购买日期,用户名,是否审核,审核回复,是否支付等信息进行审核,课程发送,查看,修改和删除等操作,如图5-10所示。
图5-10课程购买管理界面图
课程文件管理,在课程文件管理页面可以对订单编号,课程图片,信息备注,发送日期,用户名等信息进行查看,修改和删除等操作,如图5-11所示。
图5-11课程文件管理界面图
订单管理,在订单管理页面可以对订单编号,商品名称,商品图片,购买数量,价格,折扣价格,总价格,折扣总价格,支付类型,状态,地址,电话,收货人等信息进行详细操作,如图5-12所示。
图5-12订单管理界面图
5.3用户功能模块
用户登录进入系统可以对个人中心,课程购买管理,课程文件管理等功能模块进行相应操作,如图5-13所示。
图5-13用户功能界面图
课程购买管理,在课程购买管理页面可以对订单编号,课程图片,课程价格,课程文件,购买日期,用户名,是否审核,审核回复,是否支付等信息进行查看操作,如图5-14所示。
图5-14课程购买管理界面图
6系统测试
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
测试用例1及测试过程:
登录:录入登录信息,账号,密码,权限,点击登录按钮,会出现两种情况:登录成功进入用户具有权限的功能界面和提示登录失败。
测试用例2及测试过程:
管理员登录:录入登录信息,管理员账号,密码,权限,点击登录按钮,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。
7总结与心得体会
7.1总结
通过完成该王道考研购物网站和本论文的撰写让我更加明白了软件开发过程中软件工程思想的重要性。在项目的前期由于对需求分析做的不够谨慎和明确,导致了后面在设计甚至编码时候造成了许多不必要的麻烦。由此在今后的学习和工作开发之中必须要牢牢把握住软件工程的设计思想和方法,这样可以进一步保证项目开发的健壮性和准确性。
本网站所实现的是一个王道考研购物网站,该系统严格按照需求分析制作相关模块,并利用所学知识尽力完成,但是本人由于学识浅薄,无法真正做到让该程序可以投入市场使用,仅仅简单实现部分功能,希望日后还能改善。
本系统具有以下优点:
该系统具有较高的适用性,选用B/S结构,可以在绝大部分个人平台上使用该系统。
系统将用户权限进行划分,管理员和用户能看到及操作的信息不一样,两者具备不同的操作权限。
该系统操作界面简单明了,大部分人都可以正常使用。
但也存在以下问题需要改进:
系统的执行效率的考虑实属不够,比如数据库的存储过程、页面的设计及美化程度以及页面调用方式等。
运行时窗口不能被刷新,可以改进。
系统过于简单,显示的信息有限。
不能添加多个管理员账号,如果可以则将利于发展王道考研购物网站规模,便于考研购物信息集中管理。
这些问题可以再进一步的修改和完善以及进行后期的维护。
本网站使用了java开发技术与mysql数据库共同完成设计。在网站最后测试运行的时候,调试程序时,总是出现多处报错,通过查看错误提示,发现是数据库连接有问题,总是不正确。后来经过不断的查找才发现登录数据库的密码错误,随后修改数据库密码,这才正常调试了出来。解决问题还是在于查阅了有关和mysql方面的图书、上了各种王道考研购物网站吸取成熟的经验。由于自己在之前的课程设计等学科上并没有很好的掌握知识,没有进一步的去自学网站的设计,对于一些框架技术基本都已不记得,更不会灵活的使用。所以这次的毕业设计,为了较好的完成,自己重新去图书馆借书研究,弥补之前丢失的知识。
7.2心得体会
由于经验和能力不足,导致在开发、设计该系统的时候,出现了比较多的问题,例如需要用到的技术不熟悉、程序报错等,后来我积极地向同学当中的大牛询问自己出现的问题同时也会找一些相关的书进行学习,慢慢的一点点将自己遇到的问题逐渐解决。所以不管以后在任何时候合作都会让自己事半功倍。通过本系统的完整的开发,可以遇到自己平时写一些简单的小程序遇不到的问题,不仅仅局限与技术与业务方面的,同时也使得自己更加深入的了解软件过程的开发设计思想,对于即将踏入社会工作而言,这些心得都十分重要。在以后的研究生学习生涯也必须加深这方面的理解,将最好的开发技术和最新的科学原理运用到自己以后的开发工作和学习研究中去。
[1] 李兴华. JavaWeb开发实战经典基础篇(第1版)[M].北京:清华大学出版社,2010.8
[2] 程志艳, 张亮. JSP实用简明教程[M].北京:清华大学出版社,2005.12
[3] 陈刚. Eclipse从入门到精通[M].北京:清华大学出版社,2005.6
[4] 李勇平.JSP应用开发详解[M].电子工业出版社,2005.10
[5] 郑自国,邹丰义.Java案例开发集锦[M].北京:电子工业出版社,2005.2
[6] 张孝祥. 深入Java Web开发内幕——核心基础[M]. 北京:电子工业出版社. 2006
[7] 李安渝. Web Services技术与实现[M]. 北京:国防工业出版社,2003
[8] 孙卫琴,李洪成.Tomcat 与 Java Web 开发技术详解[M].电子工业出版社,2003.6:1-205
[9] 曹广鑫 编著.JSP数据库项目开发宝典[M].北京:电子工业出版社,2006
[10] 王剑,邓武.基于Web服务面向服务的动态电子商务应用框架研究[J].科学技术与工程,2008,2(3):65-90
[11] 周旌恒.JSP应用开发详解(第三版)[M].北京:电子工业出版社,2004
[12] Shanliang Xue;Qing Yan Wei;Guang Ming Jiao;Dun Wen Zuo. Research Code Management System Based on J2EE[J]. Key Engineering Material.2010,Vol.431-432(188-191)
[13] Yan Ming Li;Li Feng Wan. Design On Framework Structure of College English Learning Management System Based on Struts2[J].Advanced Materials Research.2013,Vol.846-847(1558-1561)
[14]Bruce Eckel. Thinking in Java[M]. Upper Saddle River, New Jersey, USA: Prentice Hall, 2006
[15] Joshua Bloch. Effective Java[M]. Piscataway, N.J: IEEE Press, 2009
[16] Juan Lipson Vuong.A semantics-based routing scheme for grid resource discovery[M].E-Science: First
International Conference on E-Science and GridComputing,2005:58-70,90
我要向我的指导老师,表示衷心的感谢,感谢他的帮助与指导。
他对我非常的关心,每个星期都会对我进行指导,时时关心我的毕业设计的进度,经常以各种短信,QQ等形式来与我进行联系,时刻督促我的论文进度。如果说毕业设计的完成是很辛苦的一件事,那么其中最辛苦的莫过于我的指导老师,因为我都是只要完成自己的就好,而他每每都是多份的论文需要反复的检查,反复的指导,而他从未有任何的抱怨。几乎每次的论文要求都会提前准备,按时交至系统的,这跟老师的时刻督促是离不开的。他让我明白,完成毕设,合理的时间安排是多么的重要。他对于我每次提交的不够成熟的论文,都是细心修改,几乎是没有批评的,当拿到修改意见的时候,就能看出老师的耐心及责任心。对于我的论文,他都能如此的一丝不苟,我们有何理由不认真对待自己的作品。在整个过程中,因为老师的不断提点,耐心教导,才有我不断的进步。在网站开发过程中总是能引导我,开发我的思路,一些及时的意见使我能及时的改正不足,原本系统很多功能不齐全,在他的指导下,我才能及时的完成任务,在这里我再次表示深深的感谢。通过本次毕业设计,我才真正明白什么是设计,什么是开发,系统开发才算是真正的实践,所以当自己真正花心思去研究,去开发的时候,看到系统成形的那刻是很有成就感的。我想,这最后的实践经历,对我尤为重要,尤为可贵,这些对我以后的工作和学习都将会是一种帮助。
还有不得不感谢身边的小伙伴,毕竟个人的知识力量是很有限,遇到问题的时候,还是多亏同学的帮助,通过同学介绍,看到更多有利于网站开发的书籍,也通过不同同学的各种意见,才能更好的改进系统。
核心代码展示
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
项目推荐
【计算机毕业设计】基于Springboot的网上购物商城销售系统
⬇️文章末尾可以获取联系方式,需要源码,高清图片,演示视频可以联系(不开源)⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡