数据库课程设计学生成绩管理系统:从建表到并发,一个能扛住答辩追问的落地方案
简介这份数据库课程设计资料面向高校计算机相关专业学生围绕学生成绩管理系统这一经典课题提供从需求分析到逻辑结构设计的完整设计文档适合正在准备课程设计、数据库原理实践或毕业设计开题的学习者参考。压缩包内共1个doc文件约1.03MB内容以课程设计报告形式组织涵盖背景分析、教师与学生需求梳理、管理员/学生/班级/课程/成绩等实体的E-R图设计以及admin、student、kcb、score等数据表的字段与类型说明并配有数据表截图便于对照理解概念模型到关系模型的转换过程。该资料已有1135人学习下载读者可借此掌握E-R建模、表结构设计与MySQL落地思路快速搭建符合课程要求的成绩管理系统方案也可作为撰写设计报告时的结构参考与排错依据。1. 数据库课程设计学生成绩管理系统从建表到并发一个能扛住答辩追问的落地方案每年期末数据库课程设计的学生成绩管理系统都是被选得最多的题目之一也是翻车率最高的题目之一。原因不复杂大部分人把它做成了“能跑就行”的 CRUD 演示表结构拍脑袋定外键不建事务不写最后答辩时老师一句“两个人同时改同一个学生的成绩会怎样”就直接问穿。我见过太多版本功能列表写得漂亮打开一看成绩表里存着学生姓名和课程名称连第一范式都没过。这篇笔记面向两类人正在做数据库课程设计、需要一套能讲清楚设计理由的学生成绩管理系统方案的人以及已经写完了增删改查、但想让系统在并发、约束、查询效率上真正立得住的人。我会按“表怎么设计 → 数据怎么进去 → 查询和事务怎么写 → 并发和死锁怎么防 → 怎么验证和答辩”这条线走每一步都给可复现的 SQL 和参数说明。数据库选 MySQL 8.x这是课程设计里最常见也最容易查资料的选择其他关系型数据库思路一致语法微调即可。2. 表结构设计成绩管理系统为什么不能把学生姓名塞进成绩表2.1 从用例图到实体关系先想清楚有哪几张表学生成绩管理系统的用例图通常长这样管理员管学生、管课程、管教师教师录成绩、改成绩学生查成绩。用例图只是入口真正落地要把它翻译成实体。核心实体有五个学生student、教师teacher、课程course、选课/成绩score、班级class。其中“选课”和“成绩”在课程设计里通常合并成一张 score 表因为一个学生选一门课就产生一条成绩记录这是典型的多对多关系拆解。这里有个高频错误把学生姓名、课程名称直接冗余进 score 表。这样做查询确实少一次 JOIN但代价是学生改了名字要更新所有成绩记录课程改名同理而且一旦漏更新就出现数据不一致。正确做法是 score 表只存 student_id、course_id、score、学期、录入时间这些真正属于“这条选课记录”的字段姓名和课程名通过外键关联查出来。这就是第二范式的要求非主键字段必须完全依赖主键。选课关系还要考虑一个现实约束同一个学生同一门课同一学期只能有一条成绩记录。这个约束不能靠代码里“先查再插”来保证因为并发下两个请求可能同时查到“不存在”然后都插入。正确做法是在表上建唯一索引让数据库来兜底。2.2 建表 SQL主键、外键、唯一约束一次到位下面这套建表语句是我在课程设计里反复用过的版本字段类型和约束都经过推敲可以直接抄。-- 学生表学号做主键不用自增 id因为学号本身唯一且业务含义明确 CREATE TABLE student ( student_no VARCHAR(20) NOT NULL COMMENT 学号主键, name VARCHAR(50) NOT NULL COMMENT 姓名, gender CHAR(1) DEFAULT M COMMENT 性别 M/F, class_id INT NOT NULL COMMENT 所属班级, enroll_year YEAR NOT NULL COMMENT 入学年份, PRIMARY KEY (student_no), KEY idx_class (class_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT学生表; -- 课程表课程号做主键学分用 DECIMAL 避免浮点误差 CREATE TABLE course ( course_no VARCHAR(20) NOT NULL COMMENT 课程号, course_name VARCHAR(100) NOT NULL COMMENT 课程名, credit DECIMAL(3,1) NOT NULL DEFAULT 2.0 COMMENT 学分, teacher_id VARCHAR(20) NOT NULL COMMENT 授课教师, PRIMARY KEY (course_no), KEY idx_teacher (teacher_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT课程表; -- 成绩表联合主键 唯一约束防止重复录入 CREATE TABLE score ( student_no VARCHAR(20) NOT NULL COMMENT 学号, course_no VARCHAR(20) NOT NULL COMMENT 课程号, term VARCHAR(20) NOT NULL COMMENT 学期如 2024-2025-1, score DECIMAL(5,2) DEFAULT NULL COMMENT 成绩NULL 表示未录入, input_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 录入时间, PRIMARY KEY (student_no, course_no, term), KEY idx_course (course_no), CONSTRAINT fk_score_student FOREIGN KEY (student_no) REFERENCES student(student_no), CONSTRAINT fk_score_course FOREIGN KEY (course_no) REFERENCES course(course_no) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT成绩表;逻辑说明student 和 course 的主键都用业务编号而不是自增 id好处是成绩表里存的就是学号课程号查询和调试时一眼能看懂不用来回映射。score 表用 (student_no, course_no, term) 做联合主键天然保证了“同一学生同一课程同一学期只有一条记录”不需要额外建唯一索引。外键约束保证不会出现成绩表里引用了一个不存在的学生。参数说明score 字段用 DECIMAL(5,2) 而不是 FLOAT因为成绩要精确到小数点后一位或两位浮点数会出现 89.99999 这种玄学问题。score 允许 NULL表示这门课选了但还没出成绩这和“考了 0 分”是两回事查询统计时要区分。term 字段用字符串存学期格式统一成“学年-学期”方便按学期筛选。提示如果课程设计要求支持“同一门课多个学期重复修读”联合主键里的 term 就是必须的如果不支持可以去掉 term主键变成 (student_no, course_no)。2.3 索引怎么加别等查询慢了才想起来课程设计的数据量通常不大但答辩时老师会问“如果有一万条成绩记录按课程查成绩慢不慢”。这时候你要能说出索引加在哪、为什么。上面建表时已经加了几个关键索引student 表的 class_id、course 表的 teacher_id、score 表的 course_no。这些是外键列InnoDB 不会自动为外键建索引但 JOIN 和按外键筛选时又经常用到所以手动加上。还有一个高频查询是“查某个学生所有课程的成绩”这个走的是 score 表联合主键的最左前缀 student_no已经覆盖了不用额外加。如果经常按成绩范围筛选比如查不及格的学生可以考虑在 score 字段上加索引但成绩区分度不高加之前先用 EXPLAIN 看看实际执行计划别盲目加。3. 数据导入与增删改查从 Excel 到数据库的完整链路3.1 用 LOAD DATA 批量导入学生名单课程设计里学生名单通常是老师给的 Excel手动一条条 INSERT 不现实。常见做法是先把 Excel 另存为 CSV再用 MySQL 的 LOAD DATA 导入。这一步的坑集中在编码和字段分隔上。-- 先把 Excel 另存为 UTF-8 编码的 CSV字段用逗号分隔 -- 然后在 MySQL 客户端执行 LOAD DATA LOCAL INFILE /path/to/students.csv INTO TABLE student CHARACTER SET utf8mb4 FIELDS TERMINATED BY , OPTIONALLY ENCLOSED BY LINES TERMINATED BY \n IGNORE 1 LINES (student_no, name, gender, class_id, enroll_year);逻辑说明IGNORE 1 LINES 跳过 CSV 的表头行。OPTIONALLY ENCLOSED BY 处理字段里可能带逗号的情况比如姓名里不会有但地址类字段会有。CHARACTER SET utf8mb4 必须显式指定否则中文姓名可能变成乱码。参数说明LOCAL 关键字表示从客户端读文件如果报 “The MySQL server is running with the --secure-file-priv option” 错误说明服务端限制了文件路径要么把 CSV 放到 secure_file_priv 指定的目录要么在客户端加 --local-infile1 参数。导入前先用 SELECT COUNT(*) 确认表是空的避免重复导入。3.2 成绩录入的 INSERT 与冲突处理成绩录入是教师端最常用的操作。基础写法是 INSERT但实际场景里经常是“录入了要能改”所以更稳妥的是 INSERT ... ON DUPLICATE KEY UPDATE一条语句搞定新增和更新。-- 录入或更新成绩存在则更新分数和录入时间不存在则插入 INSERT INTO score (student_no, course_no, term, score, input_time) VALUES (2024001, CS101, 2024-2025-1, 87.5, NOW()) ON DUPLICATE KEY UPDATE score VALUES(score), input_time VALUES(input_time);逻辑说明ON DUPLICATE KEY UPDATE 依赖主键或唯一索引判断冲突。这里 (student_no, course_no, term) 是主键所以同一学生同一课程同一学期重复执行这条语句时走的是 UPDATE 分支。VALUES(score) 取的是 INSERT 部分提供的值MySQL 8.0.20 之后推荐用别名写法但课程设计里用 VALUES() 兼容性更好。参数说明input_time 用 NOW() 取服务器当前时间保证多条记录时间一致。如果要求记录“最后修改时间”这个字段就够了如果要留修改历史得单独建一张 score_log 表那是进阶需求课程设计里看要求决定。3.3 查询把多表 JOIN 写对别在 WHERE 里藏坑成绩查询是答辩演示的重头戏。最常见的需求是“查某个学生所有课程的成绩显示课程名和学分”这需要三表 JOIN。-- 查询指定学生的成绩单按学期和课程号排序 SELECT s.student_no, st.name AS student_name, c.course_name, c.credit, s.term, s.score FROM score s JOIN student st ON s.student_no st.student_no JOIN course c ON s.course_no c.course_no WHERE s.student_no 2024001 ORDER BY s.term DESC, s.course_no;逻辑说明用 JOIN 而不是逗号连接语义更清晰也不容易漏写关联条件导致笛卡尔积。WHERE 条件放在 JOIN 之后筛选的是最终结果集。如果只想查某个学期的再加一个 AND s.term 2024-2025-1。参数说明ORDER BY 用 term DESC 让最近的学期排前面符合查看习惯。如果数据量大student_no 上有主键索引这个查询走索引很快。注意 score 为 NULL 的记录也会被查出来如果只想看已出成绩的加 AND s.score IS NOT NULL。4. 事务与并发两个人同时改成绩会发生什么4.1 为什么成绩录入必须包在事务里单条 INSERT 或 UPDATE 本身是原子的但成绩管理里有些操作是多步的。比如“删除一个学生同时删除他的所有成绩记录”这是两条 DELETE必须在一个事务里否则删了学生没删成绩或者反过来都会留下脏数据。再比如“批量导入一个班的成绩”要么全成功要么全失败不能导入一半。-- 删除学生及其成绩必须在一个事务里 START TRANSACTION; DELETE FROM score WHERE student_no 2024001; DELETE FROM student WHERE student_no 2024001; COMMIT;逻辑说明START TRANSACTION 开启事务两条 DELETE 要么都生效要么在出错时 ROLLBACK 全部撤销。注意外键约束的顺序先删子表 score再删父表 student反过来会因为外键约束报错。参数说明InnoDB 默认 autocommit1每条语句自动提交所以显式事务必须用 START TRANSACTION 开启。如果中途出错客户端断开连接时未提交的事务会自动回滚这是 InnoDB 的默认行为不用手动处理。4.2 并发更新同一行行锁与丢失更新答辩高频问题“两个老师同时给同一个学生的同一门课打分一个打 80一个打 90最后数据库里是多少”如果不做任何处理两个事务都执行 UPDATE后提交的会覆盖先提交的这就是丢失更新。InnoDB 在 UPDATE 时会自动加行锁第二个事务会等第一个提交后再执行所以最终结果是后执行的那个值不会出现“80 和 90 混合”的脏数据但先提交的修改确实被覆盖了。要避免覆盖有两种常见做法。一是乐观锁在 score 表加一个 version 字段更新时带上版本号。-- 乐观锁更新只有版本号匹配才更新影响行数为 0 说明被别人改过 UPDATE score SET score 90, version version 1 WHERE student_no 2024001 AND course_no CS101 AND term 2024-2025-1 AND version 3;逻辑说明执行后检查 affected rows如果是 0说明这条记录在你读取之后被别人改过版本号对不上应用层应该提示“成绩已被他人修改请刷新后重试”。这是课程设计里能讲清楚乐观锁的最小实现。参数说明version 字段建表时加 INT DEFAULT 0每次更新 1。读取时要把 version 一起查出来传给前端更新时带回来。这个方案不需要数据库锁等待适合读多写少的场景。4.3 死锁两个事务互相等对方释放锁死锁在课程设计里不常遇到但一旦遇到就是黑匣子。典型场景事务 A 先更新学生 1 的成绩再更新学生 2 的事务 B 反过来先更新学生 2 再更新学生 1。两个事务各持有一把锁又都在等对方的锁InnoDB 检测到后会自动回滚其中一个报 “Deadlock found when trying to get lock”。避免死锁的实用做法是统一加锁顺序。比如批量更新成绩时按 student_no 排序后再依次更新这样所有事务的加锁顺序一致就不会形成环。-- 批量更新前先按学号排序保证加锁顺序一致 SELECT student_no FROM score WHERE course_no CS101 AND term 2024-2025-1 ORDER BY student_no FOR UPDATE;逻辑说明FOR UPDATE 对查出的行加排他锁因为按 student_no 排序所有并发事务拿锁的顺序相同不会出现 A 等 B、B 等 A 的情况。这是用“有序加锁”换“无死锁”的经典思路。参数说明FOR UPDATE 必须在事务里用autocommit 下加锁会立即释放。锁的粒度是行锁但如果没有走索引可能升级成表锁所以 WHERE 条件里的字段最好有索引。5. 避坑与排查课程设计里最容易翻车的五个点5.1 中文乱码从建库到连接的全链路检查现象插入的中文姓名查出来是问号或乱码。原因通常出在三个地方之一数据库字符集不是 utf8mb4、表字符集不是 utf8mb4、连接字符集不是 utf8mb4。解决建库时指定 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci建表时同样指定连接串里加 characterEncodingutf8。三处都对了才不会乱码。注意 utf8 在 MySQL 里是 utf8mb3存不了 emoji 和部分生僻字统一用 utf8mb4。5.2 外键约束导致删不掉数据现象删除学生时报 “Cannot delete or update a parent row: a foreign key constraint fails”。原因score 表里有这个学生的成绩记录外键挡住了删除。解决要么先删成绩再删学生放在一个事务里要么建外键时加 ON DELETE CASCADE 让数据库自动级联删除。课程设计里我一般建议显式删除因为级联删除太隐蔽容易误删数据。5.3 唯一约束冲突重复录入成绩现象插入成绩时报 “Duplicate entry 2024001-CS101-2024-2025-1 for key PRIMARY”。原因这个学生这门课这个学期已经有成绩记录了。解决如果业务允许覆盖用 ON DUPLICATE KEY UPDATE如果不允许捕获异常提示用户“该成绩已存在”。不要用“先 SELECT 再 INSERT”的方式并发下不可靠。5.4 事务没提交导致锁等待超时现象某个更新操作一直卡住最后报 “Lock wait timeout exceeded”。原因另一个事务持有行锁没提交可能是调试时开了事务忘了 COMMIT。解决用 SHOW PROCESSLIST 找到卡住的连接或者查 information_schema.INNODB_TRX 看未提交的事务必要时 KILL 掉。养成习惯事务里操作完立即 COMMIT 或 ROLLBACK别让事务悬着。5.5 分页查询越翻越慢现象成绩列表翻到后面几页明显变慢。原因LIMIT offset, size 在 offset 很大时要扫描并丢弃前面所有行。解决课程设计数据量小这个问题不明显但如果要讲清楚可以用“记住上一页最后一条的主键下一页从它之后取”的方式优化即 WHERE student_no 上一页最后学号 LIMIT 20。这是答辩加分项能体现你理解分页的代价。6. 用 EXPLAIN 和慢查询日志验证你的设计6.1 用 EXPLAIN 看查询到底走没走索引写完查询别急着交用 EXPLAIN 看一眼执行计划。重点看 type 列ALL 是全表扫描ref 或 range 是走索引eq_ref 是 JOIN 时用主键或唯一索引性能最好。key 列显示实际用了哪个索引rows 列是预估扫描行数。EXPLAIN SELECT s.student_no, c.course_name, s.score FROM score s JOIN course c ON s.course_no c.course_no WHERE s.student_no 2024001;如果 type 出现 ALL说明没走索引检查 WHERE 和 JOIN 的字段上有没有索引。如果 key 是 NULL就是没用到任何索引这是最需要改的情况。课程设计里把几个核心查询的 EXPLAIN 结果截图放进报告比写一堆文字都有说服力。6.2 开启慢查询日志找出拖后腿的语句MySQL 默认不记录慢查询需要手动开。在配置文件里加两行或者在会话里临时开。-- 会话级开启慢查询日志超过 1 秒的记录 SET GLOBAL slow_query_log ON; SET GLOBAL long_query_time 1; SET GLOBAL slow_query_log_file /var/log/mysql/slow.log;逻辑说明long_query_time 设成 1 秒课程设计的数据量下基本不会有慢查询但可以设成 0.1 秒来观察哪些查询相对慢。日志文件路径要有写权限否则开启失败。参数说明这个设置是 GLOBAL 级的重启后失效要永久生效得写进 my.cnf。课程设计演示时临时开一下跑几个查询然后去日志里看有没有记录能讲清楚“我怎么发现并优化慢查询”就够了。6.3 一个我踩过的坑别在循环里查数据库最后说个血泪经验。我早期写成绩统计时为了算每个学生的平均分写了个循环先查出所有学生然后 for 循环里对每个学生执行一次 AVG 查询。学生少的时候没感觉数据一多直接几百次查询页面加载好几秒。正确做法是一条 SQL 用 GROUP BY 搞定。-- 一次查询算出每个学生的平均分和总学分 SELECT s.student_no, st.name, ROUND(AVG(s.score), 2) AS avg_score, SUM(c.credit) AS total_credit FROM score s JOIN student st ON s.student_no st.student_no JOIN course c ON s.course_no c.course_no WHERE s.score IS NOT NULL GROUP BY s.student_no, st.name;逻辑说明GROUP BY 按学生分组AVG 和 SUM 是聚合函数一次查询返回所有学生的统计结果。WHERE 过滤掉没出成绩的记录避免 NULL 影响平均值。这个查询在答辩时演示老师一看就知道你懂聚合不是只会单表 CRUD。参数说明ROUND 保留两位小数SUM(c.credit) 算总学分时要注意如果同一门课重修了多次学分会被重复累加这时候得用 DISTINCT 或者子查询去重。课程设计里如果没重修场景直接 SUM 就行。这套方案从建表到并发到验证走了一遍核心就一句话让数据库做它该做的事约束交给约束事务交给事务别在应用层用代码去补数据库该管的漏洞。我现在的习惯是每建一张表先问自己三个问题主键是什么、哪些字段必须唯一、删父表数据时子表怎么办。这三个问题答清楚了后面写查询和事务基本不会翻车。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

UE5引擎与反作弊系统冲突的底层原理与实战解决方案

UE5引擎与反作弊系统冲突的底层原理与实战解决方案

1. 项目概述:这不是游戏故障,而是UE5引擎与反作弊系统在特定硬件环境下的协同失焦“黎明杀机x尼尔”这个组合本身并不存在官方联动——它实际指向的是某款基于Unreal Engine 5(UE5)构建的第三方模组化生存恐怖游戏Demo&#xff0c…

2026/10/13 23:51:38 阅读更多 →
Python itertools 实战:用迭代器管道高效处理大数据

Python itertools 实战:用迭代器管道高效处理大数据

在 Python 标准库里,itertools 是那种“看见的人少,真用起来惊艳”的模块。它不给数据提供容器,而是把数据当成水管里的水流,用一系列迭代器工具帮你控流量、做分流、任意裁剪。很多写过大数据量处理脚本的人,最后都会…

2026/10/13 23:51:38 阅读更多 →
PS5模拟器在PC上跑游戏:原理拆解与实操避坑指南

PS5模拟器在PC上跑游戏:原理拆解与实操避坑指南

前几天刷开源社区的时候,我注意到一个 Star 数已经冲到 17.2K 的项目,目标相当直白:让 PS5 游戏直接在 PC 上跑起来。这里要说清楚,不是云游戏串流,也不是官方移植,而是纯粹的模拟器思路,一台普…

2026/10/13 23:51:38 阅读更多 →

最新新闻

MFC中种子填充算法的工程实现与避坑指南

MFC中种子填充算法的工程实现与避坑指南

1. 项目概述:为什么在MFC里实现种子填充,远不止“画个实心圆”那么简单你打开《计算机图形学》实验指导书,翻到第5页,“区域填充——种子填充算法(MFC中)”这行字印得工整,旁边还配了个带边界的…

2026/10/14 0:40:54 阅读更多 →
BACnet客户端C#源码实战:从设备发现到属性读写与避坑指南

BACnet客户端C#源码实战:从设备发现到属性读写与避坑指南

简介:一套基于C#编写的BacNet客户端程序源码,面向楼宇自动化(BAS)开发者、工控软件工程师及希望掌握BACnet协议栈的C#程序员。BacNet是楼宇自动化系统的开放通信标准,支持局域网、以太网、Wi-Fi等多种介质;…

2026/10/14 0:40:54 阅读更多 →
【揭秘】淘宝AI购物技术:AI替用户下单,付款链路怎么测?

【揭秘】淘宝AI购物技术:AI替用户下单,付款链路怎么测?

摘要:千问与淘宝打通商品发现、比较、下单和售后后,AI购物不再只是“推荐商品”。本文依据阿里巴巴与支付宝公开资料,把一句自然语言购物需求拆成商品、报价、确认、订单、支付和异步结果六段证据,并给出可运行的行为断言、异常测…

2026/10/14 0:40:54 阅读更多 →
stb_image单头文件图像解码库:从stbi_load到OpenGL纹理上传完整指南

stb_image单头文件图像解码库:从stbi_load到OpenGL纹理上传完整指南

简介:stb_image是一套应用广泛的开源图像处理库资源,面向需要在C/C项目中快速加载JPEG、PNG、BMP、TGA、WebP等多种格式图像的开发者,广泛用于游戏开发、工具软件与教学示例,尤其适合图像处理初学者和寻求轻量级集成的项目。该资源…

2026/10/14 0:40:54 阅读更多 →
通信总线传输速率计算:从时钟频率到有效带宽的完整拆解

通信总线传输速率计算:从时钟频率到有效带宽的完整拆解

1. 通信总线传输速率计算的核心逻辑拆解通信总线传输速率计算这件事,看起来就是套个公式,但我见过太多人在这上面翻车。有人把时钟频率直接当成传输速率,有人算出来带宽对不上实测值,还有人忽略了编码开销导致选型时余量算错。这个…

2026/10/14 0:40:54 阅读更多 →
鄱阳湖2005年1:25万矢量边界数据集(CGCS2000坐标系)

鄱阳湖2005年1:25万矢量边界数据集(CGCS2000坐标系)

简介:本资源为2005–2006年鄱阳湖1:25万精度矢量边界数据集,面向地理信息、生态遥感、水利规划及环境科研领域的高校师生、GIS工程师与政策研究者,提供高精度、可分析的湖泊空间基准底图,支撑湿地演变分析、水位变化建模、洪涝风险…

2026/10/14 0:39:54 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →