当前位置: 首页 > news >正文

0013Java程序设计-基于Vue的上课签到系统的设计与实现

文章目录

    • **摘 要**
    • 目录
    • 系统设计
    • 4.2学生签到
    • 4.3 签到信息列表
    • 4.4 用户信息管理
    • 5.1系统登录
      • 5.1.1 登录
      • 5.1.2 清除用户登记记录
      • 5.1.3 登录拦截
    • 5.2用户管理
      • 5.2.2 用户添加
      • 5.2.3 用户编辑
      • 5.2.4 用户删除
      • 5.2.5 用户分页
    • 5.3签到信息
      • 5.3.1签到信息列表
    • 5.4学生签到
      • 5.4.1学生签到
    • 开发环境

编程技术交流、源码分享、模板分享、网课分享

企鹅🐧@裙:776871563

摘 要

如今,随着信息化技术的深入、发展和应用普及,在很大程度上改变了人们的工作、生活和习惯。多媒体以及各种电子设备进入了学生的眼中增加了学生的学习兴趣,使得各校每年的招生人数的得到大幅度增加,在这样的情况下,学生管理就成了一大难题,为此编写了本系统为方便教师对学生的教学情况进行管理,本系统能为学生提供签到服务,教师可通过登录自己的账号查看自身课程所对应的教学情况,同时设置管理员对教师与学生的个人信息进行一个统一管理。本系统通过这种方式增强学校对学生的管理,同时也可以检验教师的教学情况。

系统分为学生登录、教师登录和管理员登录模块,管理员登录可以管理学生信息、教师信息对其进行查询、添加、修改和删除。学生对当前教师课程进行签到,教师对学生课程签到的情况进行统计。

系统采用技术包括Vue.js、element-ui等。上课签到系统以Vue.js为前端的框架,通过axios实现数据交互,页面布局采用element-ui搭建了简易的页面。

**关键词:**上课签到系统;Vue.js;element-ui;

目录

摘 要… 2

Abstract… 3

第一章 引言… 5

1.1系统开发背景… 5

1.2设计思路和方法… 6

第二章 相关技术简介… 7

2.1 Vue.js… 7

2.2 Element-ui… 8

2.3 Axios… 9

2.4 B/S架构… 9

2.5开发工具和开发环境… 10

操作系统:Windows10… 10

第三章 系统需求分析与设计… 10

3.1可行性分析… 10

3.1.1 发展可行性… 11

3.1.2 经济可行性… 11

3.1.3 技术可行性… 11

3.1.4 操作可行性… 12

3.2功能简介… 12

3.2.1用户系统结构分析… 12

3.2.2管理员系统结构分析… 12

3.3用例分析图… 13

3.4 活动图分析… 14

3.4.1 登录分析… 14

3.4.2 添加用户分析… 15

3.5 ER图设计… 16

3.5.1 签到实体设计… 16

3.5.2 用户实体设计… 17

3.5.4 ER图设计… 17

第四章 用户登录系统实现… 18

4.1系统登录页面… 18

4.2学生签到页面… 19

4.3 签到信息列表… 20

this.load();//页面刷新… 20

第五章 管理员系统实现… 21

5.1系统登录… 21

5.1.1 登录… 22

5.1.2 清除用户登记记录… 22

5.1.3 登录拦截… 23

5.2用户管理… 23

5.2.1 用户列表… 24

5.2.2 用户添加… 24

5.2.3 用户编辑… 25

5.2.4 用户删除… 25

5.2.5 用户分页… 26

5.3签到信息… 26

5.3.1签到信息列表… 26

5.4学生签到… 26

5.4.1学生签到功能… 27

第六章 系统测试… 27

6.1可用性测试… 27

6.2性能测试… 28

6.3 兼容性测试… 28

6.4 功能测试… 29

6.4.1登录测试… 29

6.4.2 管理员用户管理测试… 30

6.4.4 签到信息组合查询测试… 30

6.4.4 学生签到测试… 31

6.5 测试结果分析… 31

第七章 系统总结… 32

参考文献… 41

系统设计

登录界面如图4.1.1登录所示,总共分为用户登录和管理员登录,登录成功后进入相对应的系统界面。

img

​ 图4.1.1系统登录界面图

4.2学生签到

学生登录进系统后,可以根据要求对课程进行签到。

img

图 4.2.1 学生签到图

//--------------------------------------------------学生签到操作

selectQD() {

​ requset.post(“/selectqd?user_id=”+this.ruleForm.user_id + “&course_name=”+this.ruleForm.course_name + “&course_teacher=”+ this.ruleForm.course_teacher).then(res => {

​ console.log(typeof(res))

​ if(res === 1){

​ alert(“您已签到”)

​ }else {

​ requset.post(“/signQD”,this.ruleForm).then(res => {

​ console.log(res.data)

​ this.$message.success(“签到成功”);

​ })

​ }

​ })

},

4.3 签到信息列表

教师登录系统后可以对学生的签到信息进行管理。

img

图 4.3.1 签到信息图

select() {

​ request.get(‘/selectOne?course_name=’+ this.course_name +‘&course_teacher=’+ this.course_teacher).then(res => {

​ console.log(“----:”+JSON.stringify(res))

​ // var array=[];

​ // array.push(res)

​ this.tableData =res;

​ })

​ }

4.4 用户信息管理

管理员登录系统后可对学生与教师信息进行管理。

img

img

图 4.4.1 用户信息管理图

handleuser(index) {

if(index == “1”) {

​ this.$router.push(“/studentinfoView”)

}else if(index == “2”){

​ this.$router.push(“/teacherinfoView”)

}else if(index == “3”) {

​ this.$router.push(“/admininfoView”)

}

},

5.1系统登录

5.1.1 登录

如图5.1.1.1管理员登录所示,登陆时通过axios从后端获取到用户信息,登录成功后信息保存在网页的浏览器后台上,下次访问的时候系统会优先获取axios的信息,先在后台进行验证,验证通过时,根据角色定位到相应页面,通过用户的请求在进行页面的逻辑处理。

img

图 5.1.1.1 管理员登录

requset.post(“/login”,this.ruleForm).then(res => {

if(res.code === ‘200’) {

console.log(“res.data:” + JSON.stringify(res.data))//res.data存放的是数据库中的内容 (账号密码名字权限)

localStorage.setItem(“user”,JSON.stringify(res.data))

​ console.log(JSON.stringify(res.data))

​ console.log(res.data.user_qx)

​ if(res.data.user_qx === ‘0’) {

​ this.$router.push(“/student”)

​ }else if(res.data.user_qx === “1”) {

​ this.$router.push(“/teacher”)

​ }else if (res.data.user_qx === “2”){

​ this.$router.push(“/admin”)

​ }else {

​ alert(“没有该账号,请点击注册按钮注册”)

​ this.$router.push(“/”)

​ }

​ }

​ })

​ } else {

​ console.log(‘error submit!!’);

​ this.$router.push(“/login”)

​ }

​ });

},

5.1.2 清除用户登记记录

用户登录成功后信息保存在网页的浏览器后台上,localStorage用于持久化存储本地数据,除非主动删除数据,否者数据是永久存在的,这就造成了用户不需要登录就可以进入系统界面,所以有必要清除用户登记记录。

methods:{

​ logout(){

​ localStorage.removeItem(“user”);

}

5.1.3 登录拦截

登录拦截器通过配置文件,在此之前除了登录页面所有的路径都会进行拦截,为了防止用户不进行登录就进入系统界面,在访问之前进行判断一下是否登录,如果没有登录,就跳到登录页面,如果登陆了,就跳到用户相对应的系统界面。

router.beforeEach((to, from, next)=>{

let userStr=localStorage.getItem(“user”)

if(userStr){

next();

}else{

if(to.path === ‘/login’){

​ next();

}else if(to.path === ‘/register’){

​ next();

}else{

​ next({

​ path:‘/login’

​ });

}

}

})

5.2用户管理

5.2.1 用户列表

用户列表如图5.2.1.1用户列表所示,可根据用户的用户ID进行查找。

img

img

图 5.2.1.1 用户列表

async showEditDialog(user_id) {

request.get(“/finduser?user_id=” + user_id).then((res) => {

​ console.log(“--------” + JSON.stringify(res));

​ this.editForm = res;

​ this.editDialogVisible = true;

});

},

5.2.2 用户添加

用户添加如图5.2.2.1用户添加所示,添加用户时要在数据库中检测用户号是否存在,如果存在,添加用户不成功,如果不存在,则成功添加用户。

img

图 5.2.2.1 用户添加

adduser() {

request.post(“/insert”, this.addform).then((res) => {

​ if (res.code === “200”) {

​ this.$message.success(“添加用户成功”);

​ //隐藏添加对话框

​ this.addDialogVisible = false;

​ this.load();

​ } else {

​ this.$message.error(“添加用户失败”);

​ }

});

},

5.2.3 用户编辑

用户编辑如图5.2.2.1用户编辑所示,点击编辑时,列表应显示原先有的信息,在原有的信息上进行修改,管理员修改信息是不能修改用户号,用户的用户号在用户中为唯一标识。

img

​ 图 5.2.3.1 用户编辑

editUserInfo() {

request

​ .post(“/edituser?user_id=” + this.editForm.user_id, {

​ user_id: this.editForm.user_id,

​ user_name: this.editForm.user_name,

​ user_account: this.editForm.user_account,

​ user_pwd: this.editForm.user_pwd,

​ user_phone: this.editForm.user_phone,

​ user_home: this.editForm.user_home,

​ user_qx: this.editForm.user_qx,

​ })

​ .then((res) => {

​ if (res.code === “200”) {

​ this.$message.success(“更新用户成功”);

​ //隐藏添加对话框

​ this.editDialogVisible = false;

​ this.load();

​ } else {

​ this.$message.error(“更新用户失败”);

​ }

​ });

},

5.2.4 用户删除

用户删除如图5.2.4.1用户删除所示,用户删除只能单个删除,删除时提示用户删除操作,是否继续,防止用户不小心误删。

img

​ 图 5.2.4.1 用户删除

async removeuserById(user_id) {

const confirmResult = await this.$confirm(

​ “此操作将永远删除该用户,是否继续”,

​ “提示”,

​ {

​ confirmButtonText: “确定”,

​ cancelButtonText: “取消”,

​ type: “warning”,

​ }

).catch((err) => {

​ return err;

});

if (confirmResult !== “confirm”) {

​ return this.$message(“取消删除”);

}

request.get(“/deluser?user_id=” + user_id).then((res) => {

​ if (res.code !== “200”) {

​ return this.$message.error(“删除用户失败”);

​ }

​ this.$message.success(“删除成功”);

​ this.load();

});

},

},

5.2.5 用户分页

用户分页图如图4.5.1用户分页图所示,用户数量日复一日的增长,页面一次性显示出所有用户信息,看着比较不美观,而且杂乱,有了分页可以清晰的看出用户记录和总条数。

img

图 4.5.1 用户分页图

this.request

​ .get(“/usertable/page”, {

​ params: {

​ pageNum: this.pageNum,

​ pageSize: this.pageSize,

​ },

​ })

​ .then((res) => {

​ this.tableData = res;

​ });

this.request

​ .get(“/usertable/rows”, {

​ params: {

​ pageNum: this.pageNum,

​ pageSize: this.pageSize,

​ },

​ })

5.3签到信息

5.3.1签到信息列表

签到信息列表如图5.3.1.1签到信息列表所示,可根据课程名与授课教师进行查找。

img

图 5.3.1.1 签到信息列表

5.4学生签到

5.4.1学生签到

学生签到如图5.4.1.1通过填写信息对课程进行签到。

img

图 5.4.1.1 学生签到功能

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DbUtil {private String dbUrl="jdbc:mysql://127.0.0.1:3306/database?serverTimezone=UTC&useSSL=false"; // 数据库连接地址private String dbUserName="root"; // 用户名private String dbPassword="123456"; // 密码private String jdbcName="com.mysql.cj.jdbc.Driver"; // 驱动名称/*** 获取数据库连接* @return* @throws Exception*/public Connection getCon(){try {Class.forName(jdbcName);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}Connection con = null;try {con = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return con;}/*** 关闭数据库连接* @param con* @throws Exception*/public void closeCon(Connection con)throws Exception{if(con!=null){con.close();}}public static void main(String[] args) {DbUtil dbUtil=new DbUtil();try {dbUtil.getCon();System.out.println("数据库连接成功!");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("数据库连接失败");}}
}

开发环境

开发工具:idea、Navicat

数据库:MySQL8.0

环境配置:jdk1.8 、Tomcat8.5

开发人员:IT012201

相关文章:

0013Java程序设计-基于Vue的上课签到系统的设计与实现

文章目录 **摘 要**目录系统设计4.2学生签到4.3 签到信息列表4.4 用户信息管理5.1系统登录5.1.1 登录5.1.2 清除用户登记记录5.1.3 登录拦截 5.2用户管理5.2.2 用户添加5.2.3 用户编辑5.2.4 用户删除5.2.5 用户分页 5.3签到信息5.3.1签到信息列表 5.4学生签到5.4.1学生签到 开发…...

2.修改列名与列的数据类型

修改字段名与字段数据类型 1.修改字段名 有时,在我们建好一张表后会突然发现,哎呀!字段名貌似写错了!怎么办?要删了表再重新建一个新表吗?还是要删了这个字段再新建一个新的字段? 都不用&…...

[Firefly-Linux] RK3568 Ubuntu固件分区详解

RK为了方便开发与产品定制,自己定义了一套固件的分区,这些分区信息存放在parameter.txt文件中,Firefly参考这个文件定义了自己的Ubuntu分区,文件为parameter-ubuntu.txt,存放于Linux_SDK的device/rockchip/rk356x目录下…...

SpringBoot项目访问resources下的静态资源

1.新建一个配置文件夹,放配置类 2.编辑 WebMvcConfig.java package com.southwind.configuration;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import or…...

Qt之面试经验

1.恒生芸擎网络 技术没怎么问,一面问对方工作日常会涉及的一些东西(自动发布),二面公司流程,三面其他(没发offer) 2.光珀智能科技 涉及AI算法落地,问了点基础问题,比如…...

数据库基础概念与范式反范式总结

文章目录 一、基本概念1、属性2、元组3、关系4、超键5、候选键6、主键7、主属性8、外键9、函数依赖完全依赖 二、数据库范式1、第一范式(1NF)2、第二范式(2NF)3、第三范式(3NF)4、巴斯-科德范式&#xff08…...

tanstack/react-query使用手册

1. useQuery useQuery的使用一、data是后端成功返回的数据, 第一次的值为undefined 二、isLoading是指数据是否正在加载的状态,通常用于判断请求是否还在进行中。当isLoading为true时,表示数据正在加载中,当isLoading为false时&a…...

camera2对摄像头编码h264

MediaCodec编码摄像头数据 前置:保存的一些成员变量 // 摄像头开启的 handler private Handler cameraHandler; // Camera session 会话 handler private Handler sessionHandler; //这里是个Context都行 private AppCompatActivity mActivity; // 这个摄像头所有需…...

Apache solr XXE 漏洞(CVE-2017-12629)

任务一: 复现环境中的漏洞 任务二: 利用XXE漏洞发送HTTP请求,在VPS服务器端接受请求,或收到DNS记录 任务三: 利用XXE漏洞读取本地的/etc/passwd文件 1.搭建环境 2.开始看wp的时候没有看懂为什么是core,然…...

​HTML代码混淆技术:原理、应用和实现方法详解

HTML代码混淆是一种常用的反爬虫技术,它可以有效地防止爬虫对网站数据的抓取。本文将详细介绍HTML代码混淆技术的原理、应用以及实现方法,帮助大家更好地了解和运用这一技术。 一、HTML代码混淆的原理 HTML代码混淆是指将HTML源码通过特定的算法进行加…...

quickapp_快应用_系统接口应用

系统接口 在项目中使用到的接口都需要在配置文件manifest.json中声明,不然会报如下警告 [WARN] 请在 manifest.json 文件里声明项目代码中用到的接口: system.storage, service.account, system.package, system.webview[1]检查某app是否在手机上安装 官方文档&a…...

sqlmap400报错问题解决

python sqlmap.py -r sql.txt --batch --techniqueB --tamperspace2comment --risk 3 --force-ssl–batch 选项全部默认 不用再手动输入 –techniqueB 使用布尔盲注,该参数是指出要求使用的注入方式 –tamperspace2comment使用特殊脚本,space2comment是把…...

【S32DS报错】-2-提示Error while launching command:arm-none-eabi-gdb –version错误

目录 1 Error错误提示 2 Error错误原因 3 如何消除Error错误 结尾 【S32K3_MCAL从入门到精通】合集: S32K3_MCAL从入门到精通https://blog.csdn.net/qfmzhu/category_12519033.html 1 Error错误提示 使用S32DSJ-LinK下载程序,在Dedug Configurati…...

Windows核心编程 HOOK

目录 HOOK概述 HOOK API SetWindowsHookExA 函数(winuser.h) UnhookWindowsHookEx 函数(winuser.h) NextHookEx 函数(winuser.h) 局部钩子 全局钩子 为什么全局钩子需要用dll作为过程函数? HOOK概述 本质:Windows消系统的消息过滤器。 全局钩子…...

P4 Qt如何添加qss样式表文件和添加图片资源

目录 前言 01 添加图片资源文件 02 添加qss文件 前言 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Qt基础_ChenPi的博客-CSDN博客》✨✨✨ 🌺本篇简介 :这一章…...

【华为OD题库-085】路灯照明II-Java

题目 在一条笔直的公路上安装了N个路灯,从位置0开始安装,路灯之间间距固定为100米。 每个路灯都有自己的照明半径,请计算第一个路灯和最后一个路灯之间,无法照明的区间的长度和。输入描述 第一行为一个数N,表示路灯个数…...

附录1、vuepress中的Markdown语法

# 一、标题 # 说明: #后面跟的内容就是标题,一个#就是一级标题,有几个#就是几级标题,例如2级标题就有两个##,markdown的2级和3级标题会默认自动作为子目录, 注意:#后面必须有个空格&#xff0…...

【matlab程序】matlab画螺旋图|旋转图

%% 数学之美====》螺旋线 % 海洋与大气科学 % 20231205 clear;clc;close all; n=10; t=0:0.01:2pin; R=1; xx=nan(length(t),1);yy=nan(length(t),1); for i=1:length(t) xx(i)=Rcos(t(i)); yy(i)=Rsin(t(i)); R=R+1; end figure set(gcf,‘position’,[50 50 1200 1200],‘col…...

计算三位数每位上数字的和

分数 10 作者 python课程组 单位 福州大学至诚学院 补充程序实现计算: 输入一个三位的整数(不接受实数),求这个三位数每一位上数字的和是多少?例如:输入:382,输出:和为…...

Gavin Wood:财库保守主义偏离了初心,应探索 Fellowship 等更有效的资金部署机制

波卡创始人 Gavin Wood 博士最近接受了 The Kusamarian 的采访,分享了他的过往经历、对治理的看法,还聊到了 AI、以太坊、女巫攻击、财库等话题。本文整理自 PolkaWorld 对专访编译的部分内容,主要包含了 Gavin 对治理、财库提案、生态资金分…...

Linux: sudo: unable to execute /opt/sbin/adm: No such file or directory

因为脚本语言第一行是指定解释器,但是里面包含非法^M字符,导致后续的系统调用,找不到解释器,然后报错误找不到文件。 所以这里存在一个问题,就是错误提示里虽然显示文件找不到,而且也把文件打印了出来。但是非法的字符却没有打印出来。所以导致让人迷惑的可能。 sudo: un…...

一文详解Java单元测试Junit

文章目录 概述、Junit框架快速入门单元测试概述main方法测试的问题junit单元测试框架优点:使用步骤: 使用案例包结构 Junit框架的常见注解测试 概述、Junit框架快速入门 单元测试概述 就是针对最小的功能单元(方法),…...

进制 + 原码,反码,补码

进制转换 整数部分 小数部分 原码 反码 补码 原码转补码: 左边和右边第一个1不变,中间取反。-0 除外。 计算机系统中数值一律用补码来存储的原因 其他 术语 进制表 进制数的表示 详细教程可转 爱编程的大丙...

2024年网络安全行业前景和技术自学

很多人不知道网络安全发展前景好吗?学习网络安全能做什么?今天为大家解答下 先说结论,网络安全的前景必然是超级好的 作为一个有丰富Web安全攻防、渗透领域老工程师,之前也写了不少网络安全技术相关的文章,不少读者朋…...

cocos 关于多个摄像机,动态添加节点的显示问题,需要动态修改layer。(跟随摄像机滚动)(神坑官网也不说明一下)

参考文章:Cocos 3.x 层级Layer - 简书 2D镜头跟随应该怎么实现呢 - Creator 3.x - Cocos中文社区 关于多个摄像机,动态添加节点的显示问题,需要动态修改layer? 场景:在制作摄像机跟随角色移动功能时,新增…...

freeswitch编译mod_av支持webrtc MCU通话

系统环境 一、FS相关网站 二、第三方库安装 1.apt安装 2.指定版本sofia-sip安装 3.指定版本spandsp安装 4.指定版本libks安装 5.指定版本openssl安装 三、指定版本FS安装 1.CPPFLAGS配置 2.编译器版本 3.FS配置编译 四、FS,fs_cli运行,模块加载 附录 1.安…...

K8s 入门指南(一):单节点集群环境搭建

前言 官方文档:Kubernetes 文档 | Kubernetes 系统配置 CentOS 7.9(2 核 2 G) 本文为 k8s 入门指南专栏,将会使用 kubeadm 搭建单节点 k8s 集群,详细讲解环境搭建部署的细节,专栏后面章节会以实战代码介绍…...

python socket编程6 - 使用PyQt6 开发UI界面实现TCP server和TCP client单机通讯的例子

使用PyQt6 开发UI界面实现TCP server和TCP client单机通讯的示例。 一、PyQt6 实现的界面 二、TCP server代码的修改示意 界面提供网络参数的配置,以及提供人机交互过程中的数据获取和显示。 1、把上面的server代码封装成两个部分 A、class Server 负责接受UI界面…...

centos上安装并持久化配置LVS

1 实验背景 1)系统版本:centos7.8 2)虚拟机:3个centos虚拟机,(其中一个做Director Server,另外两个做Real Server) 3) LVS大致有NAT ,DR ,Tun这三种模式,这里搭建一个典型的DR模式的LVS Direc…...

多线程并发Ping脚本

1. 前言 最近需要ping地址,还是挺多的,就使用python搞一个ping脚本,记录一下,以免丢失了。 2. 脚本介绍 首先检查是否存在True.txt或False.txt文件,并在用户确认后进行删除,然后从IP.txt的文件中读取IP地…...

SpringBoot Seata 死锁问题排查

现象描述:Spring Boot项目,启动的时候卡住了,一直卡在那里不动,没有报错,也没有日志输出 但是,奇怪的是,本地可以正常启动 好吧,姑且先不深究为什么本地可以启动而部署到服务器上就无…...

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑两阶段鲁棒优化配置的多微网合作博弈》

这个标题涉及到多个概念,让我们逐步解读: 考虑两阶段鲁棒优化配置: 两阶段: 指的是在解决问题或进行优化时,可能存在两个不同的阶段或步骤。这表明问题的解决不是一步完成的,而是需要经过多个步骤或阶段。鲁…...

Redis常见类型

常用类型String字符串类型Hash字典类型List列表类型Set集合类型ZSet有序集合类型 Java程序操作Redis类型代码操作Redis 常用类型 String字符串类型 使用方式: 使用场景: Hash字典类型 字典类型(Hash) 又被成为散列类型或者是哈希表类型&#xff0…...

深入了解数据库锁:类型、应用和最佳实践

目录 1. 引言 2. 数据库锁的基本概念 2.1 悲观锁和乐观锁 2.2 排他锁和共享锁 3. 悲观锁的应用场景 3.1 长事务和大事务 3.2 并发修改 3.3 数据库死锁 4. 悲观锁的最佳实践 4.1 精细控制锁的粒度 4.2 避免死锁 4.3 考虑乐观锁 5. 案例分析 5.1 银行系统的转账操作…...

python3.5安装教程及环境配置,python3.7.2安装与配置

大家好,小编来为大家解答以下问题,python3.5安装教程及环境配置,python3.7.2安装与配置,现在让我们一起来看看吧! python 从爬虫开始(一) Python 简介 首先简介一下Python和爬虫的关系与概念&am…...

ubuntu安装tomcat并配置前端项目

1.1查找 # 先更新 sudo apt update # 查找 apt search jdk1.2安装 sudo apt install openjdk-8-jdk1.3验证 java -version 2.安装tomcat 下载链接:Apache Tomcat - Apache Tomcat 8 Software Downloadshttps://tomcat.apache.org/download-80.cgi下载这个&…...

GeoPandas初体验:它是什么,我用它展示一下shp矢量数据

GeoPandas 是一个开源的 Python 库,用于处理地理空间数据。它扩展了 Pandas 这个流行的 Python 数据操作库,增加了对地理数据类型和操作的支持。GeoPandas 结合了 Pandas、Matplotlib 和 Shapely 的功能,提供了一个易于使用且高效的工具&…...

Python-滑雪大冒险【附源码】

滑雪大冒险 《滑雪大冒险》是一款充满趣味性和挑战性的休闲竞技游戏,在游戏中,玩家将扮演一位勇敢的滑雪者,在雪山上展示他们的滑雪技巧,游戏采用2D图形界面,以第三人称视角呈现 运行效果:用方向键及方向键…...

Linux---日志管理

本章主要介绍Linux中的日志管理 了解rsyslog是如何管理日志的查看日志的方法 日志管理简介 工作当中的日志,特指硬件和软件的日志,管理员可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。日志管理包括管理系统日志、应…...

Java高级技术-单元测试

单元测试 Junit单元测试框架 Junit单元测试-快速入门 方法类 测试类 Junit框架的基本注解...

springboot集成邮箱验证功能

准备工作 开启SMTP服务 前往你的邮箱网站,以网易邮箱为例,打开网易邮箱地址,登录你的邮箱,进入邮箱管理后台界面。点击“设置”》》“POP3/SMTP/IMAP”后,点击开启SMTP服务即可。 技术实现 Spring Boot 发送邮件验证…...

HarmonyOS应用程序框架——UIAbility实操

UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 每一个UIAbility实例,都对应于一个最近任务列表中的任务。 一个应用可以有一个UIAbility&…...

数实融合!低代码推动工业数字化转型走“深”向“实”

当下,“数字化、智能化”已经不再是新鲜词。毕竟,在早几年前就已经有企业喊出大举进军数字化的口号,轰轰烈烈的数字化转型运动也持续了很长一段时间,有一些业内人士甚至判断“如今的企业数字化已经走过了成熟期,来到了…...

OpenGL学习资料

1.学习网站 Song Ho Ahn LearnOpenGL GAMES101:现代计算机图形学入门 OpenGL 官网 2.书籍 Fundamentals of computer graphics OpenGL ES 3.0编程指南 计算机图形学(OpenGL版)第3版 3.参考的一些文章 颜色缓冲区 深度缓冲 VBO,VAO和EBO详解 深入探索透视投影变…...

字符串指令集

字符串指令的格式 例子1就成功发送了指令 例子2就是发送的字符串有误 查询当前位置就会在附加信息中返回当前座位的坐标 第一个指令的参数就是闪灯的两个参数 如第一个示例就是10ms On Time 第二个就是Off Time 使用标准库来接收字符串命令 字符串指令的接收 因为一个指令就是…...

行云海CMS SQL注入漏洞复现

0x01 产品简介 行云海cms是完全开源的一套CMS内容管理系统,简洁,易用,安全,稳定,免费。 0x02 漏洞概述 行云海cms中ThinkPHP在处理order by排序时可利用key构造SQL语句进行注入,LtController.class.php中发现传入了orderby未进行过滤导致sql注入。攻击者除了可以利用 SQL 注入…...

窗口函数之 first_value() 和 last_value()

这次,我要从**last_value()**开始写! last_value() 众所周知,first_value() 和 last_value() 的作用是返回窗口中某个字段的第一行的值和最后一行的值。 但是在应用的时候,突然发现使用last_value() 返回了不止一条数据&#x…...

习题练习讲解

前言:这又是一个新坑,算上之前的4个坑这是第五个坑(1、C/C的讲解,2、C语言小游戏,3、大学生活,4、假哲家因为某些原因没GS),这个就是发一些自己在刷题的过程中遇到自己感觉还不错的习…...

C++STL的string模拟实现

文章目录 前言string的成员变量成员函数构造函数拷贝构造赋值重载 模拟实现string各种接口print迭代器普通迭代器const迭代器 string比较大小push_backinsert 和 eraseinserterase reserve和resizereserveresize swapfindcout和cincoutcin 前言 今天要讲string的底层实现&…...

基于ZLMediaKit的webrtc实时视频传输demo搭建

环境 ubuntu 20.04 ​ gcc version 9.4.0 ​ cmake version 3.16.3 部署ZLMediaKit流媒体服务器 安装openssl 首先可以检查一下自己的openssl的版本如果是1.1.1以上就可以忽略这一步 wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz tar -xvzf openssl-1.1.1k…...