基于SSM的线上考试系统的设计与实现(计算机毕业设计)+万字说明文档
系统合集跳转
源码获取链接
一、系统环境
运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以
tomcat环境: Tomcat 7.x,8.x,9.x版本均可
操作系统环境: Windows XP/7/8//8.1/10/11或者Linux或者MacOS,2G内存以上,推荐4G,4G以上更好
用了技术框架: HTML+CSS+JavaScript+jsp+mysql+Spring+SpringMVC+mybatis+Spring boot
数据库: Mysql数据库,任意版本均可,也可使用各种数据库工具,例如Navicat等。
二、摘要
2019年新冠疫情席卷全国,对国内线下产业造成了巨大的影响,对于学校这种人口密度巨大的地方来说,影响更大。各大学校纷纷将授课与考试转移到线上进行,线上考试系统需求量得到了巨大的攀升,国内各个地方的小学到大学都需要一套线上考试管理系统来满足学校的要求,基于这种情形,开发出一款线上考试系统刻不容缓。
本文设计并开发了一款线上考试管理系统,采用Java语言进行开发,基于B/S架构,后端采用SSM(Spring+SpringMVC+Mybatis)框架进行搭建,数据库选取MySql数据库存储信息,系统分为多角色使用,分别是学生角色、教师角色和管理员角色,模块主要划分为线上考试、错题回顾、教师管理、试卷管理、学生管理、考试安排等功能。通过对线上考试系统的实现,将考试转移到线上进行,减少学生之间的接触,降低疫情传播的风险,提高学校的管理效率。
关键词: 线上考试;B/S架构;SSM框架;多角色;
三、目录
摘要 i
Abstract i
目录 iii
第一章 绪论 1
1.1 研究背景 1
1.2 研究意义 1
1.3 研究现状 2
1.3.1 国内研究现状 2
1.3.2 国外研究现状 2
1.4 论文结构 2
第二章 相关技术 3
2.1 开发工具 3
2.1.1 Navicat 3
2.1.2 IntelliJ IDEA 3
2.1.3 Tomcat7 3
2.2 开发技术 4
2.2.1 Spring框架 4
2.2.2 MyBatis框架 4
3 可行性分析与需求设计 5
3.1 可行性分析 5
2.1.1 经济可行性 5
2.1.2 技术可行性 5
2.1.3 操作可行性 5
3.2 用例分析 6
3.2.1 学生用户用例 6
3.2.2 管理员用户用例 6
3.2.3 教师用户用例 7
3.3 功能性需求分析 8
3.3.1 前端功能分析 8
3.3.2 后端功能分析 8
3.4 非功能性需求分析 9
4 系统总体设计 10
4.1 系统架构设计 10
4.2 功能模块设计 10
4.2.1 用户登录注册流程 11
4.2.2 在线考试流程 11
4.2.3 修改密码流程 12
4.3系统数据库设计 13
4.3.1 数据库概念设计 13
4.3.2 数据库表设计 13
5 系统功能实现 16
5.1 前台功能实现 16
5.1.1 注册功能实现 16
5.1.2 登录功能实现 17
5.1.3 在线考试 19
5.1.4 试卷回顾 20
5.2后台功能模块 21
5.2.1后台首页 21
5.2.2 学生用户管理模块 21
5.2.3 试卷管理模块 25
5.2.4 试题管理模块 27
6运行系统和测试 29
6.1软件测试的基本概念 29
6.2测试计划 29
6.3测试用例 30
6.4测试结果 30
总 结 31
致 谢 32
参考文献 33
四、论文内容
第一章 绪论
1.1 研究背景
现如今,网络已经覆盖到人们生活的方方面面,电子商务得到了巨大的发展,“互联网+”思维结合电子商务有了非常巨大的空间。网络购物就是在这样的大环境下快速兴起的,并且取得了巨大的成就,据不完全统计国内网络覆盖率高达92%的程度,网民人数已经突破10亿大关,可以说国内已经进入到全民互联网时代了。互联网给人们生活带来了极大的便利,方便了人们的生活,减少了管理人员耗费的时间,提高了管理效率,许多业务在线上进行可以很大程度上省去掉非常多不必要的时间,足不出户就能完成,传统行业结合互联网技术进行创新已经成为时代发展趋势。
教育业一直以来都是国内非常重视的行业之一,几乎每个家庭都会在教育上面投入巨大的精力和金钱,学校教育更是人们关注的重点。但是受到新冠疫情的影响,学校按照要求必须要进行封闭式管理,许多地方不允许进行线下授业,导致大量的学生课程受到影响,但是学生们的学习不能耽误,所以网课逐渐兴起,大多数学校都通过腾讯会议来进行授课,但是考试成为了一大难题,定期进行考试是每个学校进行检验知识掌握情况的常用方法,一定时间内进行一次考试是非常有必要的回顾知识的手段,基于这种形势,开发出一款线上考试系统就可以很好的解决这个问题。
1.2 研究意义
现如今,人们越来越注重高效率的生活,开发出一款线上考试管理系统可以极大程度上减少管理人员的管理效率,方便教师进行在线出题,同时可以方便学生在当下大环境下在家就能完成考试,减弱疫情带来的影响。同时结合互联网技术的线上管理系统可以方便管理人员进行数据管理,便于操作大量的数据信息,提高管理效率。但是在目前的市场调查中,当下的市场上面系统存在着以下问题。
(1)系统管理复杂,针对面太广,系统过于追求完善性,缺乏针对性管理。
(2)系统采用的框架较为老套,普遍还处于SSH、Servlet等框架,进行二次开发和优化较为繁琐。
为了解决以上问题,本系统进行创新改良:
(1)基于学校区域。由于用户群体是在校学生,用户需求重叠度很高,学生在平台上的使用效率有保证。学校区域保证了用户的范围不会太广,平台只上线某区域内合作的学校。平台使用学校+学号的对用户账号进行绑定,实行一人一号,方便管理。
(2)系统采用SSM框架进行搭建,提高系统的开发效率、让代码逻辑更加清晰,更加容易应对变化不断的需求,更容易维护,综合减少开发成本。
1.3 研究现状
1.3.1 国内研究现状
对于国内来说,近些年来,我国的经济发展迅速,许多领域都已经开始向世界领先水平迈进。然而要与世界接轨,就需要一套完善的信息技术管理平台。目前国内市面上已经出现了很多优秀的管理系统,国内互联网市场发展十分迅速。对于线上考试方面来说,据调查,在疫情前国内大多数公立学校是没有引入过这种系统的,大多数是教育机构使用,例如问卷星、优考等在线考试系统,这些系统又大公司进行研发,做了比较充足的需求分析和市场调查,框架稳定,功能齐全,可以作为本系统开发过程中非常良好的参考案例。
国内互联网技术的发展时间也相对较短,管理系统出现也晚于世界领先水平,同时对于管理系统来说,更是在05年才开始得到发展,开发本系统的Spring框架技术在07年才诞生出来,真正在2010年以后才被国内大量的使用起来,并且得到了迅速的发展。截至目前市面上运用Spring框架开发的系统已经非常多了,但是针对学校使用的线上考试系统仍是处于空缺。
1.3.2 国外研究现状
对于国外来说,互联网技术发展久远,管理系统也有着较长的历史,国外早在1964年就出现了比较成熟的管理系统,并且MVC结构模式在20世纪80年代就被发明出来作为一种设计模式。这种设计模式极大程度上加速了管理系统的进展。美国更是Java技术和各大框架的发源地。拥有深层的技术底蕴,且市面上已经存在大量优秀的管理系统,例如CMS Hub、WordPress、Joomla等CMS管理系统,这些系统拥有稳定的技术框架和较为完善的功能结构,能够为大量用户提供服务,是非常好的参考范例,但是对于线上考试系统方向来说,由于国内外教育方式的差异较大,国情也不相同,系统的功能差异较为明显,国外优秀的系统也不能适用于国内,这是一个不小的遗憾。
1.4 论文结构
第一章绪论,主要介绍和分析相关背景和现状,并透过表象探究未来的发展趋势。
第二章相关技术,主要是对开发本系统用到的工具和技术框架进行介绍。
第三章需求分析,主要是对系统进行需求分析和可行性分析,这作为系统开发不可或缺的一部分,同时也对系统开发有着举足轻重的指导作用。
第四章系统概要设计,从系统架构设计进行分析,然后对系统的功能模块进行介绍。
第五章系统详细设计,主要介绍了系统的实体属性,以及数据库的概念结构设计和逻辑结构设计。
第六章系统实现,主要是对系统相关功能描述,具体介绍相关功能的实现方法。
第二章 相关技术
本系统采用Spring框架结合Mybatis框架进行搭建,工具采用IntelliJ IDEA和Navicat工具,系统部署在Tomcat容器上进行展示。
2.1 开发工具
2.1.1 Navicat
Navicat 能在琳琅满目的数据库管理工具中独树一帜,是由于他的高效、便捷、易于上手、轻巧、支持中文等特点[4]。本系统开发选取采用Navicat的原因是因为它是一款轻量级的可视化软件,没有厚重的环境要求,可随时进行变更以及替换版本。其次,它支持多个不同数据库的连接,除常用的MySql外,还支持Oracle、PostgreSQL以及SQL Server等不同类型的数据库,方便系统更换数据库类型时不需要再替换软件,同时对于国内开发人员来说,Navicat是为数不多支持中文的数据库可视化软件,方便国内开发人员上手开发,最后对于设计表格来说非常便利,提供手动设计表格与修改表字段类型的界面,方便修改数据库表格,基于以上原因,本系统开发选用Navicat软件进行管理数据库。
2.1.2 IntelliJ IDEA
IntelliJ IDEA简称Idea,是Java编程语言开发的集成环境,本系统选取Idea软件进行开发带来了非常大的便利,首先,IntelliJ IDEA软件页面比较优美,开发体验良好,支持多语言多种颜色选择,十分人性化。其次,IntelliJ IDEA可以集成多个插件,比如Mybatis的Plus插件,支持自动生成增删改查配置文件,支持lombok插件,免去生成实体类Get、Set方法,为开发系统提供了极大的便利。最后,IntelliJ IDEA软件支持编码辅助和智能编辑等重要功能,可以在代码输入过程中,自动补充方法或类,极大程度上减少开发人员重复工作,非常适用于本系统的开发。基于以上原因,本系统代码的开发采用IntelliJ IDEA软件进行。
2.1.3 Tomcat7
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。本系统开发就是部署在Tomcat服务器上,本系统选取Tomcat作为部署容器是因为它具有非常便捷的部署操作,并且架构属于轻量级,不需要占用大量的内存空间,这样确保了项目的快速部署和启动。并且Tomcat属于开源的项目,不需要额外支付费用。基于以上原因,本系统部署容器选择Tomcat服务器上。
2.2 开发技术
2.2.1 Spring框架
后端选取Spring框架进行搭建,Spring就像是一个管家,它将系统管理的井井有条,你可以将每个功能模块定义成一个实例,主要的一块功能控制反转和依赖注入,线上考试系统中依赖注入部分就是利用到该特性,后台之间模块关联的调用就是靠依赖注入直接引用,不需要每次都进行新建对象,比如在用户管理中,只需要在服务层注入一个用户对象,每个方法都可以调用,不需要每个方法重新新建一遍,可以释放系统内存,并且Spring框架会对该Bean的生命周期进行管理,在不使用的时候还会自动Kill掉,释放内存。
此外,SpringAOP也是该框架的核心,SpringAOP为面向切面编程,将维度划分为切面和点,采用该模块可以对日志和事务进行很好的集成,非常方便进行日志管理,本系统日志管理就是基于SpringAOP的基础上实现的。Spring框架拥有这些良好的框架和特性,为本系统的开发提供了诸多的便利,这也是本系统后端开发采用Spring框架的原因之一。
2.2.2 MyBatis框架
MyBatis 本是apache的一个开源项目iBatis,Mybatis框架主要是用于系统和数据库之间交互使用,Mybatis框架同Spring框架进行集成,主要原理是采用了ORM的思想,将数据库字段和实体类字段进行一一映射,系统操作实体类数据,然后通过映射来传入到数据库中进行修改,金海城美食菜品管理系统中在resource目录下配置好Mapper.xml映射,将实体类和系统的持久层代码结合起来,这样系统可以通过改变实体类的赋值来传递到数据库中,完成数据库的读写查操作。
Mybatis框架解决了Hibernate框架全局映射的问题,采用单独编写Sql语句进行控制,这样改变字段只需要对改动的Sql进行修改,不需要再进行全局修改。在本系统中利用Mybatis框架的特性将字段拆分开来,这样做的好处是,既可以方便字段的变更操作带来的代码改动,又可以提高数据库的查询速度。
3 可行性分析与需求设计
可行性分析是项目启动前必须要进行的步骤,如果一个项目不经过可行性分析就着手开发,可能会造成非常严重的后果,甚至可能需要推翻重做等风险。需求设计又是系统开发前必要的操作,通过需求设计才能确立系统的功能模块。
3.1 可行性分析
2.1.1 经济可行性
经济可行性是指系统开发成本和预计收益之间的关系,如果开发成本远大于预计收益时,就需要认真考虑该系统是否要进行立项开发,反之同样要客观对收益情况进行评估。对应到本系统的中就是,首先考虑本系统的开发成本,系统开发环境较为简易,不需要占用大量硬件设备,同时采用SSM框架来进行搭建,极大程度上简化了搭建步骤,这样可以最大程度上减少开发成本。从预估收益上来说,本系统可以极大程度上弥补市场当前的空缺,吸引商家入驻,下发广告来获取利润,在巨大的市场环境下可以获取很大的收益。综合考虑来看,系统的经济可行性分析结果是可行的。
2.1.2 技术可行性
技术可行性是指决策的技术和决策方案的技术不能突破组织所拥有的或有关人员所掌握的技术资源条件的边界[5]。系统开发人员具备Java基础,并且对SSM框架知识有着深入的研究,数据库方面也学习过MySql基础知识和集成Spring框架知识,对于技术可行性来说,本系统开发采用Java语言,Java语言已经有30年的发展历史,趋于稳定且拥有跨平台的特性,面向对象进行编程,非常适用于本系统的开发,后台框架采用Spring框架进行搭建,Spring框架可以极大的简化系统配置,可以简化部署问题。且对于初学者较为友好,上手难度较低。数据库采用MySql数据库,关系型数据库可以配合着Mybatis框架进行映射,解决了Hibernate框架的弊端。
综上所述,对于技术可行性来说是可行的。
2.1.3 操作可行性
从开发者的角度来说,本系统编写完成后只需将系统项目打包并部署在tomcat上运行即可。目前市面上大多数的项目都采取的这种方式,部署到tomcat上也较为简单,只需在服务器上搭建好tomcat环境。而搭建服务器环境现在都是一键式搭建,并有配套的详细教程。仅需短短几分钟便可搭建完成。因此从开发者的角度来说,本系统完全具备操作可行性。
从使用者的角度来说,本系统采用的是B/S架构,用户只需打开网页即可使用,不必进行下载App等操作同时系统的页面整洁,有提示栏和导航栏,用户体验十分友好。因此,从用户角度考虑,本系统依然具备操作可行性。
综上,本系统完全具备操作可行性。
3.2 用例分析
本系统主要分为三个角色使用,分别是管理员角色和学生角色和教师角色,管理员角色是本系统的后台使用者,主要操作和信息管理有关,学生用户是本系统的前台使用者,主要功能是进行在线考试和错题回顾,教师角色主要是对试卷和考试安排进行管理。
3.2.1 学生用户用例
学生角色用例图如下图所示。
图3-1 学生用户用例图
学生用户角色操作:
1、登录注册:注册账户获取登录账户,登录获取权限。
2、个人中心:登录后可以对个人信息进行查看。
3、在线考试:进行在线考试。
4、试卷回顾:对考完的卷子进行错题回顾。
5、成绩查询:可以对考完的分数进行查询。
3.2.2 管理员用户用例
管理员用户用例图如下图所示。
图3-2 管理员用例图
管理员用户操作:
1、学生管理:对学生信息进行管理。
2、教师管理:对教师信息进行增删改查操作。
3、数据统计:统计数据信息。
4、班级管理:对班级信息进行管理。
5、科目管理:对学科信息进行管理。
3.2.3 教师用户用例
教师用户用例图如下图所示。
图3-3 教师用户用例图
教师用户操作:
1、登录注册:注册账户获取登录账户,登录获取权限。
2、试卷管理:对试卷信息进行管理。
3、试题管理:对试题进行管理。
4、考试安排:给学生安排考试。
5、试卷历史查看:查询历史试卷信息。
3.3 功能性需求分析
在线考试系统功能主要从两个方面介绍,分别是前台和后台两个界面,前台是学生角色使用,主要功能跟在线考试有关。后台是管理使用,主要功能是对系统的信息进行管理和维护。
3.3.1 前端功能分析
前端功能结构如下图所示。
图3-4 前台功能结构图
3.3.2 后端功能分析
后端功能主要和系统信息管理有关,具体结构如下图所示。
图3-5 后台功能结构图
3.4 非功能性需求分析
非功能需求不仅与软件系统本身有关,还与系统的开发过程有关。非功能性需求主要是从系统的正确性、健壮性、性能、安全性、兼容性等方面进行分析和考虑。
正确性:正确性要求系统不允许出现业务上的错误,并且在数据发生多次变动后扔保持数据不发生实质上的错误,确保系统的正确运行。在本系统中,系统集成事务管理,在数据因意外断开时可以发生回滚操作,同时Mybatis框架确保了数据多次变动后的前后顺序,确保数据正确性。
健壮性:健全性要求系统具有一定的应对错误的能力,健壮性强的系统可以应对突发的错误情况,例如突然的断电、断网以及人为的进行错误数据攻击等情形扔保持程序不会突然的崩溃,拥有正确的处理和适当的回避机制。
安全性:安全性要求系统必须严格控制访问权限,确保用户必须通过认证后才能获取对应的权限,阻拦企图绕开安全防线破坏系统的操作。本系统在前端登录中对密码进行了防护,确保数据的安全性,同时Session设置失效时间,避免时间过长导致密码泄露。
4 系统总体设计
4.1 系统架构设计
在线考试系统采用MVC的设计思想,采用Spring+SpringMVC+Mybatis的框架进行搭建,采用B/S架构,将系统分为控制层、业务层和持久层结构,系统的架构图如下图所示。
图4-1 系统架构图
在线考试系统采用MVC的设计思想进行开发,主要分为控制层、服务层和持久层,控制层向上连接Client端,主要由JSP页面组成,通过From表单的形式进行传递信息,向下连接业务层进行业务逻辑的处理,服务层起承上启下的作用,连接控制层和持久层的数据处理与传递,持久层主要是连接数据库,进行读写数据库和数据同步的作用。
4.2系统数据库设计
4.2.1 数据库概念设计
E-R图,即实体属性图,常被用作展现数据库概念设计是因为,一个好的ER图能充分展现实体与实体之间的联系。本系统的总体ER图如下图4-2所示:
图4-2 系统总体E-R图
五、系统实现
五、代码片段
if(comment == null){ret.put("type", "error");ret.put("msg", "请填写正确的评论信息");return ret;}if(StringUtils.isEmpty(comment.getContent())){ret.put("type", "error");ret.put("msg", "请填写评论内容");return ret;}if(commentService.edit(comment) <= 0){ret.put("type", "error");ret.put("msg", "编辑失败,请联系管理员!");return ret;}
if(!StringUtils.isEmpty(username)){Account account = accountService.findByName(username);if(account != null){queryMap.put("userId", account.getId());}}
if(moneyMin != null){queryMap.put("moneyMin", moneyMin);}if(moneyMax != null){queryMap.put("moneyMax", moneyMax);}if(status != null){queryMap.put("status", status);}queryMap.put("offset", page.getOffset());queryMap.put("pageSize", page.getRows());ret.put("rows", orderService.findList(queryMap));ret.put("total", orderService.getTotal(queryMap));
/*** 查询订单列表* @param sn* @param page
*/
@RequestMapping(value="/list",method=RequestMethod.GET)public ModelAndView list(ModelAndView model){model.setViewName("order/list");model.addObject("accountList",
JSONArray.fromObject(accountService.findList(new HashMap<String, Object>())));return model;}
六、源码获取方式
一键三连+关注+评论留下你的邮箱 获取源码,主动获取 看主页置顶
一键三连+关注+评论留下你的邮箱 获取源码,主动获取 看主页置顶
一键三连+关注+评论留下你的邮箱 获取源码,主动获取 看主页置顶
相关文章:
基于SSM的线上考试系统的设计与实现(计算机毕业设计)+万字说明文档
系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可 操作系统…...
redis击穿,穿透,雪崩以及解决方案
目录 击穿 解决方案一 解决方案二 穿透 解决方案 雪崩 解决方案 击穿 指的是单个key在缓存中查不到,去数据库查询,这样如果并发不大或者数据库数据量不大的话是没有什么问题的。 如果数据库数据量大并且是高并发的情况下那么就可能会造成数据库压…...
Flask返回中文Unicode编码(乱码)解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...
EasyExcel改名为FastExce做了那些改变呢
回到:github原作者地址:https://github.com/CodePhiliaX/fastexcel 中文 |English | 什么是 FastExcel FastExcel 是由原 EasyExcel 作者创建的新项目。2023 年我已从阿里离职,近期阿里宣布停止更新 EasyExcel,作者他本人决定继…...
数据结构之初始二叉树(1)
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 树型结构 树的概念 与树的有关概念 树的表示形式 树的应用 二叉树 概念 两种特殊的…...
利用Python爬虫按图搜索淘宝商品(拍立淘)
在当今数字化时代,能够通过图片搜索商品的功能(如淘宝的“拍立淘”)为用户提供了极大的便利。本文将详细介绍如何利用Python爬虫技术实现按图搜索淘宝商品,并提供相应的代码示例。 1. 拍立淘功能简介 “拍立淘”是淘宝提供的一项…...
微信小程序中使用miniprogram-sm-crypto实现SM4加密攻略
在微信小程序开发过程中,数据安全至关重要。本文将为大家介绍如何在微信小程序中使用miniprogram-sm-crypto插件进行SM4加密,确保数据传输的安全性。 一、SM4加密简介 SM4是一种对称加密算法,由国家密码管理局发布,适用于商密领…...
基于注解的方式实现分布式锁的AOP功能
使用场景: 在分布式项目中,涉及到事务,且会操作多张表,那么涉及到并发场景,应当避免同一时间有多个用户并发操作同一份数据,例如:商品秒杀。 解决方案: 使用Around注解实现在方法…...
22. 五子棋小游戏
文章目录 概要整体架构流程技术名词解释技术细节小结 1. 概要 🔊 JackQiao 对 米粒 说:“今天咱们玩个五子棋小游戏,电脑与你轮流在一个 nn 的网格上放置棋子(X 或 O),网格由你输入的正整数n决定࿰…...
import是如何“占领满屏“
import是如何“占领满屏“的? 《拒绝使用模块重导(Re-export)》 模块重导是一种通用的技术。在腾讯、字节、阿里等各大厂的组件库中都有大量使用。 如:字节的arco-design组件库中的组件:github.com/arco-design… …...
传奇996_53——后端ui窗口局部刷新
描述:一个大窗口,点击某个键,弹出小窗口。 小窗口中将msg存进变量中 大窗口中判断一个参数是否为null,如果不为null,说明界面不是第一次打开,而是被刷新了。就加上小窗口的那个变量 有时小窗口中还有其他…...
云原生API网关:2024年的性能与智能化突破
API网关已经成为现代应用世界的流量控制器,并正在成为现代应用架构的重要组成部分。然而,自成立以来,他们的角色发生了巨大变化。它们正在减轻重量,变得更加可编程,并与云原生环境携手合作。 让我们来探索这一激动人心…...
专题二十五_动态规划_两个数组的 dp (含字符串数组)_算法专题详细总结
目录 动态规划_两个数组的 dp (含字符串数组) 1. 最⻓公共⼦序列(medium) 解析: 1. 状态表⽰: 2. 状态转移⽅程: 3. 初始化:编辑 4. 填表顺序:编辑 5. 返回值…...
day09 接口测试(5)——使用postman 完成项目实战
【没有所谓的运气🍬,只有绝对的努力✊】 目录 1、项目简介 2、技术栈 2.1 技术栈 2.2 技术架构图 3、初始化项目环境!!! 3.1 新建用例集 3.2 创建环境变量 3.3 登录模块 3.3.1 从测试用例文档提取数据 3.3.2…...
【Solidity】变量详解:类型、作用域与最佳实践
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 Solidity变量详解:类型、作用域与最佳实践引言1. 变量的类型与声明1…...
知识图谱9:知识图谱的展示
1、知识图谱的展示有很多工具 Neo4j Browser - - - - 浏览器版本 Neo4j Desktop - - - - 桌面版本 graphX - - - - 可以集成到Neo4j Desktop Neo4j 提供的 Neo4j Bloom 是用户友好的可视化工具,适合非技术用户直观地浏览图数据。Cypher 是其核心查询语言&#x…...
scss文件内引入其他scss文件报错
1、今天在编译一些老项目的时候,老是提示下面信息 2、而且有很多Sass import rules are deprecated and will be removed in Dart Sass 3.0.0.警告 3、用npm view sass versions看,其中sass的最新版本是1.82.0 4、经过测试"sass": "1.75…...
使用 ASP.NET Core HttpLoggingMiddleware 记录 http 请求/响应
我们发布了一个应用程序,该应用程序运行在一个相当隐蔽的 WAF 后面。他们向我们保证,他们的产品不会以任何方式干扰我们的应用程序。这是错误的。他们删除了我们几乎所有的“自定义”标头。为了“证明”这一点,我构建了一个中间件,…...
沃丰科技智能客服在跨境电商独立站中的核心角色
随着全球化进程的加速和互联网技术的不断发展,跨境电商行业蓬勃兴起,为消费者提供了更广阔、更便捷的购物选择。在这样一个竞争激烈的市场环境中,优质的客户服务成为了企业脱颖而出的关键。沃丰科技智能客服凭借其先进的技术和人性化的设计理…...
基于Springboot滑雪物品在线租赁网站设计与实现(作品+论文+开题报告)
博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育、辅导。 所有项目都配有从入门到精通的基础知识视频课程ÿ…...
android 富文本及展示更多组件
模拟微博 #热贴 和 用户 的这种 富文本形式组件,不说了, 直接上代码 package com.tongtong.feat_watch.viewimport android.content.Context import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater impo…...
Java-JMX 组件架构即详解
JMX架构由三个主要组件构成: MBeans(Managed Beans):代表可管理的资源,是JMX的核心。MBean可以是Java类或接口,提供了管理操作的接口,如获取系统信息、设置参数等。MBeanServer&#x…...
开源轻量级文件分享服务Go File本地Docker部署与远程访问
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
Rust快速入门(五)
生命周期 生命周期的主要作用是避免悬垂引用。 这里我们详细说说借用检查: {let r; // ----------- a// |{ // |let x 5; // --- b |r &x; // | |} /…...
租赁系统|租赁小程序|租赁小程序成品
租赁系统是现代企业管理中不可缺少的数字化工具,它通过高效的信息整合与流程管理,为企业带来极大的便利和效益。一个完善的租赁系统开发应具备以下必备功能: 一、用户管理 用户管理模块负责系统的访问控制,包括用户注册、登录验证…...
后端-pageHelp分页查询
在pom.xml文件中先导入分页的坐标 PageResult里面有两个后端返回给前端的参数,我们最后把PageResult再封装到Result中, PageResult和Result都是工具类 EmployeeDTO中是前端页面中的模糊查询字段和分页的两个值 注意! 括号中的参数Employee…...
MySQL | 尚硅谷 | 第15章_存储过程与函数
MySQL笔记:第15章_存储过程与函数 文章目录 MySQL笔记:第15章_存储过程与函数第15章_存储过程与函数 1. 存储过程概述1.1 理解1.2 分类 2. 创建存储过程2.1 语法分析2.2 代码举例 3. 调用存储过程3.1 调用格式3.2 代码举例3.3 如何调试存储过程演示代码 …...
汽车零部件设计之——麦弗逊悬架KC特性分析仿真APP介绍
汽车零部件是汽车工业的基石,是构成车辆的基础元素。一辆汽车通常由上万件零部件组成,包括发动机系统、传动系统、制动系统、电子控制系统等,它们共同确保了汽车的安全、可靠性及高效运行。在汽车产业快速发展的今天,汽车零部件需…...
代码随想录-算法训练营day41(动态规划04:01背包,01背包滚动数组,分割等和子集)
第九章 动态规划part04● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集 正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码…...
Vue Loader的作用
Vue Loader是一个专门用于处理Vue单文件组件(SFCs,即Single File Components)的webpack加载器(loader)。以下是Vue Loader的具体作用: 1、解析和转换Vue单文件组件 Vue Loader能够解析和转换.vue文件&…...
SRS 服务器入门:实时流媒体传输的理想选择
在当今视频流媒体需求爆炸式增长的时代,如何选择一款高效、稳定且功能强大的流媒体服务器成为了许多开发者和企业关注的焦点。而 SRS(Simple Realtime Server)作为一款开源的流媒体服务器,以其卓越的性能和灵活的功能,…...
4K高清壁纸网站推荐
1. Awesome Wallpapers 官网: https://4kwallpapers.com/ 主题: 创意、摄影、人物、动漫、绘画、视觉 分辨率: 4K Awesome Wallpapers 提供了丰富的高质量图片,分为通用、动漫、人物三大类,可以按屏幕比例和分辨率检索,满足你对壁纸的各种…...
如何保证数据库和缓存双写一致性?
数据库和缓存(redis)双写数据一致性问题再高并发的场景下,是一个很严重的问题,无论在工作中,还是面试,遇到的概率非常大,这里就聊一聊目前的常见解决方案以及最优方案。 常见方案 缓存的主要目…...
QT 多级嵌套结构体,遍历成员--半自动。<模板+宏定义>QTreeWidget树结构显示
Qt的QTreeWidget来显示嵌套结构体的成员,并以树形结构展示。 #include <QApplication> #include <QTreeWidget> #include <QTreeWidgetItem> #include <QString> #include <cstdint>// 假设这些是你的结构体定义 struct BaseMeterPa…...
《深入浅出HTTPS》读书笔记(17):公开密钥算法
公开密钥算法(Public Key Cryptography),也称为非对称加密算法(Asymmetrical Cryptography)。 公开密钥算法的功能比较多,可以进行加密解密、密钥协商、数字签名。 【密钥是一对】 公开密钥算法的密钥是一对…...
React 中为什么不直接使用 requestIdleCallback?
首先看下 requestIdleCallback是什么? 简介 requestIdleCallback 是一个在浏览器空闲时执行低优先级任务的 API。 定义与用途 requestIdleCallback 方法允许开发者在浏览器的空闲时段内调度函数的执行。这些函数通常用于执行非关键性的、低优先级的任务,…...
工作:SolidWorks从3D文件导出2D的DWG或DXF类型文件方法
工作:SolidWorks从3D文件导出2D的DWG或DXF类型文件方法 SolidWorks从3D文件导出2D的DWG或2D DXF类型文件方法(一)打开3D文件(二)从装配体到工程图(三)拖出想要的角度的图型(四&#…...
element-ui radio和checkbox禁用时不置灰还是原来不禁用时的样式
把要紧用的内容加上一个class"notEdit-page" z注意要在style里面写不能加上scoped /*//checkBox自定义禁用样式*//*//checkBox自定义禁用样式*/ .notEdit-page.el-checkbox__input.is-disabled.is-checked.el-checkbox__inner::after {border-color: #fff; } .notEdi…...
MySQL 8.0 安装与配置技术文档(Ubuntu22.04)
MySQL 8.0 安装与配置技术文档 目录 环境准备下载 MySQL 安装包检查是否已安装 MySQL彻底卸载 MySQL安装 MySQL配置 MySQL创建用户并允许外网访问修改 root 用户密码参考链接 1. 环境准备 确保系统为 Ubuntu 22.04,并安装了以下基础工具: sudo apt-ge…...
【Linux】Ubuntu中安装多个版本的gcc、g++编译器,并自由切换
1、安装 1.1 命令安装 使用命令直接安装: sudo apt install gcc-[版本号] sudo apt install g++-[版本号]例如: sudo apt install gcc-10 sudo apt install g++-10 sudo apt install gcc-9 sudo apt install g++-9 sudo apt install gcc-8 sudo apt install g++-81.2 源码…...
uni-app登录界面样式
非常简洁的登录、注册界面模板,使用uni-app编写,直接复制粘贴即可,无任何引用,全部公开。 废话不多说,代码如下: login.vue文件 <template><view class"screen"><view class"…...
如何在小米平板5上运行 deepin 23 ?
deepin 23 加入了 ARM64 支持,这里尝试将 deepin 系统刷入平板中,平常使用中,带个笔记本电脑有时候也会嫌比较麻烦,把 Linux 系统刷入平板中既满足了使用需要,又满足了轻便的需求。为什么不使用 Termux ?虽…...
Linux上的C语言编程实践
说明: 这是个人对该在Linux平台上的C语言学习网站笨办法学C上的每一个练习章节附加题的解析和回答 ex1: 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后运行它看看发生了什么。 vim ex1.c打开 ex1.c 文件。假如我们删除 return 0…...
ubuntu中使用ffmpeg库进行api调用开发
一般情况下,熟悉了ffmpeg的命令行操作,把他当成一个工具来进行编解码啥的问题不大,不过如果要把功能集成进自己的软件中,还是要调用ffmpeg的api才行。 ffmpeg的源码和外带的模块有点太多了,直接用官网别人编译好的库就…...
基于yolov8的SAR影像目标检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
更多目标检测、图像分类识别、目标追踪等项目可看我主页其他文章 功能演示: 基于yolov8的SAR影像目标检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】_哔哩哔哩_bilibili (一)简介 基于yolov8的SAR影像目标…...
【源码】Sharding-JDBC源码分析之SQL中读写分离动态策略、数据库发现规则及DatabaseDiscoverySQLRouter路由的原理
Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...
服务器卸载安装的 Node.js
卸载安装的 Node.js 版本,具体步骤取决于你是通过包管理器(如 yum 或 dnf)安装的,还是通过 nvm (Node Version Manager) 安装的。以下是针对这两种情况的指南。 通过包管理器卸载 Node.js 如果你是通过 yum 或 dnf 安装的 Node.…...
一键图片提取表格导出为Excel文档工具体验
在日常工作中,我们经常会遇到需要将图片中的表格数据转换为可编辑的Excel文件的情况。这不仅能够提高工作效率,还能减少手动输入数据的错误。本文将介绍一款实用的工具,它能够帮助我们快速实现图片到Excel的转换,同时保持操作的简…...
SpringBoot异常处理
SpringBoot异常处理 一、认识异常 异常分类: Error: 代表编译和系统错误,不允许捕获Exception: 标准Java库的方法所激发的异常,包含运行异常Runtime_Exception和非运行异常 Non_RuntimeException 的子类Runtime_Exception: 运行时异常。No…...
在 OAuth 2.0 中,refreshToken(刷新令牌)存在的意义
在 OAuth 2.0 中,refreshToken(刷新令牌) 的主要目的是为了提升用户体验和安全性,同时确保访问令牌的有效性。以下是需要使用 refreshToken 的原因: 1. 访问令牌的有限生命周期 访问令牌(accessToken&…...