学生成绩管理系统数据流图:从结构化分析到建表落地
简介这份学生成绩管理系统数据流图PDF面向计算机专业学生、软件工程初学者及需要完成课程设计或毕业设计的人群帮助梳理成绩管理系统的逻辑结构与数据处理流程。资源以数据流图为核心覆盖顶层图、0层图与1层图清晰呈现教师信息、学生信息、课程信息、学生成绩记录等实体之间的数据流动关系并细化到教师账户管理、学生信息维护、课程开设、选课、成绩输入与汇总等具体处理过程。包内共1个PDF文件约166KB内容紧凑适合直接用于需求分析、系统设计参考或答辩材料整理。目前已有2249人学习下载说明其在同类课程设计资料中具有较高的参考价值。读者可借助这份图例快速理解分层数据流图的画法与规范对照自身项目查漏补缺提升系统分析与文档撰写效率。1. 学生成绩管理系统数据流图从一张 PDF 到能落地的结构化分析很多同学做课程设计拿到“学生成绩管理系统”这个题目第一反应是打开 Visio 或者 draw.io 直接开画结果画到一半发现数据流对不上外部实体和数据存储混在一起被老师一句“你这上下文图都没分解”打回来重做。问题不在画图工具而在于没有先用结构化分析方法把系统边界和数据流向理清楚。数据流图DFD就是干这个的——它不关心你用什么语言写代码、用什么数据库建表只关心数据从哪来、经过什么加工、存到哪里、最后输出给谁。学生成绩管理系统这个场景特别适合练手因为它有明确的外部实体学生、教师、教务管理员、清晰的数据存储成绩表、课程表、学生信息表和可拆解的加工过程录入、查询、修改、统计。这篇文章面向正在做课程设计、毕业设计或者刚接触结构化分析的同学从零开始把一张能交差、也能指导后续建库建表的 DFD 画出来包括上下文图怎么分解、查询修改类加工怎么表达、以及那些一画就翻车的坑。2. 先搞清楚 DFD 的四种元素和成绩管理系统的映射关系2.1 数据流图到底有哪几个符号分别对应成绩管理里的什么数据流图只有四种基本元素外部实体、加工、数据存储、数据流。听起来简单但放到学生成绩管理系统里新手最容易把“学生”同时当成外部实体和数据存储。外部实体是系统边界之外的人或组织比如学生、教师、教务管理员他们向系统输入数据或接收系统输出。加工是系统内部对数据做的处理比如“录入成绩”“查询成绩”“统计班级平均分”。数据存储是系统内部持久保存数据的地方比如“学生信息表”“课程信息表”“成绩表”。数据流则是带箭头的线表示数据在实体、加工、存储之间的流动方向。这里有一个关键判断学生查成绩学生是外部实体成绩表是数据存储“查询成绩”是加工数据从成绩表流向加工再流向学生。但如果你把“学生信息”也画成一个加工那就错了——学生信息是数据存储不是加工。加工一定是一个动作名字通常是“动词名词”的结构比如“录入成绩”“修改成绩”“生成成绩单”。数据存储的名字则是名词比如“成绩表”“学生表”。注意外部实体和加工之间不能直接连数据流中间必须经过加工。很多同学画上下文图时把“学生”直接连到“成绩表”这是典型错误因为数据存储属于系统内部外部实体不能直接访问。2.2 为什么成绩管理系统适合用 DFD 而不是 ER 图或流程图ER 图描述的是数据之间的关系流程图描述的是操作步骤的先后顺序而 DFD 描述的是数据在系统中的流动和变换。学生成绩管理系统的核心需求是学生提交查分请求系统从成绩表读取数据返回教师提交成绩录入请求系统写入成绩表教务管理员请求统计报表系统从多个表聚合数据输出。这些需求本质上是数据流动问题不是表结构问题也不是操作顺序问题。用 DFD 可以把“谁给系统什么数据、系统给谁什么数据、中间经过哪些加工和存储”表达清楚后续建数据库时直接照着数据存储建表照着数据流写接口。我一般会建议先画 DFD 再画 ER 图因为 DFD 帮你确定系统边界和功能模块ER 图帮你确定表结构。反过来做的话容易陷入字段细节忘了系统到底要处理哪些数据流。学生成绩管理系统这个题目DFD 至少能帮你理出三条主数据流成绩录入流、成绩查询流、成绩统计流。每条流经过的加工和数据存储不同后续写代码时就是三个模块。2.3 画之前先做数据字典否则后面必翻车数据字典是 DFD 的配套文档用来定义每个数据流和数据存储的具体组成。比如“成绩信息”这个数据流到底包含哪些字段学号、课程号、平时成绩、期末成绩、总评成绩、绩点如果不提前定义画到第二层分解时就会发现同一个数据流在不同加工里含义不一致。我见过一个血泪案例第一层图里“成绩信息”只写了分数第二层分解时突然冒出“绩点”导致数据流对不上整张图重画。数据字典的写法很简单用表格列出名称、别名、组成、来源、去向。比如名称组成来源去向成绩录入请求学号课程号平时成绩期末成绩教师录入成绩加工成绩查询请求学号课程号学生查询成绩加工成绩信息学号课程号总评成绩绩点成绩表查询成绩加工这张表不用交上去但画图时必须心里有数。没有数据字典的 DFD 就是一张好看的废纸后续没法指导开发。3. 从上下文图到第一层分解把成绩管理系统拆成四个加工3.1 上下文数据流图怎么画一个加工框定系统边界上下文数据流图也叫顶层图整个系统只用一个加工表示名字就是“学生成绩管理系统”。外部实体有三个学生、教师、教务管理员。数据流从外部实体流入系统再从系统流出到外部实体。学生向系统发送“成绩查询请求”系统返回“成绩信息”教师向系统发送“成绩录入请求”和“成绩修改请求”系统返回“操作结果”教务管理员向系统发送“统计请求”系统返回“统计报表”。画上下文图时最容易犯的错是画太多加工。有人把“登录验证”也画成一个加工放在顶层这就破坏了上下文图的定义——顶层图只能有一个加工。登录验证属于系统内部细节应该放到第二层。另一个错误是数据流方向画反比如把“成绩信息”从学生指向系统那成了学生给系统成绩逻辑就错了。提示上下文图的数据流命名要用业务语言不要用技术语言。写“成绩查询请求”而不是“SELECT 请求”写“成绩信息”而不是“结果集”。3.2 第一层分解把系统拆成录入、查询、修改、统计四个加工第一层分解是把顶层那个唯一的加工拆成几个主要加工。学生成绩管理系统通常拆成四个录入成绩、查询成绩、修改成绩、统计成绩。每个加工再和外部实体、数据存储连接。录入成绩加工接收教师的“成绩录入请求”写入“成绩表”同时可能需要读取“学生表”和“课程表”来验证学号和课程号是否存在。查询成绩加工接收学生的“成绩查询请求”从“成绩表”读取数据返回“成绩信息”。修改成绩加工接收教师的“成绩修改请求”更新“成绩表”。统计成绩加工接收教务管理员的“统计请求”从“成绩表”和“课程表”聚合数据返回“统计报表”。这里有一个选型问题查询和修改要不要合并成一个加工我一般不建议合并因为查询是只读操作修改是写操作数据流方向不同合并后数据流会变得混乱。分开画虽然图大一点但逻辑清晰后续做权限控制时也方便——学生只能查询教师可以录入和修改教务管理员可以统计。3.3 用 draw.io 画第一层图的实操步骤和参数设置打开 draw.io新建空白图左侧图形库选“软件”分类找到数据流图符号。外部实体用矩形加工用圆角矩形数据存储用开口矩形数据流用带箭头的线。具体操作第一步拖入一个圆角矩形放在中间命名为“学生成绩管理系统”这是上下文图。第二步在四周放三个矩形分别命名“学生”“教师”“教务管理员”。第三步用箭头连接学生→系统标注“成绩查询请求”系统→学生标注“成绩信息”教师→系统标注“成绩录入请求”和“成绩修改请求”系统→教师标注“操作结果”教务管理员→系统标注“统计请求”系统→教务管理员标注“统计报表”。第一层分解时把中间的圆角矩形替换成四个圆角矩形分别命名“录入成绩”“查询成绩”“修改成绩”“统计成绩”。然后在下方放三个开口矩形命名“学生表”“课程表”“成绩表”。连接规则教师→录入成绩→成绩表教师→修改成绩→成绩表学生→查询成绩→成绩表教务管理员→统计成绩→成绩表录入成绩和修改成绩需要读取学生表和课程表来验证所以从学生表和课程表画箭头到这两个加工。参数设置上draw.io 的箭头默认是直线建议改成正交连线这样图看起来更整洁。字体用 12 号加工名和数据流名不要太大否则图会很挤。导出时选 PNG 格式分辨率设为 300 DPI这样打印出来也清晰。4. 第二层分解和查询修改数据流的画法让 DFD 能指导建表4.1 查询成绩加工怎么分解成验证、读取、返回三步第二层分解是把第一层里的某个加工再拆细。以“查询成绩”为例可以拆成三个子加工验证学生身份、读取成绩记录、格式化返回结果。数据流是学生→验证身份→读取成绩记录→格式化返回→学生。验证身份需要读取“学生表”读取成绩记录需要访问“成绩表”。这里有一个常见争议验证身份要不要单独画成一个加工如果系统有登录功能验证身份是必要的如果只是课程设计可以简化成“查询成绩”一个加工。我的建议是画出来因为这样能体现数据流的分层老师一看就知道你懂结构化分析。但不要拆得太细比如把“验证学号格式”也画成一个加工那就过度分解了。一般第二层分解到 3 到 5 个子加工就够了。4.2 修改成绩的数据流怎么画才不会丢数据修改成绩比查询复杂因为它涉及读取旧成绩、更新新成绩、可能还要记录修改日志。第二层分解可以拆成验证教师权限、读取原成绩、更新成绩、记录修改日志。数据流是教师→验证权限→读取原成绩→更新成绩→记录日志→教师。读取原成绩需要访问“成绩表”更新成绩需要写入“成绩表”记录日志需要写入“修改日志表”。很多同学画修改成绩时只画一条“修改请求”进去、“操作结果”出来中间没有读取原成绩的步骤。这样画逻辑上没错但丢失了“修改前需要先查到原记录”这个关键数据流。后续写代码时就会发现不先查再改直接 UPDATE 可能会更新不存在的记录。所以 DFD 里把“读取原成绩”画出来能提醒你写代码时先 SELECT 再 UPDATE。注意修改成绩加工如果涉及权限验证验证数据流要从“教师表”或“权限表”读取不要凭空产生权限数据。4.3 用 Python 脚本自动检查 DFD 数据流一致性手工画图容易漏数据流我一般会用一个简单的 Python 脚本做一致性检查。思路是把 DFD 的节点和边定义成字典然后检查每个加工的输入输出是否平衡。比如“录入成绩”加工输入是“成绩录入请求”输出是“操作结果”同时写入“成绩表”那么输入数据流和输出数据流加上存储写入应该能对应上。# dfd_checker.py # 定义 DFD 节点加工、外部实体、数据存储 nodes { 教师: external, 学生: external, 教务管理员: external, 录入成绩: process, 查询成绩: process, 修改成绩: process, 统计成绩: process, 成绩表: store, 学生表: store, 课程表: store } # 定义数据流起点、终点、数据流名称 flows [ (教师, 录入成绩, 成绩录入请求), (录入成绩, 成绩表, 成绩记录), (录入成绩, 教师, 操作结果), (学生, 查询成绩, 成绩查询请求), (查询成绩, 成绩表, 读取成绩), (查询成绩, 学生, 成绩信息), (教师, 修改成绩, 成绩修改请求), (修改成绩, 成绩表, 更新成绩), (修改成绩, 教师, 操作结果), (教务管理员, 统计成绩, 统计请求), (统计成绩, 成绩表, 读取成绩), (统计成绩, 教务管理员, 统计报表), ] # 检查每个加工是否有输入和输出 processes [n for n, t in nodes.items() if t process] for p in processes: inputs [f for f in flows if f[1] p] outputs [f for f in flows if f[0] p] if not inputs: print(f警告加工 [{p}] 没有输入数据流) if not outputs: print(f警告加工 [{p}] 没有输出数据流) print(f加工 [{p}] 输入 {len(inputs)} 条输出 {len(outputs)} 条) # 检查外部实体是否直接连数据存储 for f in flows: src_type nodes.get(f[0]) dst_type nodes.get(f[1]) if src_type external and dst_type store: print(f错误外部实体 [{f[0]}] 直接连接数据存储 [{f[1]}]) if src_type store and dst_type external: print(f错误数据存储 [{f[0]}] 直接连接外部实体 [{f[1]}])这段脚本的逻辑说明先定义节点类型再定义所有数据流然后遍历每个加工检查输入输出数量最后检查外部实体和数据存储之间是否有直接连接。参数方面nodes字典的键是节点名值是类型external/process/storeflows列表的每个元素是三元组起点、终点、数据流名。运行后如果输出“警告”或“错误”就说明 DFD 有问题需要修改。这个脚本不能替代人工检查但能快速发现明显的遗漏。5. 避坑学生成绩管理系统 DFD 画完后被退回的五个常见原因5.1 现象上下文图里出现了多个加工框原因把“登录”“验证”等内部功能画到了顶层图。上下文图的定义是整个系统用一个加工表示任何内部功能都不能出现在顶层。解决顶层只保留一个加工命名“学生成绩管理系统”所有内部功能放到第一层或第二层分解。5.2 现象数据流没有名字或者名字是“数据”“信息”这种泛称原因画图时偷懒觉得箭头连上就行。但 DFD 的核心价值就是表达数据流动的内容没有名字的数据流等于没有画。解决每条数据流都要用业务名词命名比如“成绩查询请求”“成绩信息”“统计报表”不要用“数据”“信息”“请求”这种无法区分内容的词。5.3 现象外部实体直接连数据存储原因不理解系统边界的概念觉得学生查成绩就是直接查表。但数据存储是系统内部的东西外部实体只能通过加工间接访问。解决在外部实体和数据存储之间加一个加工比如“学生”和“成绩表”之间加“查询成绩”加工。5.4 现象第二层分解后子加工的输入输出和父加工对不上原因分解时没有保持数据流平衡。父加工有一个输入“成绩录入请求”分解后子加工可能多出一个“验证请求”输入但父加工没有对应。解决分解前先列出父加工的所有输入输出数据流分解后确保子加工的边界数据流和父加工一致内部可以增加数据流但跨越边界的数据流必须匹配。5.5 现象数据存储只画了“成绩表”漏了“学生表”和“课程表”原因只关注成绩数据忘了成绩需要关联学生和课程。录入成绩时如果不验证学号和课程号就会产生脏数据。解决把学生表、课程表、成绩表都画出来录入和修改加工需要从学生表和课程表读取验证数据。6. 用 DFD 直接生成建表语句和接口清单的进阶技巧画完 DFD 不是终点而是起点。我一般会从 DFD 的数据存储直接推导建表语句从数据流推导接口清单。比如“成绩表”这个数据存储根据数据字典里的组成字段可以直接写出 SQL-- 根据 DFD 数据存储“成绩表”推导 CREATE TABLE score ( student_id VARCHAR(20) NOT NULL COMMENT 学号, course_id VARCHAR(20) NOT NULL COMMENT 课程号, regular_score DECIMAL(5,2) COMMENT 平时成绩, final_score DECIMAL(5,2) COMMENT 期末成绩, total_score DECIMAL(5,2) COMMENT 总评成绩, gpa DECIMAL(3,2) COMMENT 绩点, update_time DATETIME COMMENT 修改时间, PRIMARY KEY (student_id, course_id) ) COMMENT 成绩表;这段 SQL 的字段直接来自数据字典里“成绩信息”的组成。参数说明student_id和course_id联合主键因为一个学生一门课只有一条成绩记录regular_score和final_score用 DECIMAL(5,2) 保留两位小数gpa用 DECIMAL(3,2) 因为绩点通常不超过 5.00。如果 DFD 里还有“修改日志表”就再加一张日志表字段包括修改人、修改时间、原成绩、新成绩。接口清单也一样每条从外部实体到加工的数据流对应一个 API。比如“学生→查询成绩→成绩信息”对应GET /api/score?student_idxxxcourse_idxxx“教师→录入成绩→操作结果”对应POST /api/score。这样 DFD 就不只是交作业的图而是能直接指导开发的文档。我自己的习惯是DFD 画完后把每个数据存储当成一张表把每条跨边界数据流当成一个接口把每个加工当成一个函数。这样从分析到设计到编码是一条线下来的不会出现“图画完了但不知道怎么建库”的尴尬。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

IBVS视觉伺服实战:ViSP库实现图像误差驱动控制

IBVS视觉伺服实战:ViSP库实现图像误差驱动控制

简介:基于开源Visp库构建的视觉伺服演示工程,聚焦机器人视觉控制中常见的基于图像视觉伺服(IBVS)问题,面向具有一定C基础、对机器人伺服控制感兴趣的开发者与学习者。工程实现了基础IBVS仿真,并引入自适应增…

2026/10/14 10:49:57 阅读更多 →
系统集成项目管理实战:从需求到交付的关键要素

系统集成项目管理实战:从需求到交付的关键要素

1. 系统集成项目管理概述系统集成项目管理是信息技术领域中的一项关键实践,它涉及将不同的硬件、软件、网络组件和业务流程整合为一个协同工作的系统。作为一名从业十余年的系统集成项目经理,我深刻体会到这类项目的复杂性和挑战性。不同于单一产品或服务…

2026/10/14 10:49:57 阅读更多 →
2026年重庆脑科专家评选与诊疗技术前瞻

2026年重庆脑科专家评选与诊疗技术前瞻

1. 项目概述作为一名长期关注医疗行业发展的从业者,我注意到近年来神经科学领域发展迅猛,特别是在脑科疾病诊疗方面。重庆作为西南地区医疗资源集中的城市,拥有不少优秀的脑科专家。今天我将从专业角度,为大家分析2026年重庆脑科领…

2026/10/14 10:49:57 阅读更多 →

最新新闻

工业机器人坐标系全解析:从原理到标定实操

工业机器人坐标系全解析:从原理到标定实操

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

2026/10/15 1:36:03 阅读更多 →
Bugzilla部署报错couldn‘t create child process: 720002: index.cgi排查指南

Bugzilla部署报错couldn‘t create child process: 720002: index.cgi排查指南

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

2026/10/15 1:36:03 阅读更多 →
Matplotlib图例完全指南:legend()参数、位置与样式全解析

Matplotlib图例完全指南:legend()参数、位置与样式全解析

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

2026/10/15 1:36:03 阅读更多 →
单片机C运行时libspace:启动流程、多任务栈与中断安全实战

单片机C运行时libspace:启动流程、多任务栈与中断安全实战

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

2026/10/15 1:36:03 阅读更多 →
Spring BeanDefinitionRegistryPostProcessor底层注册机制详解

Spring BeanDefinitionRegistryPostProcessor底层注册机制详解

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

2026/10/15 1:36:03 阅读更多 →
CS5211单芯片eDP转LVDS方案:工业显示兼容性落地实践

CS5211单芯片eDP转LVDS方案:工业显示兼容性落地实践

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

2026/10/15 1:35:03 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →