基于SSM的在线考试系统开发与设计-(附源码文档)-毕业设计

news2024/10/6 8:21:49

在这里插入图片描述

文章目录

    • 1.适用人群
    • 2.你将收获
    • 3.项目介绍
    • 4.系统需求分析
      • 4.1 需求特性分析
      • 4.2 功能需求分析
    • 5.系统设计
      • 5.1 系统总体结构设计
      • 5.2 数据库设计
        • 5.2.1 数据库概念原则设计
        • 5.2.2 数据库各部分模块设计
        • 5.2.3 数据库表设计
    • 6.系统详细设计
      • 6.1 系统各模块功能设计
        • 6.1.1 登录模块
        • 6.1.2 注册模块
        • 6.1.3 我的主页模块
        • 6.1.4 我的试卷模块
        • 6.1.5 考试中心模块
        • 6.1.6 我的班级模块
        • 6.1.7 我的题目模块
    • 7 系统测试
      • 7.1 系统的功能测试
        • 7.1.1.登录模块
        • 7.1.2.注册模块
        • 7.1.3.我的主页模块
        • 7.1.4.我的试卷模块
        • 7.1.5.考试中心模块
        • 7.1.6 我的班级模块
        • 7.1.7.我的题目模块
    • 8.系统测试结论
    • 9.源码获取

1.适用人群

本课程主要是针对计算机专业相关正在做毕业设计或者是需要实战项目的Java开发学习者。

2.你将收获

提供:项目源码、项目文档、数据库脚本、软件工具等所有资料
从零开始手把手教学部署运行本系统
该项目附带的源码资料可作为毕设使用
提供技术答疑和远程协助指导,帮助调试并解决后期项目运行问题

3.项目介绍

该系统分为首页、试卷管理、考试管理、班级管理、注册登录等模块。除了实现基本的增删改查,分页等功能,还根据用户类型的不同,设置了不同的权限。数据库方面除了基本的表,还创建了视图和触发器。系统前后端分离,前端采用Ajax技术进行数据传输,后端采用maven管理项目的构建,持久层使用的是Mybatis实现,数据源利用的是SpringIoC注入,对各层解耦,大大提高了程序的可扩展性,易于维护。

4.系统需求分析

4.1 需求特性分析

在线考试管理系统的评价标准具有以下几个特征:

  1. 项目基础要求特性:项目的开发必须满足在用户使用期间不能引起崩溃和强退等问题,这是用户使用需求的底线。在此基础上,也要满足用户交互体验,在满足操作的简单和清楚明了上,也要使得网站的前端界面的美化方面和网站设计每个部分的合理等。
  2. 项目安全和隐私需求:安全和隐私的问题是不容忽视。每个学生之间的问题、试卷和班级等数据应该是相互隔离的,一个同学不能访问另一个同学的问题、试卷等数据。学生之间在同一班级中时也应该可以相互发现。老师之间也应该是相互隔离的。但是老师在相同班级时,一个老师可以修改另一个老师在相同班级中的试卷数据。老师和学生之间的数据互通主要是在同一班级中时通过老师发布试卷到班级,就可以作为学生的考试试卷。
  3. 项目的维护和更新上:作为一个在线考试管理系统,题目划分随题目更改而大小的变化。所以项目在起初的设计上必须要有很好的扩展性和维护性,这将对未来程序更改打下坚实的基础。大题的思路是,将每个模块进行独立的划分,并且他们之间尽量不存在强耦合的关联,也就是更改部分模块其他的变动尽量缩小。开发过程中,每个模块要有明确的目的和核心代码为中心,并且必要和详细的注释也要带有,来增强代码的阅读性。这些开发中的规范和约束都是为了以后维护和更新的便利打基础。

4.2 功能需求分析

项目从功能的角度上可分为试卷、问题、班级和考试四个模块。这四个部分详细需求如下:

  1. 试卷模块的功能需求:首先是创建试卷的功能,学生和老师都有创建试卷的权限,老师创建试卷可以添加到班级成为学生的考试,学生创建试卷可以自己进行模拟考试,自己练习。老师和学生在创建试卷完成后都可以进行试卷的相关操作,例如修改、删除、查询试卷和查看试卷详情。还可以往试卷中添加题目,查看试卷中的题目。
  2. 问题模块的功能需求:创建问题的功能,对问题进行查看、修改、删除和查询的功能。学生老师都拥有问题模块所有的权限。
  3. 班级模块的功能需求:这个模块和其他模块有所不同,老师可以创建班级,创建完成之后,可以对班级进行修改、删除、查询和查看试卷详情。而学生只能通过班级ID加入班级,并且只能查看班级详情,不能进行修改、删除等操作。老师还可以往班级中添加自己创建的试卷,添加完成之后就会成为学生的考试。
  4. 考试模块的功能需求:老师考试模块和试卷模块相同,可以对考试进行修改、删除等操作。学生则只能进行考试。考试界面中可以显示题目,每次显示一个题目,做完之后可以点击上一题或下一题按钮进行选择题目,也可以在右侧创建一个选择题目的模块,显示所有的题目,点击每道题目的按钮进行选择。题目根据题目类型的不同,单选题显示单选框、多选题显示多选框、填空题和简答题显示输入框。在右上角有一个提交答案的按钮,点击之后,如果答案没有做完,会跳转到未做的题目并且提示还有题目没有做完。如果题目做完了则会弹出确认框,确认是否提交试卷,点击确认之后会提交试卷。

5.系统设计

5.1 系统总体结构设计

基于SSM的在线考试系统的主要模块有我的主页、我的试卷、考试中心、我的班级、我的题目、登录和注册等模块。登录之后根据登录人员的身份不同可分为学生和老师,学生和老师都可以进行试卷、问题的添加、删除、修改和查看。老师可以创建班级,创建之后会显示班级ID,将班级ID告诉学生之后,学生可以通过班级ID加入班级。老师将自己创建的试卷添加到班级之后就是学生的考试试卷。学生对考试试卷没有修改删除的权利,只能进行查看和做题。系统结构设计图如图所示
在这里插入图片描述

5.2 数据库设计

5.2.1 数据库概念原则设计

数据库设计应该满足数据表之间的关系合理,也应该在数据冗余和数据处理速度中进行平衡。具体来讲,首先要明确实体间的关系,使关系合理。设计应该符合实体之间关系。在数据库的设计里面,主键与外键的设计极为重要。主键是确定该表中某一属性的唯一字段,主键与外键的合理化使用可以确保实体之间的连接,这与第一条关系密切。

5.2.2 数据库各部分模块设计

数据库中最重要的表是用户表。用户表里面通过外键连接用户ID表分为学生和老师,老师的权限比较大,其最为特殊的权限是可以创建班级,然后添加试卷到班级。而且可以将学生移出班级。学生则可以通过班级ID加入班级,但是学生也可以自己退出班级。老师和班级、学生和班级都是多对多的关系。学生的做题记录是一个独立的模块,满足数据库概念原则的设计理念,做题记录表中除了存储学生ID,试卷ID和问题ID还有学生做的答案。

用户表之外还有班级表、试卷表、问题表。班级表中既有老师又有学生。试卷表中存储的是用户自己创建的试卷,老师用户创建的试卷添加到班级中之后就会成为学生考试试卷,而学生用户的试卷创建之后只能用作自己练习使用。问题表中存储了所有的问题,问题表和试卷表通过多对多的关系来确定那每份试卷中都是有哪些问题。由于用户表和班级表、用户表和试卷表、试卷表和问题表还有用户表和问题表是多对多的关系,所以还有用户班级主键表、用户试卷主键表、试卷问题主键表和用户问题主键表。

数据库中除了创建了表还有视图和触发器,视图将带有外键的表联立起来中将表中的数据全部显示出来,触发器在用户添加问题时,自动在用户问题主键表中添加外键数据。还可以在班级中添加学生后,让班级的班级人数记录自动增加一个;移除学生后,班级人数自动减少一个。
数据库的E-R图如图所示:
在这里插入图片描述

5.2.3 数据库表设计

在线考试管理系统的数据库是MySQL数据库,在保证数据库概念原则的设计理念下,数据库使用10张表,以下则是设计的本系统所需要的表的设计:
用户表用来记录相应的用户信息,所以拥有用户ID、用户名、密码、电子邮箱、注册时间、用户身份外键ID等字段。详情如表3-1所示。

用户表user

字段名类型说明
idint用户的id
usernamevarchar(50)用户名
passwordvarchar(100)密码
emailvarchar(50)用户的电子邮箱
registerdatatime注册的时间
identityint用户身份外键ID

问题表是用记录相应的问题信息情况的,该表含有问题ID、问题、选项A、选项B、选项C、选项D、答案、问题类型外键ID、问题的创建人等字段信息。详情如表3-2所示。

问题表question

字段名类型说明
idint问题的ID
q_namevarchar(1000)问题
q_ansAvarchar(1000)选项A
q_ansBvarchar(1000)选项B
q_ansCvarchar(1000)选项C
q_ansDvarchar(1000)选项D
ansvarchar(1000)答案
q_typeint问题类型外键ID
creatpersonint问题的创建人

班级表是用记录相应的班级信息情况的,该表含有班级ID、班级名称、班级详情、班级人数、班级创建时间和班级创建人等字段信息。详情如表3-3所示。

班级表clazz

字段名类型说明
idint班级ID
c_namevarchar(500)班级名称
c_detailvarchar(1000)班级详情
creatpersonint班级创建人
creattimedatetime班级创建时间
classSizeint班级人数

试卷表,用来记录相应的试卷信息情况的,所以设有试卷ID、试卷名称、试卷创建时间、试卷创建人和总分等字段。详情如表3-4所示。

试卷表exampaper

字段名类型说明
idint试卷ID
namevarchar(50)试卷名称
creatTimedatetime试卷创建时间
creatpersonint试卷创建人
questionnumberint试卷问题个数

考试问题详情表,用来记录相应的考试问题详情信息情况,包含试卷ID、问题ID、用户ID、所选答案和答题时间。详情如表3-5所示。

考试问题详情表examquestiondetail

字段名类型说明
e_idint试卷ID
q_idint问题ID
u_idint用户ID
choosevarchar(1000)所选答案
timedatetime答题时间

用户身份表,用来记录用户的身份信息值,含有用户身份ID,以及对应的用户身份。详情如表3-6所示。

用户身份表identity

字段名类型说明
idint用户身份ID
identityvarchar(50)用户身份

问题类型表,用来记录问题类型信息,包含问题类型ID和问题类型。。

问题类型表questiontype

字段名类型说明
idint问题类型ID
typenamevarchar(50)问题类型

试卷问题主键表,试卷和问题是多对多的关系,因此需要用试卷问题主键表来记录试卷和问题多对多的关系,包含有试卷ID和问题ID。详情如表3-8所示。

试卷问题主键表exampaper_question_key

字段名类型说明
e_idint试卷ID
q_idint问题ID

班级试卷主键表,试卷和班级是多对多的关系,因此需要用班级试卷主键表来记录试卷和班级多对多的关系,包含有试卷ID和班级ID。详情如表3-9所示。

班级试卷主键表 class_exampaper_key

字段名类型说明
c_idint班级ID
e_idint试卷ID

班级用户主键表,用户和班级是多对多的关系,因此需要用班级用户主键表来记录用户和班级多对多的关系,包含有用户ID和班级ID。详情如表3-10所示。

班级用户主键表clazz_user_key

字段名类型说明
c_idint班级ID
u_idint用户ID

6.系统详细设计

6.1 系统各模块功能设计

6.1.1 登录模块

首先,用户的登陆可以使用用户名和密码或者电子邮箱和密码进行登录,在输入账号和密码后,点击登录会有非空校验,如果为空会进行提示。不为空会将数据发送到后台进行校验。如果账号密码错误,会进行提示账号密码错误。如果账号密码正确,则登录成功并从后端返回完整的用户信息,前端获取到用户信息之后会将用户信息存储到Cookie之中,当用户下次打开页面之后会先从Cookie中找用户信息,如果找到了则直接显示登录后的页面,否则会进行登录。Cookie的过期时间是三十天,三十天之后需要重新进行登录,也可以点击退出登录,这时会删除Cookie信息然后可以进行重新登录。登录成功之后会跳转到主页。主页会显示用户的身份,一共有两种身份学生和老师。

6.1.2 注册模块

如果用户还没有账号密码可以点击注册按钮进入注册页面进行注册,注册时需要填入用户名、密码、电子邮箱和选择自己的身份是学生或者老师。然后点击注册,会进行非空校验,通过后会将数据传到后台进行注册。如果注册失败则会提示注册失败让其重新注册,如果注册成功就会直接进入主页。

6.1.3 我的主页模块

用户登录后会进入主页,最上面显示早中晚上好和用户的名称进行问候,根据用户的不同分为用户名加老师和用户名加同学,例如:早上好,Tom老师。我的主页会显示用户的大致信息,有部分试卷、部分班级、部分考试和部分题目。在主页可以创建试卷输入试卷名称进行试卷的创建。老师可以点击创建班级按钮进出班级创建页面,学生则是加入班级按钮,点击之后输入班级ID加入班级。点击查看考试进入考试中心查看所有的考试试卷,还可以点击创建题目进入创建题目的页面。
左边框会显示我的主页、我的试卷、考试中心、我的班级和我的题目等五个模块。点击之后可以进入不同的模块。

6.1.4 我的试卷模块

点击左边框的我的试卷可以进入我的试卷模块。这个模块会通过表格的模式显示自己所创建的所有试卷,会通过分页的方式进行显示,每页显示10个试卷。当试卷数不满10个时则会显示所有的试卷。每行显示一个试卷的信息。右上角是一个创建试卷的按钮,点击之后可以输入试卷名称进行创建试卷。试卷显示内容为试卷名、题目数量、创建时间、创建者和操作。操作根据用户的不同显示也不同。老师会显示修改、删除和查看题目三个按钮。学生除了这三个按钮还有一个开始考试的按钮。点击修改按钮会在试卷名那栏显示一个输入框和提交按钮,在输入框中输入新的试卷名称,点击提交就可以成功修改试卷的名称。点击删除按钮会弹出一个确认框,询问是否确认删除这个试卷,并且提示纸卷中的题目并不会删除,点击确认就会删除试卷,点击取消则会取消删除试卷。点击查看题目会进入题目详情界面。

题目详情界面会通过表格的方式显示出这个试卷中所有的题目。题目详情显示内容为题目名、题目类型和操作。题目类型分为单择题、多选题、填空题和问答题。操作中是查看按钮和删除按钮,删除按钮点击后会弹出一个确认框并询问是否确认从这个试卷中删除这道题目。点击确认就会将这个题目从试卷中删除,但是并不会真正的删除题目,题目还会显示在我的题目界面。点击查看按钮会进入查看题目界面。这个界面会同过不可修改的输入框的形式显示出题目的所有信息、比如题目名、题目类型和答案,如果题目类型是单选题和多选题还会显示选项A、选项B、选项C和选项D。右上角还有一个修改按钮,点击之后,输入框会变成可输入的模式,并且在下方显示重置和提交按钮。修改题目详情之后点击提交则会修改题目。

题目详情界面表格左上角显示这个试卷的名称,右上角显示一个添加题目的按钮。添加题目的按钮点击之后会在题目详情表格下面显示一个我的题目的表格。我的题目表格会通过分页的方式显示所有的题目,每页显示十个题目。显示内容是题目名、题目类型、操作和选择。操作中和题目详情表格一样含有查看按钮和删除按钮,功能也是一样的。选择中则是多选框,可以选择题目。表格右上角是全选按钮和提交按钮,全选按钮点击之后则会选择当前显示的所有题目,提交按钮点击之后会把选择的题目添加到当前试卷之中。

而且学生的界面会在我的试卷表格下面多一个做题记录表格。做题记录会显示试卷名、题目数量、做题时间和操作四个部分操作中会有一个查看详情的按钮,点击之后会进入做题记录详情界面。做题记录详情界面会以表格的模式显示所有的题目和自己选择和填写的答案。

6.1.5 考试中心模块

点击左边框的考试中心可以进入考试中心模块。考试中心模块会以分页的方式,以每页十个显示自己所在班级的所有试卷,内容分为试卷名、题目数量、创建时间、所属班级和操作。操作中根据用户类型的不同分为老师操作和学生操作,老师操作分为修改、删除和查看题目。这和我的试卷模块中的老师操作相同。而学生操作中只有开始考试按钮。点击之后会进入考试界面。考试界面中会显示题目,每次显示一个题目,做完之后可以点击上一题或下一题按钮进行选择题目,也可以在选择题目表格中点击每道题目的按钮进行选择。题目根据题目类型的不同,单选题显示单选框、多选题显示多选框、填空题和简答题显示输入框。在右上角有一个提交答案的按钮,点击之后,如果答案没有做完,会跳转到未做的题目并且提示还有题目没有做完。如果题目做完了则会弹出确认框,确认是否提交试卷,点击确认之后会提交试卷。
学生在考试中心模块还会在考试中心表格下面显示做题记录表格,这个做题记录表格和我的试卷中的表格相同,只不过显示的内容不同。考试中心模块的做题记录表格显示的是作考试中心的试卷留下的做题记录,而我的试卷模块中的做题记录表格显示的是作自己创建的试卷留下的做题记录。

6.1.6 我的班级模块

点击左边框的我的班级可以进入我的班级模块。这个模块会通过表格的方式显示自己所有的班级,会通过分页的方式进行显示,每页显示十个班级。当班级数不满十个时则会显示所有的班级。每行显示一个班级的信息。显示内容有班级名称、班级详情、班级人数、创建时间、班主任和操作。操作根据根据用户类型的不同,内容也不同。用户是学生时操作中只有查看班级按钮。用户是老师时操作中有修改按钮、删除按钮和查看班级按钮。点击修改按钮会在所在行的班级名称和班级详情中显示输入框和一个提交按钮,输入要修改的班级名称和班级详情点击提交就可以进行修改。点击删除按钮会弹出提示框询问是否确认删除班级,点击确认就会删除班级。但是班级中的学生和试卷并不会删除。

点击查看班级按钮会进入班级详情界面,界面中有两个表格,一个是班级学生表格,另一个是班级试卷表格。班级学生表格中的有上角会显示班级ID,表格内容有姓名、类型、电子邮箱和操作。类型分为老师和学生,操作中有移除班级按钮,但是类型为老师的班级人移除班级按钮是失效的,不可点击的。学生用户中班级所有的移除班级按钮都是不可点击的。班级试卷表格根据用户类型的不同,显示不同,老师用户中表格右上角有个添加试卷的按钮,点击之后会在班级试卷表格的下面显示我的试卷表格,会显示老师自己创建的所有试卷,显示内容为试卷名、试卷题目数量、创建时间、创建者、操作和选择,操作和我的试卷中的操作一样包含修改、删除和查看题目按钮,按钮功能也相同,选择中是多选框。右上角有全选按钮和提交按钮,选择之后点击提交就可以将试卷提交到班级中。而学生用户的班级试卷中右上角是没有添加纸卷的。班级试卷的内容为试卷名称、题目数量、创建时间、创建者和操作。操作中和我的试卷中的操作相同。
班级表格右上角根据用户类型的不同,内容也不同。用户是老师时是一个创建班级的按钮,用户是学生是是一个加入班级的按钮。点击创建班级的按钮会进入创建班级的界面,在界面中输入班级名称和班级详情然后点击提交就可以创建班级。点击加入班级会显示一个输入框和一个提交按钮,在输入框中输入班级ID并点击提交就可以加入班级。

