SSM+Vue.js实践课管理平台:从选题审核到成绩评定的实现
简介针对高校软件工程类毕业设计的《程序设计实践项目管理系统》完整源码包基于JAVASSM后端与Vue.js前端分离架构覆盖项目管理、任务分配、进度跟踪等常见业务模块适合需要快速搭建系统并完成论文撰写的本科生参考。压缩包共1017个文件包含Java源码、JSP页面、前端JS/CSS样式、SQL数据库脚本以及图片、字体等静态资源总计26.89MB目录按功能模块划分便于逐项研读和二次开发。目前已有124人学习下载资源附带了论文文档并提供启动讲解、功能演示及二次开发教程配套视频可帮助理解系统设计与扩展思路。对于初次接触SSM或Vue.js的读者是一份兼顾代码实践与文档写作的毕业设计参考资料能显著降低选题开发与论文撰写的时间成本。1. 项目是干嘛的一个带审核流和成绩评定的实践课管理平台毕业设计年年有人做“选题管理系统”但大部分做出来只是让学生提交一个题目、老师点个通过实际教学场景里最耗精力的“中间过程”——题目审核、进度跟踪、成果提交、评分归档——全都没覆盖到。这套“程序设计实践项目管理系统”不一样它是把一次实践课从选题到成绩评定的完整流程都搬到了线上学生在线申报题目、教师逐级审核、中期提交材料、终稿归档、评分结果回写整个链路用 JAVA SSM 做后端、Vue.js 做前端前后端分离还附带了论文文档非常适合拿来当毕业设计课题参考或者直接作为课程设计的项目源码跑起来二次开发。2. 整体架构拆解前后端分离 SSM 经典三层2.1 技术栈选型为什么是 SSM 而不是 SpringBoot这个系统的后端基于 Spring核心容器、SpringMVCWeb 层、MyBatis持久层组合也就是大家常说的 SSM 三件套。虽然现在 SpringBoot 已经很普及但 SSM 依然是高校毕设和课程设计里出现频率最高的组合原因很实在框架边界清晰配置过程能让人真正理解 MVC 分层和依赖注入的原理而不是一个注解自动把什么都藏起来。系统用 Maven 管理依赖Web 容器用的是 Tomcat数据库是 MySQLJDK 版本要求 1.8 以上。前端部分用的是 Vue.js 2.x Element UI 组件库通过 Axios 发起 HTTP 请求与后端交互。这种组合在管理类系统中非常常见Element UI 自带表格、表单、弹窗、树形控件能很快把后台管理界面搭起来尤其适合“学生端 教师端 管理员端”这种多角色场景。2.2 目录结构与分层规范拿到源码之后第一件事不是急着跑而是先看目录结构。项目的顶层目录是这样组织的practice-project-system/ ├── backend/ # 后端工程Maven 项目 │ ├── src/main/java │ │ └── com.practice.system │ │ ├── controller/ # 接口层接收请求、返回 JSON │ │ ├── service/ # 业务层业务逻辑与事务控制 │ │ ├── mapper/ # MyBatis 数据访问接口 │ │ ├── entity/ # 实体类对应数据库表 │ │ ├── common/ # 通用工具、统一返回结果、异常处理 │ │ └── config/ # 拦截器、跨域配置等 │ ├── src/main/resources │ │ ├── mapper/ # MyBatis 的 XML 映射文件 │ │ ├── application.yml # 数据源与端口配置 │ │ └── sql/ # 建库建表脚本与初始数据 ├── frontend/ # 前端工程Vue CLI 项目 │ ├── src/ │ │ ├── api/ # Axios 请求封装 │ │ ├── router/ # 前端路由配置 │ │ ├── views/ # 页面组件视图 │ │ ├── components/ # 可复用组件 │ │ ├── store/ # Vuex 状态管理 │ │ └── utils/ # 请求拦截器、工具函数 └── database/ └── practice_system.sql # 完整数据库脚本后端严格分成 controller、service、mapper、entity 四层entity 是数据库表映射的实体类mapper 负责 SQL 交互service 层写业务逻辑比如教师审核时同时要更新题目状态和写入审核记录这个动作必须在一个事务里controller 只做参数接收和结果返回。前端则按 api、router、views 拆分api 目录把每一个后端接口封装成一个函数页面组件不直接写请求路径这样后端接口地址一旦调整只需要修改 api 目录下的文件。2.3 数据库设计六张核心业务表系统跑起来的根基是数据库。打开 database 目录下的 practice_system.sql核心表一共有六张表名作用关键字段user用户表学生/教师/管理员id, username, password, role, real_nameproject实践项目表题目project_name, category, description, teacher_id, statusselection选题申报表student_id, project_id, submit_time, statusreview_record审核记录表selection_id, reviewer_id, opinion, resultprogress_report进度报告表selection_id, report_type, file_url, submit_timescore_record成绩评定表selection_id, score, comment, scorer_id这张表的关联关系是这样的user 表通过 role 字段区分三种角色project 表由教师teacher_id创建学生通过 selection 表申报题目申报之后进入审核流审核意见写入 review_record中期报告和最终成果走 progress_report最后的成绩落在 score_record。毕设答辩时老师最爱问的“你系统里哪些表之间是怎么关联的”用这套表结构说明白就是清晰的加分回答。3. 核心模块实战从登录鉴权到选题审核的完整链路3.1 用户登录与权限控制实现登录模块是第一个值得展开的代码模块。后端采用基于 Token 的鉴权方式用户输入账号密码后端验证通过后生成一个 Token 返回给前端前端把 Token 存到 localStorage每次请求带在请求头里后端通过拦截器统一校验。// LoginController.java RestController RequestMapping(/api/user) public class LoginController { Autowired private UserService userService; PostMapping(/login) public Result login(RequestBody LoginRequest request) { // 第一步查询用户信息 User user userService.findByUsername(request.getUsername()); if (user null) { return Result.error(用户不存在); } // 第二步校验密码常见做法是用 MD5 加盐后对比密文 String encrypted MD5Utils.encrypt(request.getPassword() user.getSalt()); if (!user.getPassword().equals(encrypted)) { return Result.error(密码错误); } // 第三步生成 Token 并返回 String token TokenUtils.generateToken(user.getId(), user.getRole()); return Result.success().put(token, token).put(role, user.getRole()); } }这个登录接口的核心逻辑就是三步走查用户、比密码、发令牌。password 字段存的不是明文而是加盐后的 MD5 密文salt 是每个用户独立生成的随机字符串这个细节解决的是“两台服务器数据库泄露后密码反推”的问题属于安全上的底线做法。Result 是一个统一返回体业务代码里所有接口都返回这个结构前端拿到的数据格式是固定的{ code: 200, message: 操作成功, data: { token: f9a2b3c4d5e6..., role: student } }前端在 Axios 请求拦截器里把 Token 带上// utils/request.js import axios from axios import { Message } from element-ui import router from ../router const service axios.create({ baseURL: /api, // 开发环境通过代理转发到后端 timeout: 10000 }) // 请求拦截器每次请求自动带上 token service.interceptors.request.use(config { const token localStorage.getItem(token) if (token) { config.headers[Authorization] token } return config }) // 响应拦截器统一处理 401 未登录和业务错误码 service.interceptors.response.use( response { const res response.data if (res.code ! 200) { Message.error(res.message || 请求失败) return Promise.reject(new Error(res.message)) } return res }, error { if (error.response error.response.status 401) { localStorage.clear() router.push(/login) } return Promise.reject(error) } )axios 拦截器我是建议直接拿来用的。请求拦截器负责“带令牌”响应拦截器负责“处理令牌失效”——一旦后端返回 401前端就清掉本地登录态并跳回登录页。这一步能避免用户在 Token 过期之后依然停留在页面里操作到一半才报错体验上的差距非常大。3.2 选题申报与教师审核的状态机设计选题申报是这个系统业务上最复杂的模块因为一个题目要经过“学生提交 → 指导教师初审 → 教研室审核 → 审核通过/驳回”多个状态流转。实现上selection 表的 status 字段用数字表示状态0 草稿、1 待初审、2 初审通过、3 已驳回、4 终审通过。每一次状态变化都会向 review_record 表写入一条审核意见这就是操作留痕。// SelectionServiceImpl.java 中的审核方法核心片段 Override Transactional public void reviewSelection(Integer selectionId, String reviewerId, String opinion, boolean pass) { Selection selection selectionMapper.findById(selectionId); if (selection null) { throw new ServiceException(申报记录不存在); } // 在状态机里规定当前步骤的合法上一步状态防止乱序审核 if (selection.getStatus() StatusConstant.WAIT_FIRST_REVIEW) { if (pass) { selection.setStatus(StatusConstant.WAIT_SECOND_REVIEW); } else { selection.setStatus(StatusConstant.REJECTED); } } else if (selection.getStatus() StatusConstant.WAIT_SECOND_REVIEW) { if (pass) { selection.setStatus(StatusConstant.FINAL_PASS); projectMapper.updateSelectedCount(selection.getProjectId()); } else { selection.setStatus(StatusConstant.REJECTED); } } else { throw new ServiceException(当前状态不允许审核操作); } // 更新选题状态 插入审核记录同一个事务 selectionMapper.updateStatus(selection.getId(), selection.getStatus()); reviewRecordMapper.insert(new ReviewRecord(selectionId, reviewerId, opinion, pass)); }方法上加了 Transactional 注解这表示更新状态和写审核记录两个动作必须在同一个数据库事务里执行任何一个失败都会整体回滚。这是做审核类功能的基本素养否则会出现“状态已经变了但审核意见没写进去”这种数据不一致的翻车现场。状态机这里有一个容易被忽视的细节代码在流转之前先判断当前状态是否处于期望状态也就是说教师不能跳过初审直接做终审接口层面就把乱序操作堵死了。对应的前端页面是教师端的审核列表用表格列出所有待审核的选题每一行提供“通过”和“驳回”两个操作按钮驳回时必须填写审核意见template el-table :datareviewList el-table-column propprojectName label题目名称 width220 / el-table-column propstudentName label申报学生 width120 / el-table-column propstatusText label当前状态 width100 / el-table-column label操作 width220 template slot-scopescope el-button typesuccess sizemini clickapprove(scope.row)通过/el-button el-button typedanger sizemini clickreject(scope.row)驳回/el-button /template /el-table-column /el-table /template这里用 Element UI 的 el-table 组件绑定一个数组每一行渲染两个操作按钮点击后调用对应的接口并把审核意见通过弹窗表单采集。前端代码的重点不在页面样式而在于把“列表查询 → 弹出表单 → 提交接口 → 刷新列表”这个流程走通这是管理类系统里最通用的交互模式。3.3 进度材料上传本地存储与文件回显毕设管理除了审核还要处理大量文件上传——开题报告、中期检查、论文终稿。这套系统把文件保存在服务器本地目录数据库只记录文件路径字符串这是中小型项目里最务实的做法不引入 FastDFS、MinIO 这类分布式存储部署成本低答辩讲解也好说。// FileUploadController.java RestController RequestMapping(/api/file) public class FileUploadController { Value(${file.upload-dir}) private String uploadDir; PostMapping(/upload) public Result upload(MultipartFile file) { if (file.isEmpty()) { return Result.error(上传文件不能为空); } // 用时间戳重命名文件避免中文名和重名问题 String originalName file.getOriginalFilename(); String suffix originalName.substring(originalName.lastIndexOf(.)); String newName System.currentTimeMillis() suffix; File dest new File(uploadDir / newName); try { file.transferTo(dest.getAbsoluteFile()); return Result.success().put(fileUrl, /files/ newName); } catch (Exception e) { return Result.error(文件保存失败); } } }文件上传这里有一个很关键的操作把原始文件名替换成了“时间戳 后缀名”的新名字。原因是中文文件名在不同的浏览器和服务器字符编码下容易出现乱码而且同名学生上传“开题报告.doc”这种重名文件会互相覆盖。时间戳命名能保证文件在服务器上的唯一性回显时前端拿到 fileUrl通过 Nginx 或 SpringMVC 的静态资源映射直接拼地址预览。关于这个项目绕不开的一个现实是同一套骨架可以同时套做“毕业论文管理系统”“课程设计管理系统”。原因在于它的业务抽象点都集中在“提交实体 审核流 评分”上不是绑定某个特定行业流程的代码。4. 项目运行全流程从 SQL 导入到浏览器访问4.1 环境准备拿到源码之后第一步是检查本地环境。这套项目运行依赖下面这些东西依赖项版本要求说明JDK1.8 及以上后端运行环境Maven3.6 及以上后端依赖管理MySQL5.7 或 8.0数据库存储Node.js12.x 及以上前端构建环境Tomcat8.5/9.0也可以用 SpringBoot 内嵌容器项目虽然没有强制用 Docker 之类的一键化方案但手动装配也不复杂。我建议第一次跑的时候先不管代码细节先把数据库和两个工程都跑通确认能看到登录页再回去看代码这样后面改代码出错时定位问题会快很多。4.2 数据库初始化三分钟搞定建表和演示数据使用 MySQL 命令行或 Navicat 执行 database 目录下的 practice_system.sql 脚本mysql -uroot -p123456 practice_system.sql脚本文件内含建库语句、建表语句和基础数据。首次运行的时候要注意编码问题建议在 MySQL 连接 URL 上显式设置字符集# application.yml 中的数据源配置 spring: datasource: url: jdbc:mysql://localhost:3306/practice_system?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.DriverURL 参数里的 characterEncodingutf8 和 serverTimezoneAsia/Shanghai 是我之前踩过坑的地方前者保证数据库读写中文不乱码后者避免 MySQL 8.x 默认时区和本地时区不一致导致的时间字段偏移报错。演示数据里内置了三个账号管理员 admin、教师 teacher01、学生 student01密码都在 SQL 脚本里。4.3 后端启动流程确认端口在监听后端工程是传统 SSM 结构但也可以直接用 SpringBoot 的启动类运行。打开 backend 目录在 pom.xml 所在目录执行mvn clean package -DskipTests打包完成后target 目录下会生成一个 war 或 jar 文件如果用 SpringBoot 内嵌 Tomcat 的方式直接执行 java -jar 即可启动java -jar target/practice-system-1.0.0.jar看到控制台输出 Tomcat started on port(s): 8080 就说明后端启动成功。这里想提醒一个常见现象如果端口被占用启动会直接失败常见做法是在 application.yml 里改 server.port 换一个端口同时注意前端代理转发地址也必须一起改。4.4 前端启动流程绕不开的 npm install 和代理配置前端工程是一个标准的 Vue CLI 项目。进入 frontend 目录npm install npm run servenpm install 在首次执行时往往会比较慢如果网络状况不好可以设置淘宝镜像源这是国内开发者绕不开的一步。启动成功后控制台会输出访问地址默认是 http://localhost:8080。前后端联调依赖 Vite或 webpack的代理配置在 vue.config.js 里做转发module.exports { devServer: { port: 8080, proxy: { /api: { target: http://localhost:8080, changeOrigin: true }, /files: { target: http://localhost:8080, changeOrigin: true } } } }配置的意思是把前端这边以 /api 开头的请求转发到后端 8080 端口这样可以解决开发环境下的跨域问题。如果这一行不配前端请求会直接报跨域错误页面能打开但数据全是灰色的加载失败状态。这也是新手最容易卡住的地方之一。前端登录之后浏览器 F12 里能看到 /api/user/login 的请求返回 200整个链路就算彻底打通了接下来就是逐个菜单点过去验证功能。5. 排坑经验运行这套 SSM 项目的五类必踩问题5.1 数据库连接失败报 Communications link failure现象后端启动时报错 java.sql.SQLException: Communications link failure或者启动成功后请求接口时抛数据库连接异常。原因最常见的是三个原因叠加造成的——MySQL 服务没有启动、连接地址中的端口写错、账号密码和 application.yml 里配置的不一致。还有一些是因为 MySQL 8.x 的驱动类名和旧版不同用了 com.mysql.jdbc.Driver 而没有改成 com.mysql.cj.jdbc.Driver。解决先用命令行 mysql -uroot -p 验证 MySQL 能正常登录再在 application.yml 里逐项核对 url、username、password。驱动类名在没有改动 pom 依赖的情况下直接用项目里已有的就行不要自己加上旧版驱动配一个新的依赖容易版本冲突。5.2 前端页面能打开但表格数据全是空的现象页面正常渲染但所有表格一片空白控制台报 404 或者 500。原因404 绝大多数是前端请求的路径和后端 Controller 上写的 RequestMapping 不一致比如前端调 /api/project/list但后端接口实际映射在 /project/list 上又或者代理只转发 /api 开头的地址。500 多数是 SQL 执行出错或某个 Bean 注入失败。解决先看请求发出的完整 URL再到后端 Controller 里对比映射路径。用 Postman 单独请求后端接口能直接跳过前端较快定位是设备问题还是后端问题。如果是 SQL 报错打开 MyBatis 的日志配置把 SQL 执行的入参和结果打印出来通常一眼就能看出问题。5.3 登录接口返回 401 或 Token 校验失败现象刚登录成功跳转到首页后不到一分钟再操作任何接口都返回未登录。原因Token 在生成后没有正确传给后端拦截器或者前端请求头 key 的名称和后端拦截器里取值的 key 不一致。比如前端写了 Authorization后端写的token。解决在前端 request.js 里打印一下 config.headers看看 Token 有没有真的带上去如果带了再到后端拦截器里打印 request.getHeader(key)对比两个字符串是否完全一致。这类问题多数情况下就是大小写或名字对不上属于血泪经验里出现频率很高的低级错误。5.4 文件上传成功但回显链接打不开现象文件上传接口返回成功数据库里存了路径但浏览器访问链接 404。原因项目里没有配置静态资源映射SpringMVC 默认不会把本地磁盘目录映射成一个可访问的 URL所以 /files/xxx.pdf 这样的路径找不到文件。解决加一个 WebMvcConfigurer 配置类来映射Configuration public class WebConfig implements WebMvcConfigurer { Value(${file.upload-dir}) private String uploadDir; Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 将 /files/** 映射到本地上传目录 registry.addResourceHandler(/files/**) .addResourceLocations(file: uploadDir /); } }这段配置的意思是所有 /files/** 的请求都从本地磁盘指定目录里读取文件返回。加了这段之后再访问文件链接就能正常打开了。5.5 运行打包后访问页面白屏现象前端执行 npm run build 后将 dist 目录部署到 Nginx访问首页一片空白控制台报资源 404。原因构建后的资源路径是绝对路径 /js/xxx.js而项目部署在一个子路径下比如 http://ip:8082/导致资源请求到了错误位置。解决修改 vue.config.js 里的 publicPath从 / 改成 ./然后重新构建。这是 SPA 部署到子路径时最常见的一个问题很多人半天排查不出来就是因为没有意识到构建资源路径是写死的。6. 二次开发把选题审核改成你自己的业务模块拿到这套源码之后我见过最多的需求是“我不想要选题管理能不能换成实验室预约/社团活动申报/实习任务管理”。答案相当明确可以而且其中大部分改动都不需要动核心的结构因为系统的骨架是标准的“业务实体 状态机 审批流”。我的具体建议是从一个独立小模块开始改。比如说把 project 表改名为 task字段从“题目名称、类别、指导教师”改成“任务名称、任务类型、负责人”再修改 entity 包下的对应实体类、mapper XML 里的字段映射、前端 views 下的列表页面和表单页面。这样的改动通常两三个小时内就能完成。具体到代码层面有几个文件名格式化上的注意点实体类、Mapper 接口、Mapper XML、Service、ServiceImpl 五个文件必须保持名称一致Controller 调用 Service 是通过接口注入的前端 api 目录下的请求函数对应的是后端 Controller 的 RequestMapping 路径这个一旦改错就会出现 404数据库改了字段后mapper XML 里的 resultMap 字段映射要同步改否则 MyBatis 查询出来的对象属性全是 null页面表格能渲染但全是空行。系统的角色权限配置也是一个值得动手的地方。现在系统写死的是学生、教师、管理员三种角色如果你想给教研室主任加一个“批量审核”的权限可以在角色枚举里增加一个角色类型然后在 Router 里给该角色分配独立菜单SecurityConfig 或自定义拦截器里根据角色放行对应接口。这个改造做完相当于把整个权限模块的逻辑从头到尾实战了一遍对毕设答辩讲“我做了权限控制”极有帮助。验证改造是否成功的办法很简单把数据库重新初始化一份改了任务名称的模块走一遍完整的“新增 → 提交 → 审核 → 通过 → 评分”流程看每一步的状态对不对再看权限角色访问控制是否生效。如果每一步都符合预期这个系统就已经真正变成你的东西了。这套项目说到底是一个业务闭环学生从选题到交报告教师从审核到打成绩所有的数据都有迹可循管理员能看全貌这就是它比零散功能堆砌更值钱的地方。拿到源码后我已经习惯在任何改动之前先把数据库脚本重新执行一遍确保基线是干净的这个习惯让我后来改坏任何一个地方都有后悔药可吃——重新导入 SQL 就回到初始状态。希望这套 SSM Vue.js 的组合能为你的毕设省下最宝贵的那几天。本文还有配套的精品资源点击获取

相关新闻

开源代码评审工作流:CLI+LLM Agent+Git Diff 三位一体实践

开源代码评审工作流:CLI+LLM Agent+Git Diff 三位一体实践

1. 项目概述:这不是一个“工具”,而是一套可落地的开源代码评审工作流“open-code-review”这个名字乍看像某个 GitHub 仓库名,但实际它代表的是一种正在快速演进的工程实践范式——把传统依赖人工、会议、PR 留言的代码评审(Code…

2026/10/19 4:15:38 阅读更多 →
硕士论文AI辅助写作全流程:选题、文献、降重、答辩一站式指南

硕士论文AI辅助写作全流程:选题、文献、降重、答辩一站式指南

毕业季又到了,朋友圈里哀嚎一片的都是同一种声音:“论文写不出来”“文献太多看不完”“降重降到怀疑人生”。我去年辅导过一位读研二的师弟,他抱着改了四稿的开题报告来找我,说文献读了两个多月,题目换了不知道多少个…

2026/10/19 4:15:38 阅读更多 →
制造业AI落地复盘(一):为什么大多数项目死在‘第一步‘

制造业AI落地复盘(一):为什么大多数项目死在‘第一步‘

【本文为个人实操经验总结,非商业推广。文中数据来源于多个制造业信息化项目的观察,仅代表个体项目情况。】过去两年,接手过十几家制造企业的AI项目。复盘下来,大部分项目失败的原因惊人地一致——不是技术选错了,而是…

2026/10/19 4:14:37 阅读更多 →

最新新闻

电子秤设计核心:电阻应变式传感器与放大电路信号链解析

电子秤设计核心:电阻应变式传感器与放大电路信号链解析

简介:基于电阻应变式传感器的电子秤设计方案完整文档,面向电子设计、传感器应用及单片机系统学习者,提供量程2kg手提电子秤的电路与原理讲解。文档内容涵盖电子秤总体方案、测量电桥、差动放大电路、A/D转换与显示电路,详细说明电…

2026/10/19 4:52:04 阅读更多 →
信息安全概论复习:密码、认证、访问控制与网络防护全攻略

信息安全概论复习:密码、认证、访问控制与网络防护全攻略

简介:信息安全的核心目标是保障数据的保密性、完整性与可用性,而密码体制、认证机制与访问控制正是实现这些目标的基础技术。从对称密码与公钥密码的密钥分工,到散列函数与数字签名的作用差异,再到PKI与Kerberos的认证流程&#x…

2026/10/19 4:52:04 阅读更多 →
open-code-review:本地化CLI代码审查工具实战指南

open-code-review:本地化CLI代码审查工具实战指南

1. 这不是又一个“AI代码审查工具”,而是开发者自己掌控审查权的CLI入口open-code-review——光看名字,很多人第一反应是“哦,又一个用LLM做代码评审的CLI工具”。但实际用过两周后我意识到,这个项目根本不是在复刻GitHub Copilot…

2026/10/19 4:52:04 阅读更多 →
IAM权限练习题:从四要素到角色继承,彻底搞懂访问控制

IAM权限练习题:从四要素到角色继承,彻底搞懂访问控制

IAM权限--练习题:做完这套题,你对权限的理解会上一个台阶我刚接手一个后台系统权限梳理的时候,碰上过一件挺头疼的事:一个只负责看报表的账号,不知道什么时候被塞进了一个“系统管理员”角色,结果在一次误操…

2026/10/19 4:52:04 阅读更多 →
自适应课程学习优化RAG推理:降低检索成本提升问答准确率

自适应课程学习优化RAG推理:降低检索成本提升问答准确率

先抛一个经常被掩盖的问题:你在评估AI问答系统的时候,会只看最后一道关口的准确率吗?如果把检索次数、无效重试、白白消耗的上下文Token全部摆到台面上,很多模型的排名会立刻重排。尤其是长文档理解、知识库问答、Agent工具调用这…

2026/10/19 4:52:04 阅读更多 →
基于FPGA自研UDP/TCP协议栈:从RGMII到状态机的实战解析

基于FPGA自研UDP/TCP协议栈:从RGMII到状态机的实战解析

写这篇之前,先说个背景。前阵子做一套数据采集板卡,上位机要实时读取FPGA端的数据,带宽需求比串口高了一个量级,第一反应就是上以太网。翻了一圈现成的方案,厂商自带的MAC硬核加协议栈IP核当然省事,但落地时…

2026/10/19 4:51:03 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →