外聘教师管理系统:C#与SQL Server教务核算闭环实战
简介外聘教师管理系统是一套面向C#课程设计或毕业设计的WinForm源码项目系统覆盖外聘教师信息维护、按院系/课程/姓名多维查询、代课工资自动计算、学校基础信息维护以及登录与权限分级管理。压缩包共97个文件以26个.cs窗体逻辑代码、10个.resx界面布局资源、25张操作预览图为主同时附带SQL Server 2012数据库.mdf/.ldf、DLL依赖与.config配置整体约35.47MB。已有437人学习参考代码中普通用户仅能查询教师信息管理员则拥有增删改查、工资设置与系部课程维护等完整权限清晰演示了C#与SQL Server的权限控制和多人协作场景。配套数据库只需修改连接字符串即可直接运行适合需要完成课程设计、毕业设计或想掌握WinForm界面设计、数据绑定与统计报表的初学者对照学习。1. 外聘教师管理系统C# SQL Server 的教务核算闭环每个学期末教务处和外聘老师的对账总是一地鸡毛。排课记录散在 Excel 里课时数对不上、课酬算不清、兼职老师档案东一个西一个说起来都是小事真查起来耗时好几天。外聘教师管理系统.rar 解决的就是这件事一套基于 C# WinForms 和 SQL Server 的桌面管理系统覆盖外聘教师从入职建档、排课、授课登记到课酬结算的完整流程。压缩包里是完整的源码、数据库脚本和使用文档适合正在做课程设计的在校生参考也适合需要快速搭建教务系统的开发者拿来改改就用。它不玩高深架构胜在闭环完整、直接能跑。2. 三层架构与数据模型先把表和关系理清楚拿到压缩包的第一件事不是急着双击运行而是先看它的工程结构和数据库脚本。这套系统的骨架很标准UI 层放窗体BLL 层写业务逻辑DAL 层负责跟数据库打交道再加上一个公共的 Model 类和 DBHelper 数据库操作类。这个拆分不是摆样子外聘教师管理的业务逻辑并不复杂但排课、课时、结算之间互相依赖如果不分层写到后面改一个地方崩三个窗体我见过不止一个项目栽在这上面。2.1 DBHelper 封装DAL 层的地基怎么打几乎所有数据访问都从一个 DBHelper 类出来。这个类的核心作用是把连接字符串管理、打开连接、执行查询、释放资源这些重复动作收敛到一个地方业务代码只管传 SQL 和参数不用关心连接什么时候关。using System.Data; using System.Data.SqlClient; namespace TeacherMIS.DAL { public static class DBHelper { private static string connStr System.Configuration.ConfigurationManager .ConnectionStrings[connStr].ConnectionString; public static DataTable ExecuteQuery(string sql, params SqlParameter[] ps) { using (SqlConnection conn new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd new SqlCommand(sql, conn)) { if (ps ! null) cmd.Parameters.AddRange(ps); using (SqlDataAdapter da new SqlDataAdapter(cmd)) { DataTable dt new DataTable(); da.Fill(dt); return dt; } } } } public static int ExecuteNonQuery(string sql, params SqlParameter[] ps) { using (SqlConnection conn new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd new SqlCommand(sql, conn)) { if (ps ! null) cmd.Parameters.AddRange(ps); return cmd.ExecuteNonQuery(); } } } } }这段代码里最关键的是using包裹它保证连接用完自动释放不会造成连接池被占满。params SqlParameter[]是另一个重点所有外部输入都通过参数对象传给数据库而不是拼进 SQL 字符串里SQL 注入的风险从入口就被堵住了。日常写业务时查询用ExecuteQuery返回 DataTable增删改用ExecuteNonQuery返回影响行数两层方法足够覆盖绝大多数场景。2.2 核心表设计一张课酬表牵出五张关联表数据库脚本是整个压缩包价值最高的部分。外聘教师管理的本质不是人而是人、课、授课记录、课酬之间的关系。这套系统里的核心表设计我按实际依赖顺序拆给你看。表名关键字段作用tb_TeacherTeacherID、TeacherNo、TitleCode、BankCard外聘教师基本信息tb_TitleTitleCode、TitleName、HourlyRate职称及对应课时单价tb_CourseCourseID、CourseName、Term、Hours、TeacherID学期开设课程tb_TeachRecordRecordID、CourseID、TeachDate、Periods、RecordStatus每次授课记录tb_SalarySalaryID、TeacherID、Term、TotalPeriods、Amount学期课酬结算结果tb_Title是这套表里最容易被忽略的一张。很多初写教务系统的人把课时单价直接写死在代码里结果职称调整或涨课时费时得重新发布程序而这里把它独立成表用外键关联教师改费用只需要更新一行记录。建库脚本的核心部分长这样CREATE DATABASE TeacherMIS GO USE TeacherMIS GO CREATE TABLE tb_Teacher ( TeacherID INT IDENTITY(1,1) PRIMARY KEY, TeacherNo VARCHAR(20) NOT NULL UNIQUE, TeacherName VARCHAR(50) NOT NULL, Gender CHAR(1) DEFAULT 男, TitleCode INT NULL, Phone VARCHAR(20), BankCard VARCHAR(30), IsActive BIT DEFAULT 1 ); CREATE TABLE tb_Title ( TitleCode INT PRIMARY KEY, TitleName VARCHAR(20), HourlyRate DECIMAL(8,2) ); CREATE TABLE tb_Course ( CourseID INT IDENTITY(1,1) PRIMARY KEY, CourseName VARCHAR(100) NOT NULL, Term VARCHAR(20) NOT NULL, Hours INT DEFAULT 32, TeacherID INT NULL ); CREATE TABLE tb_TeachRecord ( RecordID INT IDENTITY(1,1) PRIMARY KEY, CourseID INT NOT NULL, TeachDate DATE NOT NULL, Periods INT DEFAULT 2, RecordStatus CHAR(1) DEFAULT 0 ); ALTER TABLE tb_Course ADD CONSTRAINT FK_Course_Teacher FOREIGN KEY (TeacherID) REFERENCES tb_Teacher(TeacherID); ALTER TABLE tb_TeachRecord ADD CONSTRAINT FK_Record_Course FOREIGN KEY (CourseID) REFERENCES tb_Course(CourseID); ALTER TABLE tb_Teacher ADD CONSTRAINT FK_Teacher_Title FOREIGN KEY (TitleCode) REFERENCES tb_Title(TitleCode);TeacherNo加了唯一约束这是外聘教师的登录账号注册时如果重复会被数据库直接拒绝比在 C# 里先查一遍再判断更可靠。RecordStatus默认 0 表示未审核这个字段是后面课酬结算前的审核关口所有未审核的记录都不参与计算。外键全部在表建完之后用ALTER TABLE补充而不是建表时内联这样建表顺序可以随意调整不容易出现循环依赖导致建表失败。2.3 初始化数据的玄学没有基础数据登录窗口永远过不去很多拿到代码的人双击运行发现登录窗口弹出来但账号密码都不对原因是数据库里根本没有初始化账号。我一般会在建库脚本后面补一段种子数据INSERT INTO tb_Title VALUES (1, N副教授, N80.00); INSERT INTO tb_Title VALUES (2, N教授, N100.00); INSERT INTO tb_Title VALUES (3, N讲师, N60.00); INSERT INTO tb_Teacher (TeacherNo, TeacherName, TitleCode, IsActive) VALUES (Nadmin, N系统管理员, 1, 1);N字符串的 N 前缀必须保留SQL Server 遇到中文字符串不加 N 前缀在排序规则不是中文默认值的时候会显示成问号这是很多人遇到的第一个翻车现场。密码字段在建表脚本里一般会留一个默认值比如所有初始化账号的密码统一为123456首次登录后强制修改这套代码的登录逻辑里通常已经带了 MD5 校验所以插入的密文必须是加密后的结果不能直接写明文。3. 核心功能模块从登录权限到课酬结算的落地实现表结构理清了接下来看业务代码。这套系统的核心链路是登录 → 建档 → 排课 → 登记授课 → 审核 → 结算。每段链路都有几个值得抄下来的写法我按顺序拆。3.1 登录与角色判断MD5 加密不能省登录窗体的逻辑不复杂但密码处理不能裸奔。系统里用户密码统一用 MD5 哈希后存库登录时把输入框的内容哈希后再去比对。public static string MD5(string input) { using (var md5 System.Security.Cryptography.MD5.Create()) { byte[] bytes Encoding.UTF8.GetBytes(input); byte[] hash md5.ComputeHash(bytes); StringBuilder sb new StringBuilder(); foreach (byte b in hash) { sb.Append(b.ToString(x2)); } return sb.ToString(); } }ToString(x2)把每个字节转成两位小写十六进制拼出来就是标准的 32 位 MD5 字符串。查询用户时把登录名和哈希后的密码用参数传进去string sql SELECT TeacherID, TeacherName, TitleCode FROM tb_Teacher WHERE TeacherNono AND PwdHashpwd; SqlParameter[] ps { new SqlParameter(no, loginName.Trim()), new SqlParameter(pwd, HashHelper.MD5(password)) }; DataTable dt DBHelper.ExecuteQuery(sql, ps); if (dt.Rows.Count 1) { // 登录成功当前用户信息保存到全局变量 }参数化查询在这里不是可选项登录接口是对外暴露的入口SQL 注入的攻击大多集中在登录框。.Trim()处理用户误输入的空格也是必要的否则数据库里没有带空格的账号会被拒之门外。登录成功后可以顺手在Form的标题栏或主窗体状态栏显示当前登录人方便后面排课操作时追踪操作记录。3.2 档案管理照片存二进制还是存路径外聘教师档案管理窗体里容易被问到的就是照片怎么存。这套系统默认把照片以二进制字节流存进数据库字段虽然会占一点数据库空间但好处是换机器、换目录都不会出现图片丢失。保存照片的代码写法如下byte[] photoBytes File.ReadAllBytes(photoPath); string sql UPDATE tb_Teacher SET Photophoto WHERE TeacherIDid; SqlParameter[] ps { new SqlParameter(photo, SqlDbType.Image) { Value photoBytes }, new SqlParameter(id, teacherID) }; DBHelper.ExecuteNonQuery(sql, ps);SqlDbType.Image是 SQL Server 里的旧二进制类型这套系统用的是它。如果换成varbinary(MAX)更现代但改动会涉及所有读取照片的地方除非必要我不会轻易动。读取照片时反过来从 DataTable 里拿字节数组用MemoryStream加载到 PictureBoxif (dt.Rows.Count 0 dt.Rows[0][Photo] ! DBNull.Value) { byte[] bytes (byte[])dt.Rows[0][Photo]; using (MemoryStream ms new MemoryStream(bytes)) { picPhoto.Image Image.FromStream(ms); } }DBNull.Value判断很重要因为很多教师可能没上传照片直接转类型会抛异常。我在实际项目里一般还会加一个默认头像的兜底逻辑没有照片时显示一张占位图避免界面出现空白头像。3.3 排课与课时统计多表联查看这张报表排课的功能本质是给tb_Course增删改记录真正考验 SQL 功底的是课时统计报表。教务最常问的问题是这个学期某门课上完了多少课时、还差多少课时。对应的查询是SELECT c.CourseName, c.Hours AS PlanHours, SUM(r.Periods) AS FinishedHours, c.Hours - SUM(r.Periods) AS RemainingHours FROM tb_Course c LEFT JOIN tb_TeachRecord r ON c.CourseID r.CourseID AND r.RecordStatus 1 WHERE c.Term 2024-2025-1 GROUP BY c.CourseID, c.CourseName, c.Hours ORDER BY c.CourseName;这里用了LEFT JOIN而不是INNER JOIN因为有些课程可能还没登记授课记录用内连接会把没开课的课过滤掉报表上就看不到这门课。RecordStatus 1的条件写在 JOIN 的 ON 子句里而不是 WHERE 子句里这是个细节如果写进 WHERE左连接的语义就被破坏了未审核的课会被过滤掉和课程有未审核记录时统计结果会变成 0对账时容易产生误判。这部分我踩过坑后来就养成了先看 JOIN 条件的习惯。3.4 课酬结算存储过程把计算逻辑下推到数据库课酬计算的规则并不复杂已审核课时数乘以职称对应的课时单价。但这个计算每学期要跑几百条数据放在 C# 里循环调用 SQL 效率很低这套系统把它做成了存储过程CREATE PROCEDURE usp_CalSalary Term VARCHAR(20) AS BEGIN SET NOCOUNT ON; SELECT t.TeacherID, t.TeacherName, ti.TitleName, SUM(r.Periods) AS TotalPeriods, ti.HourlyRate, SUM(r.Periods) * ti.HourlyRate AS Amount FROM tb_Teacher t INNER JOIN tb_Course c ON t.TeacherID c.TeacherID INNER JOIN tb_TeachRecord r ON c.CourseID r.CourseID AND r.RecordStatus 1 INNER JOIN tb_Title ti ON t.TitleCode ti.TitleCode WHERE c.Term Term GROUP BY t.TeacherID, t.TeacherName, ti.TitleName, ti.HourlyRate ORDER BY t.TeacherID; END调用时只需要传一个学期参数。SET NOCOUNT ON是给受影响行数提示闭嘴不然某些驱动环境下会多返回一个结果集导致 C# 端读取顺序错乱。RecordStatus 1在 JOIN 条件里出现两次的组合——课程关联授课记录时过滤已经保证了结果集里只有审核过的记录。结算完成后系统会把结果写入tb_Salary表留档这样财务复核时能看到历史结算的结构而不是依赖每次实时计算。4. 部署与常见问题排查从本机跑通到避坑记录代码看得再多不如自己把这套系统跑起来一遍。我按实际部署顺序讲每个环节对应一个很容易踩的坑。这些东西都是血泪经验你照着走能省一晚上折腾。4.1 附加数据库与连接字符串配置拿到脚本文件后推荐用 SQL Server Management Studio 直接执行 SQL 脚本建库不要用可视化方式去附加 .mdf 文件。附加这种方式经常因为文件权限问题报错。连接字符串在App.config里核心是这一行connectionStrings add nameconnStr connectionStringData Source.;Initial CatalogTeacherMIS;User IDsa;Password123456 providerNameSystem.Data.SqlClient / /connectionStringsData Source.代表本机默认实例如果你的 SQL Server 是命名实例要写成电脑名\实例名或者localhost\SQLEXPRESS。User IDsa表示用 SQL Server 身份验证登录比 Windows 身份验证更省事换机器部署时不用反复配置域环境。4.2 避坑清单这五个问题我见一次记一次问题一无法打开数据库 TeacherMIS 的日志文件现象运行系统时报错提示无法打开或附加数据库文件。原因SQL Server 服务账户对数据库文件所在目录没有读取权限尤其是把数据库文件放在桌面或下载文件夹时。解决把 .mdf 和 .ldf 文件移动到 SQL Server 默认数据目录通常是C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\下或者右键文件属性给SQLServer服务账户添加完全控制权限。问题二连接超时Login failed for user sa现象窗体加载时等十几秒后报连接超时或直接提示 sa 登录失败。原因SQL Server 没有启用混合验证模式或者 sa 密码被策略限制太弱。解决在 SSMS 里右键服务器 → 属性 → 安全性 → 选「SQL Server 和 Windows 身份验证模式」然后打开 SQL Server 配置管理器确认 TCP/IP 协议已启用。sa 密码建议设置成符合密码策略的复杂度否则改完仍然登不上。问题三插入的中文全部变成问号乱码现象档案管理里录入王老师数据库里存进去变成???。原因插入字符串没有加 N 前缀或目标字段用了varchar而不是nvarchar。解决所有可能存中文的字段统一定义为nvarchar所有代码里的中文字符串参数统一写成N中文形式。已经乱码的数据没有后悔药只能删掉重录。问题四登录窗口回车键没反应现象输入账号密码后按回车什么都不发生必须点登录按钮。原因窗体的AcceptButton属性没有绑定登录按钮。解决在窗体构造函数或设计器里把this.AcceptButton btnLogin;设置好。顺手把KeyPreview设为true这样回车事件才不会被文本框优先吞掉。问题五照片显示不出来PictuareBox里一片空白现象列表能查出老师信息照片框却空白。原因新录入老师没有照片数据库存的是 NULL代码没有做空值判断。解决读取时先判断DBNull.Value再用默认图填充。如果图片是从路径读取的还要检查路径是否在别的机器上存在这属于移植后遗症。4.3 版本兼容VS 版本和 .NET Framework 的匹配这套代码是基于 .NET Framework 的 WinForms 项目双击 .sln 文件后Visual Studio 可能会提示需要 NuGet 还原或目标框架版本不兼容。常见的情况是项目文件里写着 .NET Framework 4.5而你本机装的是 4.7.2 或更高这时直接在项目属性里修改目标框架即可不用重装环境。如果出现System.Data.SqlClient无法解析记得确认项目引用里包含System.Configuration和System.Data这两个都是 WinForms 项目的默认引用项换机器或换版本后容易被误删。数据库版本方面脚本兼容 SQL Server 2008 R2 到 2019 的绝大部分语法都是标准 T-SQL不需要改。唯一要注意的是如果你的 SQL Server 版本太新SqlDbType.Image虽然仍然能用但你会看到一条弃用警告这是正常的不影响运行。5. 把单机系统改成多机 C/S 访问的实用技巧这套系统的默认形态是一台电脑装全部数据库也在本机。实际教务场景里排课老师和财务不在同一间办公室改造成局域网里共享数据库是刚需。改造的关键只有三处每处都短平快。第一处把 SQL Server 的登录方式确认成混合模式这一步在 4.2 里讲过。第二处把App.config里的Data Source从.改成数据库服务器的局域网 IP比如Data Source192.168.1.100。第三处确保 SQL Server 的 TCP/IP 端口 1433 被防火墙放行。在服务器上打开 Windows Defender 防火墙新建入站规则端口选 TCP 1433允许连接。SQL Server 浏览器服务也要启动不然改端口后客户端找不到实例。客户端这边把编译好的 Release 文件夹直接拷贝到各台办公电脑就能运行前提是每台电脑都安装了对应的 .NET Framework。如果嫌安装麻烦可以在 Visual Studio 里给项目增加 ClickOnce 发布配置生成一个 setup.exe客户端双击安装以后服务器端更新只需要重新发布一次。改完连接字符串后建议做一次连通性测试。在客户端电脑上打开命令行输入telnet 192.168.1.100 1433能进入黑屏界面说明端口通立即退出即可。如果提示找不到 telnet 命令在控制面板的启用或关闭 Windows 功能里勾选 Telnet 客户端。这个测试比在程序里反复试连接靠谱能快速定位是数据库问题还是网络问题。多机改造完成后有一个习惯从那以后我每次做教务系列系统都会强制走一遍先在任何一台客户端上用管理员账号登录一次把课时审核、结算存储过程各跑一遍确认返回数据和服务器端一致再交付给教务处。多机并发写库时偶尔会出现死锁提示这通常和代码里未释放的连接对象有关检查所有SqlConnection是否都走using块就行。这套系统的架构决定了它不会成为复杂多租户平台但在一个学院内部的局域网里它足够稳定地撑过几个学期希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Windows消息机制精讲:从消息队列到窗口过程,轻松解决界面卡死

Windows消息机制精讲:从消息队列到窗口过程,轻松解决界面卡死

这一节是Windows运行机理里消息机制的第3小节。标题写得克制,但内容恰恰是整个GUI程序最容易被低估的部分:消息是怎么在系统队列、线程队列、窗口过程之间流动的。很多程序在功能上没问题,并发逻辑也没问题,但界面就是容易卡、容易…

2026/10/18 8:39:19 阅读更多 →
AI对话产品出海实战:从多语言到本地化的关键策略

AI对话产品出海实战:从多语言到本地化的关键策略

1. 出海这件事,是怎么被逼出来的先说个背景。国内做对话式AI的团队,这两年普遍遇到一个共同的困境:技术跑得比市场快,但商业化路径却迟迟没有跑通。某创业团队就是典型——模型能力在内部评测和用户反馈里都排得上号,但…

2026/10/18 8:39:19 阅读更多 →
C# WebSocket实战:从握手到心跳重连的完整Demo解析

C# WebSocket实战:从握手到心跳重连的完整Demo解析

简介:这是一套面向C#开发者的WebSocket通信完整示例,适合需要实现实时双向通信、研究服务端与客户端交互逻辑的中高级程序员,也可作为ASP.NET项目集成WebSocket功能的参考。资源包内含客户端与服务端两个完整工程,共76个文件&…