6.1.7 我的题目模块

点击左边框的我的题目可以进入我的题目模块。我的题目模块有一个我的题目表格,我的题目表格会通过分页的方式显示所有的题目,每页显示十个题目。显示内容是题目名、题目类型和操作。题目类型分为单择题、多选题、填空题和问答题。操作中含有查看按钮和删除按钮。操作中是查看按钮和删除按钮,删除按钮点击后会弹出一个确认框并询问是否确认删除这道题目。点击确认就会删除这个题目。点击查看按钮会进入查看题目界面。这个界面会同过不可修改的输入框的形式显示出题目的所有信息、比如题目名、题目类型和答案,如果题目类型是单选题和多选题还会显示选项A、选项B、选项C和选项D。右上角还有一个修改按钮,点击之后,输入框会变成可输入的模式,并且在下方显示重置和提交按钮。修改题目详情之后点击提交则会修改题目。
我的题目表格右下角有一个分页栏,显示现在是哪一页和两边邻近的四页,最左边是返回首页按钮,最右边是返回尾页按钮。

7 系统测试

在线考试管理系统使用IDEA作为开发平台、使用MySQL5.5数据库、服务器使用的是Tomcat。前端使用BootStrap前端框架,使用JavaScript和JQuery前端技术来实现网页的动态效果和页面跳转弹框等操作。后端使用SSM框架和MVC三层架构。现在对整个系统进行完整的测试。

7.1 系统的功能测试

7.1.1.登录模块

登录界面,可以使用邮箱和密码或者用户名和密码进行登录,输入之后,然后点击登录按钮来登录系统。登录界面所示。

登录界面
在这里插入图片描述

7.1.2.注册模块

注册页面,在注册页面注册时需要输入用户名、密码和电子邮箱,然后选择注册账户类型是学生还是老师,点击注册就可以注册成功,注册界面如图所示。
在这里插入图片描述

7.1.3.我的主页模块

登陆后的主界面,可以查看自己的部分试卷、班级 、考试和题目。也可以点击响应的按钮进行操作。登入后的界面如图所示。
在这里插入图片描述

7.1.4.我的试卷模块

点击左边栏中的我的试卷可以进入我的试卷模块,模块根据用户身份的不同可分为学生我的试卷界面和老师我的试卷界面,学生我的试卷和老师我的试卷中都有删除、修改和查看题目按钮。学生我的试卷中试卷操作中有一个开始做题按钮。在学生我的试卷中还有一个做题记录表格,其中有查看详情按钮。老师我的试卷界面中的试卷操作是没有开始做题按钮的,并且也没有做题记录表格。学生我的试卷界面如图、老师我的试卷界面如图所示。

学生我的试卷界面
在这里插入图片描述

老师我的试卷界面
在这里插入图片描述
做题记录界面
在这里插入图片描述

做题界面
在这里插入图片描述

试卷题目详情界面
在这里插入图片描述

7.1.5.考试中心模块

点击左边栏中的考试中心可以进入考试中心模块,考试中心模块根据用户身份的不同可分为学生考试中心界面和老师考试中心界面,学生考试中心中考试操作中有一个开始做题按钮,点击之后可以进入做题界面,这里的做题界面和我的试卷中的做题界面是相同的。在学生考试中心中还一个做题记录表格,点击查看详情可以进入做题记录界面,这里的做题记录界面和我的试卷中的做题记录界面也是相同的。老师考试中心界面中的考试操作是没有开始做题按钮的,并且也没有做题记录表格。考试中心界面如图所示。

在这里插入图片描述

7.1.6 我的班级模块

点击左边栏中的我的班级可以进入我的班级模块,我的班级模块根据用户身份的不同可分为学生我的班级界面和老师我的班级界面,学生我的班级中班级操作中有一个加入班级按钮,点击之后可以输入班级ID加入班级。在学生我的班级操作中只有一个查看班级按钮,老师我的班级界面中的班级操作中有三个按钮,分别是修改、删除和查看班级按钮。
在这里插入图片描述

7.1.7.我的题目模块

点击左边栏中的我的题目可以进入我的题目模块,我的题目模块主要是自己所创建的所有题目,题目操作中有一个查看和删除按钮,点击之后可以进入题目详情页面。在题目详情页面中可以进行题目的修改。

在这里插入图片描述

8.系统测试结论

在对系统的所有模块进行统一的测试后,基本达成了上述要求,系统运行成功且稳定。实现了试卷、题目、班级的增删改查,老师创建班级、将试卷添加到班级以及学生加入班级和进行考试的基本要求。

9.源码获取

精彩专栏推荐订阅:在下方专栏👇🏻

Java精品项目源码大全
https://blog.csdn.net/bruceliu_code/category_9538286.html

欢迎大家点赞收藏关注评论啦 、查看下方二维码👇🏻获取联系方式👇🏻

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

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

相关文章

chatgpt赋能python:如何利用Python加快计算速度

如何利用Python加快计算速度 在大数据时代,计算效率的问题成为了企业和科研机构普遍关注的焦点问题。Python是一种高级编程语言,其具有灵活、易学、语法简洁、运行速度快等优点,因此在数据分析和科学计算领域广泛应用。然而,Pyth…

chatgpt赋能python:Python内部函数介绍

Python内部函数介绍 Python是一门功能强大、易于学习的编程语言,拥有许多内部函数可供使用。本文将介绍Python的内部函数和其用途,以便更好地利用和理解Python。 什么是内部函数? 内部函数是Python提供的一组内置函数,它们可以…

2023/5/25总结

学习CSS list-style:none 去掉无序列表的带有的样式,比如原点。 border-radius:length 设置圆角,也可以写%,不一定需要些半径大小,也可以顺时针写半径大小,就会出现四个顶点不一样的圆角。或者写:borde…

chatgpt赋能python:Python写Log的技巧与最佳实践

Python 写 Log 的技巧与最佳实践 在编写 Python 应用程序时,日志记录(Logging)是一项非常重要的功能,尤其是在调试或部署过程中。本文将介绍一些 Python 写 Log 的技巧和最佳实践,以帮助你更好地处理日志记录并提高应…

Java的String(字符串详解)

字符串 1.字符串的常见构造方法 主要有三种,一种是直接使用常量去构造,要么使用new String来构造,或者还可以使用字符数组的形式。 public static void main(String[] args) { // 使用常量串构造 String s1 "hello"; System.ou…

order by排序语句的用法

文章目录 学习连接语法用法示例1、按单个列的值排序2、按多个列的值排序3、按指定的规则排序4、按中文拼音字母顺序5、Order by和where条件共用 数据库中常用order by关键字对结果集进行排序,又可使用desc和asc来进行指定规则的排序。 学习连接 数据库:…

chatgpt赋能python:单行for循环:Python编程的神器

单行for循环:Python编程的神器 Python是一门功能强大的编程语言,其中的单行for循环功能更是让它的编程效率倍增。在本文中,我们将探讨单行for循环是如何提升编程效率的。 什么是单行for循环 单行for循环是一种简单而强大的编程方式。它可以…

【利用AI让知识体系化】V8引擎相关知识

文章目录 I. 引言V8引擎的背景和概述 II. V8的设计和工作原理V8的整体设计V8的工作流程和运行机制V8在浏览器中的应用场景 III. 内存管理内存模型和内存管理策略垃圾回收机制和算法内存泄漏和内存优化 IV. JIT编译器JIT编译器的作用和优势V8的编译流程和编译器类型编译器优化技…

make的路径搜索

文章目录 前言一、VPATH二、vpath三、vpath 与 VPATH 的差别四、GPATH 用法总结 前言 在大型软件项目中,通常会存在多个目录,包含有源代码、头文件、库文件等不同类型的文件。在编译或链接时,需要指定相应的文件路径才能正确地进行构建。但是…

【计算机图形学】曲线和曲面(Bezier曲线 Bezier曲面)

模块5 曲线和曲面 一 实验目的 编写曲线和曲面的算法 二 实验内容 1:绘制Bezier曲线,并采用自行设计输入和交互修改数据点的方式。 实验结果如下图所示: 第一步:输入特征多边形的顶点个数,并按照顺序输入顶点的坐…

css3新增特性

1. 初始化 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …

怎么通过ecs云服务器来给小程序发送消息

如果您想通过 ECS 云服务器向小程序发送消息&#xff0c;可以使用 WebSocket 技术。具体步骤如下&#xff1a; 1. 在 ECS 云服务器上搭建 WebSocket 服务器。您可以使用 Node.js、Java、Python 等编程语言来实现 WebSocket 服务器&#xff0c;具体实现方式可参考相关技术文档或…

Java笔记——KMP算法

KMP算法 文章目录 KMP算法KMP算法介绍主要逻辑Next数组KMP搜索代码解释生成next数组模式串匹配 源码展示 KMP算法介绍 KMP算法是一种串的模式匹配算法&#xff0c;用来求子串在主串的位置。是数据结构中比较难的一种算法。KMP算法的核心在于点在于如何利用子串生成next数组&am…

vim的使用、vim入门的三种常用模式、以及vim中常用的命令(超详细)

vim 入门的三种常用模式&#xff1a;分别是 1. 命令模式、2. 插入/编辑模式、3. 底行模式 1. 命令模式 控制屏幕光标的移动&#xff0c;字符、字或行的删除&#xff0c;移动复制某区段及进入Insert mode下&#xff0c;或者到 last line mode 如下&#xff0c;这个就是命令模式…

Numpy入门看这一篇就够了【史上入门最简单,开袋即食】

一边学习一边分享&#xff0c;好记性不如烂笔头 目录 一边学习一边分享&#xff0c;好记性不如烂笔头 NumPy问题思考&#xff1a; numpy是什么&#xff1f; 为什么要学习numpy&#xff1f; numpy是怎么组成的&#xff1f;特点是什么&#xff1f; numpy的应用场景有哪些&a…

css定位模式

1. 为什么需要定位&#xff1f; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"…

自动化专业求职方向与前景分析(合集)

自动化专业求职方向与前景分析 自动化专业求职方向 自动化专业是近几年高校教育改革中几个控制类专业合并后形成的宽口径专业&#xff0c;其实自动化就是搞控制的&#xff0c;用老师的话说就是控制一切可以控制的物理量&#xff0c;还说学自动化的人都要有控制的欲望。所谓控制…

Augmented Language Models(增强语言模型)

Augmented Language Models: A Survey 先上地址&#xff1a;https://arxiv.org/pdf/2302.07842.pdf 概率论难以支撑通用人工智能技术的诞生。—— Yann LeCun LLMs取得的巨大进展不再多说&#xff0c;它目前被诟病最多的问题是其会提供非事实但看似可信答案&#xff0c;即幻觉…

数组排序——从荷兰国旗问题到快速排序

本文首先将会介绍荷兰国旗问题&#xff0c;再讲述如何从该问题过渡到快速排序。 荷兰国旗问题 荷兰国旗问题&#xff08;Dutch National Flag Problem&#xff09;是由荷兰计算机科学家Edsger Dijkstra所提出&#xff0c;该问题的描述如下&#xff1a; 给定n个红、白、蓝三种颜…

JNDI学习笔记

最近在研究JNDI注入漏洞&#xff0c;就先浅浅的学习以下JNDI相关知识。 JNDI对各种目录服务的实现进行抽象和统一化。 在 Java 应用中除了以常规方式使用名称服务(比如使用 DNS 解析域名)&#xff0c;另一个常见的用法是使用目录服务作为对象存储的系统&#xff0c;即用目录服务…