SQL Server学生选课系统数据库设计:四表闭环与存储过程实战
简介这是一份基于 SQL Server 的学生选课系统数据库设计课程设计资源面向计算机相关专业学生、教师及企业学习者覆盖课程设计、作业演示、数据库入门与进阶练习等场景。压缩包共 6 个文件包含可恢复的 zbak 数据库备份、建库与操作 sql 脚本、docx 课程设计文档、png 操作截图和 md 说明文件以 sql 与 zbak 为核心docx 与截图辅助理解整体设计整体仅 139KB结构紧凑、便于直接复用。该项目属于高分课程设计已获导师认可答辩评审分达 95 分并在 Mac、Windows 10/11 环境下测试运行正常可用于理解数据表设计、关系建立、基础查询与功能实现的完整数据库课程设计流程。目前已有 50 人学习下载适合需要课程设计参考或希望独立完成选课系统设计的学习者在此基础上修改扩展整体内容组织清晰便于对照文档与脚本逐段理解设计细节。1. SQL Server学生选课系统一份能直接答辩的课设资源课程设计最怕的不是功能写不完而是数据库表结构一摊开就被导师看出逻辑硬伤。基于SQL Server的学生选课系统数据库设计是一份能把你从架构空洞里拉出来的课设资源核心是一整套sql.sql建库脚本加docx设计文档学生、课程、教师、选课四类实体全覆盖选课退课、成绩录入、学分统计全流程可跑通mac与Windows 10/11实测正常答辩评审95分。适合要交课设的计算机专业学生、拿真实案例讲课的老师、想系统理解数据库建模流程的小白。接下来把表关系、关键SQL和换环境后的排错路径完整过一遍。2. 先把数据模型立住为什么四张表就能撑起选课闭环2.1 需求分析找出数据流里的四类参与者和三个动作学生选课系统的需求形态看起来五花八门但剥壳后核心业务就一句话学生在一堆已发布课程里选课选完课出成绩老师负责开课和录入成绩。围绕这个闭环数据边界非常清晰。做课设最容易翻车的不是表建少了而是把登录日志消息通知这种非核心功能也塞进模型导致ER图画了十几张表答辩时一问数据流就乱。拿到这份资源后第一步应该先看document.docx里的需求描述和ER图而不是急着打开sql.sql去执行。它的需求逻辑是学生端要能查到可选课程、选课、退课、看成绩教师端要维护课程信息、设置报名人数上限、录成绩管理员端要处理基础数据。落到数据库里实体就是谁在选课Student、选什么Course、谁开的课Teacher、选课结果Enrollment。选课这个动作本身是一个典型的多对多关系一个学生可以选多门课一门课可以被多个学生选。如果缺了中间的选课表直接在课程表里加外键去指学生第二学期这门课再开一次、又有三十个学生要选数据直接炸掉。所以把选课抽成独立实体用StudentID加CourseID做联合主键是这份脚本里最核心的建模决策也是后续所有查询和约束的地基。2.2 实体识别与关系四张基础表怎么分才不冗余这份资源的表不多胜在边界准。Student表管人Course表管课Teacher表管授课关系Enrollment表管选课行为。有人会问为什么Teacher不并入Course答案很简单一个教师可以同时教好几门课如果Teacher字段塞进Course多门课程会重复存储教师的姓名、职称、院系数据冗余不说改一次教师职称要动好几行。同理为什么不把班级、专业单独建表如果你的课设文件里一开始把Major做成独立表会让整个模型多一层JOIN但这部分级别的数据在SQL Server里用CHECK约束或者简单的VARCHAR字段就能约束住。这里有一个边界判断标准一份数据如果只有取值集合而没有业务动作就先别建表用约束处理只有当它需要被大量重复引用并且会跟着业务变化时才值得独立成表。拿着这份资源当底座时最容易踩的坑是过度设计给Course加一个CourseTypeID去关联课程类型表给Student加一个MajorID去关联专业表最后光基础表就八九张。不是说不可以这么设计而是课设答辩的评分点在逻辑自洽加流程完整表少而链路全往往比表多而查询绕更拿分。这套脚本四张表能把选课、退课、改成绩、统计学分走通就是这个道理。你在二次开发时每加一张表都要先问一句不加它业务真的会出错吗2.3 从ER图到关系模式主键选择与约束设置文档里ER图给出的对应关系Student和Course是多对多Teacher和Course是一对多Enrollment表作为中间表同时连接Student和Course。落在关系模式上就是下面四个Student(StudentID, StudentName, Gender, BirthDate, Major, ClassName, EnrollmentYear)Course(CourseID, CourseName, Credits, CourseType, TeacherID, MaxStudents, Semester)Teacher(TeacherID, TeacherName, Department, Title)Enrollment(StudentID, CourseID, EnrollmentDate, Score)主键选择有个容易忽略的细节学生ID用了定长CHAR(10)而不是INT自增。为什么课设场景里学号是自然主键全局唯一且业务上稳定如果换成自增ID选课表和成绩表全要跟着改而且学号本身在打印成绩单时要展示做成自然键反而省一次JOIN。课程ID同理用CHAR(8)如CS000001可读性比纯数字自增好很多。约束方面的可执行步骤我建议按三条线检查手头的库实体表的主键必须声明且不允许为空在SSMS里就是去确认键图标外键关系必须指向被引用表的主键默认不级联删除防止删掉一个学生把一大片选课记录连坐业务规则用CHECK约束收口比如Gender字段只允许男或女Credits必须大于0CourseType只允许必修或选修。文档里的这套资源把这些约束都体现在sql.sql中。你可以用SSMS打开表设计器逐个表点开CHECK约束确认这些限制是否都在如果某张表缺失说明脚本在传递过程中被人改过。我一般会花几分钟跑一遍外键关系图确认没有孤立表、没有环形引用再进下一步。3. 读透sql.sql建库、存储过程与触发器三件套的完整拆解3.1 建库建表DDL语句里的数据类型与四张表的搭建顺序sql.sql是这份资源的执行核心打开后建议从CREATE DATABASE一路往下读。首先要确认实例的默认排序规则通常是Chinese_PRC_CI_AS这决定了中文检索能不能命中。四张表建表顺序有讲究先建Student、Teacher这些无外键依赖的父表再建Course最后建Enrollment这张中间表否则外键会因引用对象不存在而报错。下面这段是脚本里Student表的典型写法CREATE TABLE Student ( StudentID CHAR(10) PRIMARY KEY, StudentName NVARCHAR(20) NOT NULL, Gender CHAR(2) DEFAULT 男 CHECK (Gender IN (男, 女)), BirthDate DATE, Major VARCHAR(30) NULL, ClassName VARCHAR(20) NULL, EnrollmentYear SMALLINT );学生表是最简单的实体表但有三处设计值得抄StudentID用定长CHAR而不是VARCHAR因为学号长度固定定长类型索引空间更小查询时还能省掉长度比较的开销性别用CHAR(2)加CHECK约束既限制取值又能在写入时直接报错比在应用层判断靠谱得多BirthDate用DATE而不是VARCHAR这样后续按年龄段统计选课人数时可以直接参与日期函数运算。再看带外键的Course表和核心的Enrollment表CREATE TABLE Course ( CourseID CHAR(8) PRIMARY KEY, CourseName NVARCHAR(50) NOT NULL, Credits DECIMAL(3,1) CHECK (Credits 0.5), CourseType NCHAR(2) CHECK (CourseType IN (必修, 选修)), TeacherID CHAR(6) NOT NULL, MaxStudents INT DEFAULT 30 CHECK (MaxStudents BETWEEN 1 AND 200), Semester VARCHAR(10) CHECK (Semester IN (2024-2025-1, 2024-2025-2)), FOREIGN KEY (TeacherID) REFERENCES Teacher(TeacherID) ); CREATE TABLE Enrollment ( StudentID CHAR(10) NOT NULL, CourseID CHAR(8) NOT NULL, EnrollmentDate DATETIME DEFAULT GETDATE(), Score DECIMAL(5,2) CHECK (Score BETWEEN 0 AND 100), PRIMARY KEY (StudentID, CourseID), FOREIGN KEY (StudentID) REFERENCES Student(StudentID), FOREIGN KEY (CourseID) REFERENCES Course(CourseID) );Credits用DECIMAL(3,1)而不是FLOAT是因为学分这种固定精度的数据在FLOAT里会出现0.1加0.2不等于0.3的问题DECIMAL把精度交给数据库避免学分统计时出现尾数误差。Enrollment表用联合主键(StudentID, CourseID)保证同一学生同一门课只记一条记录这是整个系统防重选课的根。这里有个细节要特别留意Score字段允许为NULL因为学生选课后还没考试成绩是后续补录的如果定义表时给它加了NOT NULL约束会发现选课存储过程永远插不进去。3.2 存储过程选课、退课与成绩录入的事务边界纯靠INSERT语句完成选课在课设里只能拿及格分用存储过程包一层校验逻辑才是答辩时能讲严谨的地方。这类课设脚本里最核心的存储过程通常是sp_SelectCourse它把学生是否存在、课程是否满员、是否重复选课三次校验都收到一个流程里CREATE PROCEDURE sp_SelectCourse StudentID CHAR(10), CourseID CHAR(8) AS BEGIN SET NOCOUNT ON; IF NOT EXISTS (SELECT 1 FROM Student WHERE StudentID StudentID) BEGIN RAISERROR(学生不存在, 16, 1); RETURN; END IF NOT EXISTS (SELECT 1 FROM Course WHERE CourseID CourseID) BEGIN RAISERROR(课程不存在, 16, 1); RETURN; END IF EXISTS (SELECT 1 FROM Enrollment WHERE StudentID StudentID AND CourseID CourseID) BEGIN RAISERROR(该课程已选过禁止重复选课, 16, 1); RETURN; END DECLARE selected INT, max INT; SELECT selected COUNT(*) FROM Enrollment WHERE CourseID CourseID; SELECT max MaxStudents FROM Course WHERE CourseID CourseID; IF selected max BEGIN RAISERROR(课程容量已满, 16, 1); RETURN; END INSERT INTO Enrollment (StudentID, CourseID) VALUES (StudentID, CourseID); END;这个过程的执行逻辑是先校验后写入四个RETURN分支各对应一条业务规则学生存在性、课程存在性、重复选课、容量检查。RAISERROR的第二个参数16是严重级别第三个参数1是状态码应用层捕获异常时可以靠它区分错误来源。注意容量检查用的是selected max不是大于号因为一旦等于最大容量再插就是超员。退课和录成绩是它的镜像退课先校验选课记录存在再DELETE录成绩则先判断Score是否在0到100区间。这里最值得借鉴的是把业务规则内聚到存储过程里而不是散落在应用层的if语句中。这样无论前端是C#程序、Java Web还是用SSMS手动执行都能复用同一套校验逻辑这一点在答辩时往存储过程保证数据一致性上引是很好的加分点。3.3 触发器与视图数据完整性的双保险存储过程管住了写入路径但如果有别的方式直接INSERT进Enrollment表容量逻辑就失效了。脚本里配套的触发器就是干这个的它在AFTER INSERT后立刻复核选课人数超出容量直接回滚整个事务CREATE TRIGGER trg_CheckEnrollLimit ON Enrollment AFTER INSERT, UPDATE AS BEGIN SET NOCOUNT ON; IF EXISTS ( SELECT 1 FROM Course c JOIN ( SELECT CourseID, COUNT(*) AS Cnt FROM Enrollment GROUP BY CourseID ) e ON c.CourseID e.CourseID WHERE e.Cnt c.MaxStudents ) BEGIN RAISERROR(选课人数超过课程容量事务回滚, 16, 1); ROLLBACK TRANSACTION; END END;AFTER INSERT, UPDATE意味着无论是存储过程还是手工INSERT只要触发插入或修改选课记录触发器都会重新统计每个课程的选课人数并与MaxStudents比较。它的性能代价是每次写操作都会做一次全表聚合在小课设几百条数据下完全没压力但如果日后数据量上到十万级就得改成只统计inserted表的写法。视图是给答辩展示准备的。比如成绩查询视图把三张表JOIN起来让使用者不必记住外键关系CREATE VIEW vw_StudentScore AS SELECT s.StudentID, s.StudentName, c.CourseName, c.Credits, e.Score, CASE WHEN e.Score 60 THEN 及格 ELSE 不及格 END AS GradeResult FROM Student s INNER JOIN Enrollment e ON s.StudentID e.StudentID INNER JOIN Course c ON e.CourseID c.CourseID;到这里数据层已经能跑通建库、四表、存储过程、触发器、视图六大件齐全。真正开始运行的时候你需要的不是再改表结构而是准备一份能演示的样例数据这就引出下面最常见的翻车现场。4. 避坑清单导入、运行与答辩审阅中的常见问题4.1 sql.sql 导入失败最常见的是外键顺序和排序规则冲突现象在SSMS里直接打开sql.sql执行报错显示对象名Teacher无效或者提示与 FOREIGN KEY 约束冲突。原因创建Course时Teacher表还没创建外键悬空或者你只执行了脚本的后半段。排序规则冲突则常出现在从别的机器拷来的脚本上两个实例的默认排序规则不一致时建库后中文检索会出问题。解决把sql.sql里CREATE TABLE按父表到子表的顺序执行即Student、Teacher再Course最后Enrollment若报排序规则冲突用ALTER DATABASE那套命令把库的排序规则改成Chinese_PRC_CI_AS或者干脆在实例属性里把默认排序规则先改好再建库。4.2 中文乱码脚本文件编码和客户端显示的双向坑现象SELECT查出来的中文全是问号或者查询条件里写中文搜不到结果。原因sql.sql从zip解压后如果是GB2312编码SSMS按UTF-8读入时中文字符串被拆坏另一种是SQL Server实例排序规则不是_CI_AS导致中文等宽匹配失效。后者在mac上用Docker跑SQL Server容器时尤其常见。解决用支持编码转换的编辑器把.sql另存为UTF-8 with BOM然后确认实例排序规则含Chinese_PRC_CI_AS。改完顺手执行一句SELECT N中文字符串做探针能原样返回就说明编码链路通了。4.3 备份文件与源码文件混用.zbak 该怎么处理现象解压后看到README.md.zbak以为是数据库备份文件用Restore向导去恢复时直接报备份集损坏。原因.zbak只是被改过扩展名的压缩文档对应的是原始README说明不是SQL Server的.bak数据库备份拿恢复向导去读必然失败。解决把.zbak改回.md或.txt直接打开看内容真正的数据库落地文件是sql.sql直接执行脚本建库。这里建议把文档类文件和脚本类文件分开存放避免答辩现场手忙脚乱翻错文件。README.md.zbak这个名字很容易让人误会成备份我每次解压后都会先看一眼文件头再决定怎么处理。4.4 Windows认证和SQL Server认证跨平台最容易起不来的原因现象Windows 10/11上SSMS连得挺顺换到mac环境用Docker跑数据库后客户端用Windows凭据登不进去。原因SQL Server的Linux和mac容器默认禁用了Windows认证只开SQL Server认证方式而这份课设脚本里的登录配置大概率只针对Windows环境设计。解决在Docker启动命令里设置好MSSQL_PIDDeveloper、ACCEPT_EULAY、SA_PASSWORD为强密码再用sqlcmd -U sa -P密码连接。Windows本机如果sa密码忘了可以在服务管理器里用单用户模式启动实例再重置。4.5 答辩演示时成绩为NULL导致展示界面崩掉现象现场给导师演示成绩查询视图视图返回一批NULL成绩前端页面直接空报错。原因Enrollment.Score允许为空而演示用的前端代码没做空值兜底NULL值一进页面就崩。解决演示前用UPDATE语句临时补一批成绩数据或把视图里Score写成ISNULL(e.Score, 0)让输出总有值。我一般还会准备一条选超出容量课程的演示脚本现场故意触发触发器报错并回滚反而显得测试做得充分。这种反例演示在很多答辩现场比一帆风顺的效果好得多。5. 扩展技巧给选课记录加退课时间字段并生成千条压测数据拿到这套脚本后最值得做的第一个改造是给Enrollment表补一个退课时间字段这样业务上就能讲出记录完整生命周期的故事。操作分两步先ALTER TABLE加列再在退课存储过程里加一行UPDATE。前者是DDL改结构后者是业务逻辑收口两件事分开做出问题容易回滚。ALTER TABLE Enrollment ADD DropTime DATETIME NULL;-- 在退课存储过程的 DELETE 之前补上这一行 UPDATE Enrollment SET DropTime GETDATE() WHERE StudentID StudentID AND CourseID CourseID;第一个脚本用ALTER TABLE增加允许为空的列SQL Server会做元数据变更不会锁住整张表第二个脚本把DropTime的写入时机放在DELETE之前保留一条何时退课的审计痕迹。做完这个改造你就能在答辩时回答如果学生退课又重选历史记录怎么办这类追问。第二个值得做的是压测数据生成。课设库里往往只有几十条学生记录触发器、存储过程跑不出真实性能差异。用下面这段脚本一次性灌入1000名学生DECLARE i INT 1; WHILE i 1000 BEGIN INSERT INTO Student (StudentID, StudentName, Gender, Major, ClassName, EnrollmentYear) VALUES ( S RIGHT(000000 CAST(i AS VARCHAR(10)), 6), 测试学员 CAST(i AS VARCHAR(10)), CASE WHEN i % 2 0 THEN 女 ELSE 男 END, 软件工程, 软工 CAST((i % 10 1) AS VARCHAR(10)) 班, 2024 ); SET i i 1; END;RIGHT函数配合CAST做定长补零保证主键格式始终是S加6位数字不会出现S1和S000001并存导致主键混乱的问题。这种生成脚本要在事务里分批执行或者每200条提交一次不然1000条INSERT挤在一个事务里会让日志暴涨跑起来非常慢。数据灌进去之后再回头跑一遍sp_SelectCourse你会发现200人的大课秒满触发器回滚报错这时候无论是看RAISERROR提示还是看SSMS执行计划都比手工造十几条数据更有说服力。以前我做课设总把时间花在给界面换皮肤上结果被导师问倒在一个简单的索引问题上。从那以后我每次拿到别人分享的脚本都会强制自己先跑一遍压测数据、再造一批假记录压力测试跑通了再谈修改。这份资源本身已经足够完整你真正要做的就是往里面加自己的业务规则然后把它讲清楚。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

彩票网站源码技术实现:数据库设计与号码统计后台开发

彩票网站源码技术实现:数据库设计与号码统计后台开发

简介:这份彩票网站源码面向希望搭建在线购彩平台的开发者与运维人员,基于ASP服务器端脚本技术实现,涵盖前端用户界面与后端管理系统两大模块。前端包含首页、彩种选择、投注及开奖结果展示等页面,后端以admin/default.asp为入口&a…

2026/10/12 20:38:33 阅读更多 →
Oracle 11gR2 Grid Infrastructure Windows安装指南:从介质解压到集群验证

Oracle 11gR2 Grid Infrastructure Windows安装指南:从介质解压到集群验证

简介:本资源为Oracle 11g R2 Grid Infrastructure在Windows 64位环境下的安装包,面向需要搭建Oracle集群的数据库管理员与运维工程师,帮助解决集群部署与ASM存储配置问题。压缩包共1495个文件,约682.04MB,以1047个jar、…

2026/10/11 7:34:08 阅读更多 →
健康管理系统源码怎么拆?体检预约表设计与部署避坑要点

健康管理系统源码怎么拆?体检预约表设计与部署避坑要点

简介:这是一套面向计算机相关专业学生与开发者的健康管理系统完整源码包,覆盖体检、预约等典型业务模块,既适合新手用于实战练习,也可直接作为课程设计、毕业设计或初期项目立项演示。压缩包共1530个文件,约19.94MB&am…

2026/10/13 0:30:40 阅读更多 →

最新新闻

AnyPS5:跨设备体验迁移的输入渲染调度实战

AnyPS5:跨设备体验迁移的输入渲染调度实战

1. 从“AnyPS5”这个标题说起:它到底想解决什么问题第一次看到“AnyPS5”这个标题,我脑子里蹦出来的第一反应是:这大概率是一个围绕“把某类资源、某类能力、某类体验,做成通用化、跨平台化”的项目。为什么这么说?因为…

2026/10/15 7:59:04 阅读更多 →
高效批量PDF转长图:开源工具链实战指南

高效批量PDF转长图:开源工具链实战指南

1. 项目背景与核心需求最近在整理大量PDF格式的技术文档时,遇到了一个实际需求:需要将上百份PDF文件统一转换为长图格式。这种需求在移动端阅读、社交媒体分享、文档归档等场景下非常常见。传统的截图工具只能处理单页内容,而专业软件要么操作…

2026/10/15 7:59:04 阅读更多 →
impeccable:浏览器扩展合规校验CLI工具实战指南

impeccable:浏览器扩展合规校验CLI工具实战指南

1. “impeccable”不是形容词,而是一个正在快速演化的CLI工具生态你搜“impeccable 如何使用”,结果里混着npx、Playwright、两步验证、浏览器插件、PRODUCT.md——这根本不像在查一个英语单词,倒像误入了某个开发者深夜调试现场的聊天记录。…

2026/10/15 7:59:04 阅读更多 →
医疗转科交接流程图设计与实施指南

医疗转科交接流程图设计与实施指南

1. 医疗流程标准化的重要性在医疗机构的日常运营中,患者转科交接是最容易发生信息遗漏的环节之一。记得去年我在某三甲医院实习时,亲眼目睹过一起因转科交接不清导致的用药错误案例——患者从内科转入外科时,护士站之间的口头交接漏掉了患者的…

2026/10/15 7:59:04 阅读更多 →
Java日期处理:获取两个日期之间的月份集合

Java日期处理:获取两个日期之间的月份集合

1. 项目背景与核心需求在日常开发中,处理日期相关的业务逻辑几乎无处不在。特别是当我们需要生成月度报表、计算周期性费用或分析时间序列数据时,经常需要获取两个日期之间的所有月份集合。这个看似简单的需求,在实际编码中却隐藏着不少坑点。…

2026/10/15 7:59:04 阅读更多 →
Flink流式聚合函数原理与实战:状态、时间与性能深度解析

Flink流式聚合函数原理与实战:状态、时间与性能深度解析

1. 什么是Flink流计算里的聚合函数——它不是“加总求平均”那么简单你可能在某次数据看板刷新时注意到,页面右上角那个实时跳动的“当前在线用户数”从1287突然变成1302,又在两秒后回落到1295;也可能在电商大促后台看到“过去60秒下单金额”…

2026/10/15 7:58: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 阅读更多 →