【计算机毕业设计】294网络安全科普系统_信息安全毕业设计系统

3.4系统功能分析

本系统的界面分为用户界面和管理员后台界面。管理员后台界面和用户界面需要符合身份的用户通过登录验证后才可以使用。在微信小程序端里用户可以浏览科普知识信息、案例分析信息、试题信息并进行答题和发布帖子等。管理员可以管理微信小程序端基本信息和管理用户的帖子等。

3.5系统流程分析****

本系统所有的功能使用都基于用户登录后,用户登录时数据流会从登录界面流向用户信息表中,然后数据库进行验证,如果可以找到用户输入的数据则界面就会跳转到登录成功界面,用户就可以在系统里进行操作。操作的数据会流向对应的数据库表中,完成用户的指令,最后将数据流入界面展示给用户。本系统的1层流程图如下图3.1所示:

图3.1系统流程1层图

对系统中信息的流动进行抽象就可以得到数据流程图。数据流程图表达了信息的逻辑模型,用来开发人员和用户进行交流。本系统的流程2层图如下图3.2所示:

图3.2系统流程2层图

对管理员的功能进行分析,得出管理员的信息流动,管理员可以管理科普知识信息、用户信息、试题内容信息和分类信息等。管理员的流程3层图如下图3.3所示:

图3.3管理员数据流程3层图

对用户的功能进行分析,得出用户的信息流动,用户可以浏览科普信息和留言、答题等。用户的数据流程3层图如下图3.4所示:

图3.4用户数据流程3层图

总结管理员和用户的信息流程,得出本系统的流程图。本系统的流程图如下图3.5所示

图3.5系统流程图

4章 总体设计

4**.1系统目标******

本系统旨在达到科普知识信息展示、案例分析信息查询、试题信息添加、评论、答题管理、信息分类等为一体,为用户和管理员提供服务。使管理员更加轻松的进行工作,使用户更加快速的解决自己的问题。本系统的设计界面丰富,各个模块和按钮明确展示,使所有使用者都可以一目了然,达到人机交互、功能齐全、可扩展的目的。

4**.2系统功能设计******

根据第三章的功能分析设计出本系统的功能为科普知识管理、用户管理、反馈交流管理、答题管理等。本系统的权限分为用户和管理员两种。界面分为管理员界面和用户界面。本系统的功能结构图如下图4.1所示:

图4.1系统功能结构图

4.3数据库设计****

4.3.1数据库概念模型****

数据库概念模型表达了数据实体和数据实体的关系等信息,在数据库的概念模型中记录了每个数据库表的字段,通过数据库概念模型可以轻松设计数据库。对系统中的数据信息进行抽象并建模可以完成数据库的概念模型,而数据库的概念模型用ER图来表达。

本系统的主要数据为管理员、用户、科普知识信息、分类信息、留言信息等。管理员ER图如下图4.2所示:

图4.2管理员ER图

用户数据由管理员和个人管理。用户数据ER图如下图4.3所示:

图4.3用户ER图

科普知识数据由管理员管理,用户可以浏览,科普知识数据ER图如下图4.4所示:

图4.4科普知识ER图

留言数据由用户和管理员管理。留言数据ER图如下图4.5所示:

图4.5留言ER图

分类信息由管理员管理,分类信息ER图如下图4.6所示:

图4.6分类信息ER图

系统关系ER图如下图4.7所示:

图4.7系统关系ER图

4.3.2数据库表设计****

按照高内聚、低耦合的原则,并考虑到系统后期的扩展问题设计出本系统的数据库表。本系统的数据库表为管理员信息表,用户信息表、科普知识信息表、帖子信息表、分类信息表等。本网络安全科普系统的数据库表结构如下表4.1-4.7所示:

表4.1 anlifenxi

表4.2 config

表4.3 discussanlifenxi

表4.4 discusskepuzhishi

表4.5 exampaper

表4.6 examquestion

表4.7 examrecord

表4.8 forum

表4.9 kepuzhishi

表4.10 messages

表4.11 news

表4.12 storeup

表4.13 token

表4.14 users

表4.15 yonghu

表4.16 zhishifenlei

第5章 系统实现

5.1 ****JAVAMysql数据库连接

数据库建立好后需要和系统连接才可以使系统运行。本系统采用Mysql数据库,在连接时需要设置数据库的服务器名和密码。数据库连接的原理如下图5.1所示:

图5.1 JAVA连接数据库原理

5.2系统用户界面的功能实现****

5.2.1用户登录功能的实现界面****

登录功能是识别身份的唯一途径,本系统中的用户为普通用户、管理员。用户在登录时输入的信息需要流入数据库中进行对比。如管理员输入admin admin,数据库则需要对比管理员信息表中是否有admin admin的数据。存在该条数据才可以登录成功,不存在该条数据时会提示错误。用户登录界面的设计效果如下图5.2所示:

图5.2用户的登录运行界面

5.2.2首页界面的实现

首页操作界面是门户,一个好的首页界面才可以吸引住用户。本操作界面里含有导航栏、系统名称、信息搜索窗口、案例分析展示模块和科普知识信息展示模块等。首页操作界面功能的实现界面如下图5.3所示:

图5.3首页操作展示的效果界面

5.2.3用户注册功能的实现界面****

游客可以注册,注册成为用户后才可以答题。用户注册功能的实现界面如下图5.4所示:

图5.4个用户注册功能的运行界面

5.2.4科普知识信息功能的实现界面

在科普知识信息界面里可以学习详细的科普知识。科普知识浏览功能的实现界面如下图5.5所示:

图5.5科普知识浏览功能的实现界面

5.2.5案例分析功能的实现界面

用户可以了解案例,通过案例学习知识。案例分析功能的实现界面如下图5.6所示:

图5.6案例分析功能的实现界面

5.2.6在线评论功能的实现界面

用户可以实现评论发表自己的看法和疑问。在线评论功能的实现界面如下图5.7所示:

图5.7在线评论功能的实现界面

5.2.7答题功能的实现界面

用户可以浏览题目和进行答题。答题功能实现界面如下图5.8所示:

图5.8答题功能的实现界面

5.2.8建议反馈功能的实现界面

用户有问题可以进行留言,用户建议反馈功能的实现界面如下图5.9所示:

图5.9用户建议反馈功能的实现界面

5.2.9交流论坛功能的实现

用户可以浏览帖子和发表新的帖子,交流论坛功能的实现界面如下图5.10所示:

图5.10交流论坛功能的实现

5.2.10我的功能实现

在我的界面里用户可以管理收藏信息、答题信息、帖子信息等。我的功能实现界面如下图5.11所示:

图5.11我的功能实现界面

5.3系统后台管理员功能实现****

5.3.1个人中心功能的实现界面

管理员可以对密码、资料进行修改。个人中心功能的实现界面如下图5.12所示:

图5.12个人中心功能界面的实现

5.3.2科普知识管理功能的实现界面

本功能包括对科普知识的添加、删除、修改、查询。添加科普知识时填写科普知识名称、简介等就可以完成,查询科普知识时填写查询条件即可以查询出来相对应的科普知识信息。添加科普知识信息功能的实现界面如下图5.13所示:

图5.13添加科普知识信息功能的实现界面

5.3.3建议反馈管理功能的实现界面

建议反馈管理包括审核用户的留言内容和回复用户留言。建议反馈管理功能的实现界面如下图5.14所示:

图5.14回复留言功能的实现界面

5.3.4用户管理功能的实现

用户信息可在本功能里进行管理,可以查看用户的注册资料。用户注册管理功能的实现界面如下图5.15所示:

图5.15用户管理功能的实现界面

5.3.5在线答题功能的实现

管理员可以设置答题信息,实现界面如下图5.16所示:

图5.16在线答题功能的实现

此外,知识分类管理、系统管理、答题、交流论坛管理功能等均为相关信息的查询、添加、修改、删除。在此,不再一一贴图描述。

第6章 系统测试

6.1测试的目的****

系统测试的目的是检查该系统是否功能正确、运行无错误、无bug,测试该系统是否完成了设计要求。在测试中可以检验系统的功能问题、运行问题和逻辑问题,只有通过测试的系统才可以投入使用,减少用户的经济投入。

6.2测试任务概述

本系统的功能为网络安全信息浏览、在线答题、用户登录、用户信息管理、反馈建议管理等。在测试时要针对这些功能进行详细测试,并且要完成测试报告,在测试报告中写明测试过程和测试结果。

6.3测试项目用例****

6.3.1准备测试的功能用例

(1)登录功能

(2)信息管理功能

(3)用户管理功能

(4)评论管理功能

6.3.2测试说明

(1)登录功能测试

采用输入不同数据进行测试,具体测试过程如下表6.1所示:

表6.1登录功能测试表

通过对登录功能的测试发现用户登录功能正确。

(2)信息管理功能测试

对本功能的测试采用黑盒测试的方法进行测试,在信息添加时填写不同的数据进行测试。具体的测试过程如下表6.2所示:

表6.2信息管理功能的测试表

在添加信息测试时需要注意要先添加了分类才可以添加其它信息。添加信息的测试过程如下表6.3所示:

表6.3添加信息测试表

(3)用户信息管理功能测试

对用户信息管理功能的测试过程如下表6.4所示:

表6.4用户信息管理功能测试表

(4)评论管理测试

对评论功能的测试过程如下表6.5所示:

表6.5评论管理功能的测试表

****

经过几个月的开发,本系统到今天总算完成了,实现的功能需求基本符合了当初设定的需求,当然还有一定的扩展空间,经过一定的测试,功能也可以正常使用,说明本系统还是比较成功的。本系统完成了网络安全科普和可以实现在线评论、讨论、答题。用户可以直接在系统中浏览科普知识信息和在线评论、留言、答题。在开发过程中遇到了各种各样的问题,在老师和同学的帮助下才算顺利完成了本系统。

开发初期,首先要进行UML建模,画出系统的用例图,由于对这些知识不熟悉,浪费了很多的时间,通过网上翻阅资料学习,才弄清楚原来原理图就是要找出系统中的用例和角色,然后把他们关联起来,然后才能建立各种类图等,最后完成一个完整的数据模型,有了这些前期的筹备,系统设计阶段才能更加的顺利。编写代码的过程中,充分运用到了老师所教的知识,然后每个功能都进行了详细的分析研究,保证系统的完善。通过本次开发,才让我发现了我的各种不足,需要学习的知识还很多,最大的收货就是积累了开发经验,以后还要继续的学习,争取以后开发的项目越来越完善。

参考文献

[1]王崟.基于SSM框架的Java Web开发课程教学中的几点思考[J].电脑知识与技术,2018,14(27):140-141.DOI:10.14004/j.cnki.ckt.2018.2954.

[2]刘学玉.JAVA编程语言在计算机软件开发中的应用[J].电子技术与软件工程,2022(01):57-60.

[3]倪灵枝.计算机软件Java编程特点及其技术研究[J].科技资讯,2022,20(01):38-40.DOI:10.16661/j.cnki.1672-3791.2111-5042-7384.

[4]杨艳红,刘向玲.《Java核心与高级特性》课程教学改革探索[J].电子测试,2022,36(02):135-136+57.DOI:10.16520/j.cnki.1000-8519.2022.02.042.

[5]沙之洲.Java编程语言在计算机软件开发中的应用[J].电子世界,2021(24):125-127.DOI:10.19353/j.cnki.dzsj.2021.24.052.

[6]李雅琴.Java编程语言的优势及其应用实践研究[J].互联网周刊,2021(24):60-62.

[7]李春生,李朝霞,刘涛,胡亚楠.基于SSM的科研室管理系统的研究与设计[J].计算机技术与发展,2021,31(12):148-154.

[8]孙辉中.JAVA编程语言在计算机软件开发中的应用[J].网络安全技术与应用,2022(01):49-50.

[9]何芳.Java平台及应用Java技术的安全问题分析[J].科技资讯,2021,19(35):10-12.DOI:10.16661/j.cnki.1672-3791.2111-5042-9792.

[11]Sies Katharina,Winkler Julia K.,Fink Christine,Bardehle Felicitas,Toberer Ferdinand,Buhl Timo,Enk Alexander,Blum Andreas,Stolz Wilhelm,Rosenberger Albert,Haenssle Holger A… Does sex matter? Analysis of sex-related differences in the diagnostic performance of a market-approved convolutional neural network for skin cancer detection[J]. European Journal of Cancer,2022,164:

[12]Kleibert Marcin,Płachta Iga,Czarnecka Anna M.,Spałek Mateusz J.,SzumeraCiećkiewicz Anna,Rutkowski Piotr. Treatment of Malignant Adnexal Tumors of the Skin: A 12-Year Perspective[J]. Cancers,2022,14(4):

[13]逯连静,陈国荣,徐琳君.新媒体环境下科技期刊微信小程序应用探究[J].传播与版权,2022(04):78-80.DOI:10.16852/j.cnki.45-1390/g2.2022.04.025.

[14]陈宏样,马秋宇,李丽君,黄琪文,陈雯.“记忆帮”微信小程序的设计与开发[J].科技与创新,2022(04):35-37+40.DOI:10.15913/j.cnki.kjycx.2022.04.010.

[15]赖柳青.高职图书馆官方微信小程序应用现状与发展[J].大众科技,2022,24(02):202-204.

[16]陈信达,叶孟琦,刘祚先,林达华,吴舒怡,肖彬.基于微信小程序的医务随访系统开发[J].电脑编程技巧与维护,2022(02):53-55.DOI:10.16184/j.cnki.comprg.2022.02.030.

[17]张丽,吴晓吁,李梦薇.网络安全科普教育的探索与实践[J].中国信息安全,2022(01):46-50.

[18]张泽弘,陈佳俊,黄幼专,黎世焕.网络安全科普平台的设计与开发[J].电子世界,2021(15):148-149.DOI:10.19353/j.cnki.dzsj.2021.15.059.

[19]陈有英.网络诈骗与安全防范移动科普平台的设计研究[J].电子世界,2019(04):126-127.DOI:10.19353/j.cnki.dzsj.2019.04.073.

​​​​​​​****

时间过的飞快,大学时光转眼就要结束了,回想我的大学生活真是受益良多。老师不仅教会了我各种各样的知识,还教会了我为人处世的道理,陪伴我们成长,不单单是教书育人的老师,更是我们的良师益友。在这里要感谢各科老师,是你们教会了我各种学习的技能,为以后的工作打下了很好的铺垫,也要感谢我的班主任老师,是你带领我们一起度过的大学时光,在生活中给与我们无微不至的关照,不管我们遇见什么问题,都帮我们及时的解决。最后还要感谢的我答辩老师,在开发毕业设计的过程中,给与我各种建议和帮助,而且及时的帮我指正错误,并且跟我一起想办法,使系统根据的完善。最后也要感谢我的大学同学,正是由于你们的陪伴,才让大学生活多姿多彩。谢谢你们,愿我们一起加油,为我们的祖国做成我们的贡献,一起来报答我们的祖国,报答我们的母校,报答我们的父母,再次感谢,加油,努力,冲冲冲。

核心代码展示

/**
 * 登录相关
 */
@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();
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**

![img](https://img-blog.csdnimg.cn/img_convert/e3983f05dcde29cc30314e7d72478677.png)

![img](https://img-blog.csdnimg.cn/img_convert/725355a8e0ee9ab0dc0ce937dd2ce6d8.png)

![img](https://img-blog.csdnimg.cn/img_convert/e03b81a8674a46ea17e38cc65f4eecc3.png)

![img](https://img-blog.csdnimg.cn/img_convert/cab93635c843bf4bf31281643a1ce942.png)

![img](https://img-blog.csdnimg.cn/img_convert/e5bb88aede151345a0d7c8a84c1152fb.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

PO等大厂,18年进入阿里一直到现在。**

**深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**

[外链图片转存中...(img-JwOc06QG-1715593191083)]

[外链图片转存中...(img-Mlr5pb33-1715593191083)]

[外链图片转存中...(img-AFg0B4dX-1715593191083)]

[外链图片转存中...(img-6r80wCUQ-1715593191084)]

[外链图片转存中...(img-aUfaeI7y-1715593191084)]

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值