2026/10/18 8:38:19 阅读更多 →

最新新闻

RT-LAB实时仿真实战:模型拆分、HIL测试与常见故障排查指南

RT-LAB实时仿真实战:模型拆分、HIL测试与常见故障排查指南

最近团队接了一个半实物仿真项目,甲方要求控制系统必须在实时环境下验证,我花了差不多两个星期啃 RT-LAB 文档。本来以为实时仿真就是把 Simulink 模型搭好直接编译下装,结果一上手就发现根本不是这么回事。光是Perspectives.144117571这一份…

2026/10/18 9:33:31 阅读更多 →
LJ-Navigator2安装部署全解析:从YAML配置到批处理引擎

LJ-Navigator2安装部署全解析:从YAML配置到批处理引擎

简介:LJ-Navigator2安装包是一份面向LJ系列设备使用者的专业调试工具资源,由作者以RAR压缩包形式提供,整体容量约397.08MB。该工具聚焦互换积分操作,能够辅助用户完成通信协议解析、设备状态监控以及交互数据检查,适用…

2026/10/18 9:33:31 阅读更多 →
AI营销如何打通全域增长命脉:断点拆解与落地指南

AI营销如何打通全域增长命脉:断点拆解与落地指南

AI营销榜单发布后的那段时间,我被问得最多的一个词不是“AI”,而是“全域增长”。榜单上被重点提到的,正是一家以前很少出现在大众视野里的MarTech公司。它凭什么能被视为2026年增长命脉的打通者?很多人以为这只是又一轮概念包装&…

2026/10/18 9:33:31 阅读更多 →
MATLAB手写CNN识别MNIST:从卷积到反向传播的完整工程解析

MATLAB手写CNN识别MNIST:从卷积到反向传播的完整工程解析

简介:面向MATLAB用户与深度学习初学者的CNN手写数字识别资源,以MNIST经典手写数字数据集为对象,完整演示卷积神经网络的原理与实现,覆盖数据预处理、模型构建、训练与评估流程。资源共16个文件,压缩包仅12.42MB&#x…

2026/10/18 9:33:31 阅读更多 →
基于ResNet-50的人脸多属性识别:多任务学习工程实践与踩坑复盘

基于ResNet-50的人脸多属性识别:多任务学习工程实践与踩坑复盘

需求方最开始给的需求只有一句话:给一张正脸照片,同时返回年龄、性别、人种三个属性。团队里很快分成两派,一派认为老老实实训三个模型最稳,另一派想把三个任务塞进同一个网络里用多任务学习一把搞定。最终我们选了后者&#xff0…

2026/10/18 9:33:31 阅读更多 →
Java版Personal Agent实战:基于Spring Boot与Spring AI构建生产级智能体

Java版Personal Agent实战:基于Spring Boot与Spring AI构建生产级智能体

1. 这个 Java 版 Personal Agent 到底解决了什么问题1.1 从“调个 API”到“跑一个 Agent”,中间差了什么过去一年,围绕大模型的工程实践基本分成了两条路。一条是 Python 生态里各种 Agent 框架快速迭代,另一条是 Java 生态里大量业务系统想…

2026/10/18 9:32:31 阅读更多 →

日新闻

基于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/18 0:00:55 阅读更多 →

周新闻

基于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/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/16 14:23:36 阅读更多 →