新闻详情

新闻详情

首页 / 资讯中心 / 详情

C#+MySQL房屋租赁管理系统:表结构设计与业务模块实现详解

发布时间:2026/10/1 4:13:26来源:尧图网络
C#+MySQL房屋租赁管理系统:表结构设计与业务模块实现详解
简介一个基于C#和MySQL开发的房屋租赁管理系统专为计算机、软件工程、通信工程等专业大学生课程设计与毕业设计参考打造定位明确。压缩包内共69个文件大小约12.81兆核心是25个C#源代码文件配合资源文件、窗体资源、可执行程序及依赖库还附带数据库脚本、课程设计报告、实体联系图与数据流图等设计文档能直观看出清晰的目录与模块划分。已有276人学习下载。从代码层面可系统学习Windows窗体界面设计、数据库访问组件与MySQL交互、面向对象分层架构、数据绑定和异常处理借助数据库脚本可快速建库梳理租户、房源、租赁合同等核心表结构报告和实体联系图则能支撑论文撰写与答辩展示。整体覆盖从需求分析、数据库建模、编码实现到文档输出的完整课程设计流程结构完整代码可读性强适合学生直接复用或按课设要求二次改造。1. 房屋租赁管理系统为什么值得用 C# 和 Mysql 自己搭一套无论是毕业设计、课程设计还是小团队接私活房屋租赁管理系统都是出现频率极高的一个项目方向。它比「学生管理系统」多一点业务逻辑又比「进销存」少很多复杂流程正好卡在一个边界上需求明确、模块清晰、数据之间有关联做出来有东西可演示答辨时也能讲出设计思路。很多朋友拿到「基于C#Mysql房屋租赁管理系统.zip」这类压缩包后第一反应是打开源码直接跑结果卡在环境配置上或者跑起来后发现表结构跟自己理解的业务对不上。这篇文章就把这套系统的拆解路径写清楚从 Mysql 表结构设计到 C# 数据访问层再到房源、合同、账单、退租这几条核心业务线最后给一批真会遇到的连接和并发坑。适合的人群很明确C# 语法已经过关、但不知道一个完整的业务系统该怎么组织代码的初学者以及手头有类似单子、想快速搭一套可用原型的开发者。这套组合选 C# Mysql 不是因为它们是最新的技术而是它们最稳C# 做桌面端界面成熟Mysql 免费且部署简单两个组合在一起一个人在一个月内能完成从建库到跑通全流程。2. 先把数据模型立住Mysql 侧的表结构与连接准备2.1 六张核心表字段、状态机与冗余设计房屋租赁管理系统的数据模型绕不开房源、租客、合同、账单这四类实体。我第一次做这类项目时犯过一个错把「房间」和「合同」揉在一张表里结果一个房间续租时整行数据都要改历史记录全丢了。后来学到的教训是——房源是房源合同是合同它们之间用外键关联但各自独立存在。一个能支撑完整业务流转的库至少要包含下面六张表building楼栋表管理小区里的每一栋楼room房间表挂在楼栋下记录朝向、面积、租金单价、押金、状态tenant租客表记录身份信息、联系方式、紧急联系人contract合同表关联房间和租客记录租期、租金、押金、付款周期bill账单表关联合同记录每期租金和水电费operation_log操作日志表记录谁在什么时间做了什么操作其中 room 表和 contract 表的字段设计决定了下游代码好不好写。room 表我一般会加一个 status 字段用整数表示状态避免在代码里散落字符串判断CREATE TABLE room ( id int NOT NULL AUTO_INCREMENT, building_id int NOT NULL COMMENT 所属楼栋, room_no varchar(20) NOT NULL COMMENT 房间号如 3-502, area decimal(6,2) DEFAULT NULL COMMENT 建筑面积, rent_price decimal(10,2) NOT NULL COMMENT 月租金, deposit decimal(10,2) NOT NULL DEFAULT 0 COMMENT 押金默认0, status tinyint NOT NULL DEFAULT 0 COMMENT 0空置, 1已预订, 2已出租, 3维修中, 4停用, remark varchar(255) DEFAULT NULL, create_time datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_building_room (building_id, room_no) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT房间表;注意最后一行状态字段的注释里写清楚了「0空置, 1已预订, 2已出租, 3维修中, 4停用」。这个小习惯很重要业务系统里的状态字段是后面排查问题的依据也是新手最容易忽略的地方。等你做了三个月功能后回头改 bug靠的就是这条注释而不是去翻代码里的 switch-case。contract 表要把租金和押金冗余存储一份。这个设计刚开始不容易理解room 表里已经有 rent_price 了为什么合同里还要存一份原因很简单房价会调。合同签订那一刻的租金才是法律依据如果合同表不冗余改房源租金后所有历史合同和账单全部错乱。这就是典型的「读取时计算」和「写入时存储」之间的取舍。CREATE TABLE contract ( id int NOT NULL AUTO_INCREMENT, contract_no varchar(32) NOT NULL COMMENT 合同编号, room_id int NOT NULL, tenant_id int NOT NULL, start_date date NOT NULL, end_date date NOT NULL, rent_price decimal(10,2) NOT NULL COMMENT 合同签约时的月租金, deposit decimal(10,2) NOT NULL DEFAULT 0, payment_cycle tinyint NOT NULL DEFAULT 1 COMMENT 1按月, 3按季, 6按半年, status tinyint NOT NULL DEFAULT 0 COMMENT 0执行中, 1已到期, 2已退租, 3已作废, sign_date date DEFAULT NULL, create_time datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_contract_no (contract_no), KEY idx_room_id (room_id), KEY idx_tenant_id (tenant_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT租赁合同表;这里的两个索引 idx_room_id 和 idx_tenant_id 不是随手加的。合同表最频繁的查询是「这个房间现在有没有有效合同」「这个租客名下有几份合同」这两个查询分别走 room_id 和 tenant_id 的索引不加索引时数据量到几万条就会明显变慢。2.2 Mysql 8 的连接参数从建库到连接字符串一次调通表结构设计好之后第一步是在 Mysql 里把库建出来。很多新手在这里就开始翻车用 root 用户建库时没指定字符集安装时选了默认的 utf8mb4但连接字符串里又没写 Charset结果一插入中文就是问号。推荐的做法是建库时一次性把字符集、排序规则、时区全部定好CREATE DATABASE IF NOT EXISTS rent_db DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci DEFAULT ENCRYPTIONN;utf8mb4 不是「比 utf8 更好一点」的版本而是真正能存下完整 Unicode包括 emoji的编码。老的 utf8 字符集在 Mysql 里其实是 utf8mb3存不了四字节字符。房屋租赁系统里租客姓名、备注信息都可能有生僻字建库用 utf8mb4连接字符串也要配套。C# 侧连接 Mysql 的驱动有两种选择官方 Oracle 出的 Connector/NET以及第三方开源的 MySqlConnector。两者 API 基本一致都用MySqlConnection但 MySqlConnector 在性能和管理方式上更现代支持异步的姿势也更规范。常见的做法是早期用 Connector/NET 很顺后面换了 MySqlConnector 发现线程模型更省心。我的习惯直接推荐 MySqlConnectorServer127.0.0.1;Port3306;Databaserent_db;Uidroot;Pwd你的密码; SslModeNone;Charsetutf8mb4;Connection Timeout5;AllowPublicKeyRetrievalTrue;这里有几个参数要特别说清楚。SslModeNone是给本地开发用的如果你的 Mysql 装在远程服务器且开了 SSL 证书这个值要换成 Required。AllowPublicKeyRetrievalTrue是 Mysql 8 用caching_sha2_password认证方式时必须开的不开会报「Authentication method caching_sha2_password not supported」之类的错误。Connection Timeout5不是让你等五秒再放弃而是告诉驱动别傻等。这几个参数每台机器的状态不一样连不上时逐项检查比改来改去有效得多。3. 用 C# 搭数据访问层从 Connection 到参数化查询3.1 驱动选择与连接管理数据访问层是整个系统的地基。愿不愿意多花半天时间把这层写好决定了后面的业务代码是「清爽地写业务」还是「每个按钮里都混着连接字符串和 SQL」。很多初学者的习惯是每个窗体里 new 一个 MySqlConnection写 SQL执行关闭。这个模式在只有一个窗体的 Demo 里没问题一旦窗体超过五个连接对象散落在各处改一个连接字符串就要全局搜索替换。而且 C# 里的连接对象如果不及时 Dispose连接池很快会被占满表现就是「程序跑着跑着突然卡死」。我一般会写一个极简的 DbHelper 静态类把「拿连接、执行命令、填充数据集」封装成三个方法后面所有业务窗体都只调用它using MySqlConnector; public static class DbHelper { // 连接字符串写在配置文件里不要写死在代码中 private static readonly string ConnStr Server127.0.0.1;Port3306;Databaserent_db;Uidroot; Pwd123456;SslModeNone;Charsetutf8mb4;Connection Timeout5;; public static MySqlConnection GetConnection() { var conn new MySqlConnection(ConnStr); return conn; } }这段代码的核心逻辑不在那几行命令而在「连接字符串只出现一次」。后面无论是数据库密码改了还是把系统从开发环境搬到生产环境只需要改这一个地方。GetConnection()返回的是未打开的连接对象谁调用谁负责 Open这样能保证连接的使用生命周期由业务代码自己控制不会出现别人帮你开了连接、你忘了关的情况。3.2 参数化查询与事务写接口的固定套路数据访问层的第二个关键设计是所有查询一律使用参数化 SQL禁止字符串拼接。这不是洁癖问题而是房屋租赁系统里租客姓名、备注这些字段都是用户输入的内容直接拼 SQL 相当于把数据库的执行权限敞开给对方。下面这段代码演示「新增租客」的完整套路public static bool InsertTenant(string name, string phone, string idCard, string remark) { const string sql INSERT INTO tenant (name, phone, id_card, remark, create_time) VALUES (name, phone, idCard, remark, NOW()); try { using (var conn DbHelper.GetConnection()) { conn.Open(); using (var cmd new MySqlCommand(sql, conn)) { // 参数必须从 MySqlParameter 构造不能直接拼进 SQL 字符串 cmd.Parameters.AddWithValue(name, name); cmd.Parameters.AddWithValue(phone, phone); cmd.Parameters.AddWithValue(idCard, idCard); cmd.Parameters.AddWithValue(remark, remark ?? string.Empty); return cmd.ExecuteNonQuery() 0; } } } catch (MySqlException ex) { Console.WriteLine($插入租客失败: {ex.Message}); return false; } }用using包住连接和命令是必须的。MySqlConnection实现了 IDisposableusing块结束时无论是否发生异常连接都会归还给连接池。AddWithValue这个方法能自动推断参数类型但要注意它推断出的类型不一定对比如 C# 的 decimal 传进去有时会被当成字符串遇到金额字段时建议显式指定MySqlDbType.Decimal。事务是这个系统里绕不开的机制。房屋租赁里最重要的操作——签合同、收租、退租——都涉及至少两张表的变更。签合同至少要做四件事插入合同记录、把房间状态改成已出租、生成第一条租金账单、记录操作日志。这四件事如果只成功了一半数据就错乱了。事务的代码结构是这样的using var conn DbHelper.GetConnection(); conn.Open(); using var tran conn.BeginTransaction(); try { // 1. 插入合同 // 2. 更新 room 表状态为已出租 // 3. 插入第一条 bill // 4. 插入 operation_log tran.Commit(); // 全部成功才提交 } catch (Exception ex) { tran.Rollback(); // 任一失败全部回滚 Console.WriteLine(ex.Message); }注意BeginTransaction()之后的所有操作都要把cmd.Transaction属性指向这个事务对象否则命令不会参与事务。这是新手最容易漏的一步写好了事务但忘了给每条命令赋 Transaction 属性结果事务形同虚设。4. 房屋租赁核心业务模块房源、合同、账单与退租结算4.1 房源状态流转一个字段驱动界面显示房源管理是系统的入口模块。界面上通常是一个列表显示所有房间的房间号、面积、月租金、状态。状态这个字段的流转是整个房源模块的精髓。房间状态变化是典型的有限状态机空置的房间可以变成已预订或已出租已出租的房间只能等合同到期或退租后回到空置。把状态机的判断逻辑写在数据库存储过程里还是写在 C# 代码里我的经验是小系统写在 C# 里理由是可读性好出 bug 时用断点单步就能定位。存储过程虽然把逻辑封装在数据库里显得「更专业」但调试困难而且换一个数据库环境语法就要跟着变。查询房间列表并绑定到 DataGridView 的代码很常规private void LoadRoomList() { const string sql SELECT r.id, b.name AS building, r.room_no, r.area, r.rent_price, r.status FROM room r INNER JOIN building b ON r.building_id b.id ORDER BY b.id, r.room_no; using var conn DbHelper.GetConnection(); conn.Open(); using var da new MySqlDataAdapter(sql, conn); var table new DataTable(); da.Fill(table); dataGridView1.DataSource table; }这段 SQL 用了 INNER JOIN 把楼栋名称带出来界面上显示「3栋 502」而不是只有房间号这是体验上的关键优化。注意ORDER BY b.id, r.room_no用了两个排序条件先把楼栋排好再在楼栋内按房间号排。这个排序逻辑看起来很 trivial但如果不写Mysql 默认按主键排序界面上出来的顺序是乱的用户找房间会很痛苦。状态字段显示时不要直接展示数字。一个成熟的做法是界面加载时建立字典Dictionaryint, string把 0-4 映射成「空置 / 已预订 / 已出租 / 维修中 / 停用」然后给 DataGridView 加一列「状态文本」。4.2 合同模块签约时把房间与账单一起创建合同模块是这个系统里业务逻辑最重的地方。签一份合同表面上看只是插入一条记录实际上它必须同步完成三件事合同记录落库、房间状态改成已出租、生成第一期租金账单。这里有一个业务判断值得展开押金要不要在签约时生成账单我的做法是押金单独一笔账单状态为「已收」支付日期就是签约当天。因为押金在退租时要退还如果它只是合同上的一个数字、没有任何流水记录退租时财务就会跟租客扯皮。生成合同编号的函数是很多新手会忽略的细节private static string GenerateContractNo() { return HT DateTime.Now.ToString(yyyyMMddHHmmss) new Random().Next(100, 999); }严格来说生产环境不该用随机数做编号但这套系统里合同编号只有一个「唯一」的需求不要求防猜测。用时间戳加三位随机数已经能保证几乎不会重复而且业务人员看编号能直接看出签约时间。如果你有洁癖可以用数据库自增主键拼上日期但在单机管理系统中完全没有必要。签约操作里最需要小心的是房间已被他人预定的情况。两个操作员同时对一个房间签合同数据库层面的防御手段是给 room 的 status 加上条件更新const string sql UPDATE room SET status 2 WHERE id roomId AND status 0;这条 SQL 的意思是「只有当前状态是 0空置时才能改成 2已出租」。如果执行影响行数为 0说明房间已被别人先签了。这叫乐观锁比在 C# 里先 SELECT 再 UPDATE 靠谱得多因为两条命令之间总有个时间窗口另一个用户可能已经改了状态。4.3 退租结算一个事务算清押金与欠费退租是这个系统中最容易算错钱的模块。退租时租客可能还有未缴的租金、水电费可能需要扣除维修费押金可能全部退还也可能扣完。每一步都要落到账单表里最终形成一个清晰的结算单。退租的操作序列是这样的先查询当前合同的总欠费再统计水电费明细算应付金额最后把合同状态改成已退租、房间状态改成空置。我把这些操作全部放进一个事务并在最后写入一条带备注的「退租减免」账单const string sqlGetBill SELECT COALESCE(SUM(amount - paid), 0) FROM bill WHERE contract_id contractId AND status 0;其中 amount 是应收金额paid 是已收金额status0 表示未结清。COALESCE 函数处理了没有未结清账单时返回 NULL 的情况SUM 遇到 NULL 会变成 NULL界面上显示就会是空白而不是 0。不少初学者在这里吃过亏所以这个处理提前写出来。退租时还有一个常见业务水电费是按「月末结算」来的但租客可能是 15 号退租。此时要用实际居住天数按比例折算。这个计算涉及的变量较多建议不要写在 SQL 里而是先在 C# 中把数字算好再用参数化的 UPDATE 或 INSERT 写库。SQL 里做复杂业务计算会严重拖慢开发速度而且不好单测。事务提交后界面上弹出一个结算单窗体列出每笔款项明细和最终合计。这个窗体本身不写数据库只负责显示数据来源是退租事务里已经更新过的账单表。这种「先落库、再展示」的顺序可以避免界面关闭后数据不一致的问题。5. C# 连接 Mysql 的 4 个真实踩坑记录与排查方法5.1 MySQL 8 的 SSL 连接错误与 caching_sha2_password现象项目代码在本地连接 Mysql 8 时抛出Authentication method caching_sha2_password not supported或者在日志里看到 SSL 连接相关的异常程序无法正常打开数据库连接。原因MySQL 8 默认安装了caching_sha2_password认证插件而你的连接驱动版本较老不认识这个插件。同时 MySQL 8 默认开启了 SSL 连接但开发环境的服务端证书可能是自签名的驱动不信任它就会直接中断握手。解决方式第一种是修改连接字符串把认证方式强制走旧协议。在连接串里加SslModeNone;AllowPublicKeyRetrievalTrue。这个组合能解决九成开发环境下的连接问题。第二种更彻底把用户的认证插件改成 mysql_native_passwordALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密码; FLUSH PRIVILEGES;两种方式哪种更好如果是自己开发机省事选改连接串如果是给别人部署的生产库建议保持caching_sha2_password不变因为它是默认的、安全性更好只要连接驱动更新到 8.0.13 以上就能正常识别。5.2 中文乱码与问号字符集统一问题现象C# 端向 Mysql 插入「张伟」后查询显示????或者代码里查出来正常但 Navicat 里看是乱码两边不一致。原因连接字符串、数据库、表三处字符集不一致。比如数据库是 utf8mb4但连接字符串里没写 Charsetutf8mb4驱动默认用 latin1 跟服务端交互那中文必然丢失。反过来表和库用了老旧的 utf8而连接串指定了 utf8mb4也会出现部分生僻字存不进去的情况。解决一次性把三处统一。建库时如前面所示指定 utf8mb4每张表在建表时用DEFAULT CHARSETutf8mb4连接字符串加上Charsetutf8mb4。改完别忘重启 C# 应用连接池里的旧连接不会自动刷新字符集。5.3 DateTime 差 8 小时时区与驱动转换现象C# 里 DateTime.Now 存进数据库查询出来少了 8 小时。或者反过来从数据库读出来的时间是错的在界面显示时日期对不上。原因Connector/NET 在写入 DateTime 时默认会把 C# 的 Local DateTime 转成 UTC 再存入而服务器端的 time_zone 是东八区等于写入时就减了 8 小时。读取时又会做一次反向转换。如果你在 C# 里用的是 DateTime 而不是 DateTimeOffset这种隐式转换最容易出问题。解决连接字符串里显式指定ConnectionTimeZoneLocal并且在业务代码中给 DateTime 字段统一使用无 Kind 的本地时间。如果项目里既有本地部署又有服务器部署建议数据库时区、服务器时区、连接串时区三者全部统一成08:00不要依赖系统默认值。5.4 并发操作导致的死锁与资源占用现象系统上线后在签合同高峰期偶尔出现某个操作长时间无响应数据库 CPU 飙高错误日志里有Deadlock found when trying to get lock。原因多个线程同时操作 contract 表和 room 表且加锁顺序不一致。比如线程 A 先更新 room 再插入 contract线程 B 先插入 contract 再更新 room两个事务各自持有对方下一步要用的锁就死锁了。Mysql 的 InnoDB 会自动检测死锁并回滚其中一个事务但你的 C# 代码如果没有捕获到这个异常用户看到的就是「卡死」。解决第一所有事务里操作表的顺序保持一致先操作 room 再操作 contract这样不会互相等锁。第二C# 侧要捕获MySqlException并且判断ex.Number 1213死锁错误码捕获后自动重试一次。重试逻辑写 3 次就够因为死锁在 99% 的情况下重试一次就能成功。6. 从「能跑」到「好用」统计报表、权限与交付打包6.1 用 GROUP BY 和 DATE_FORMAT 做租金统计房屋租赁系统除了录入数据还要能回答一个问题这个月收了多少钱这种统计查询是 Mysql 的强项但新手常犯的错是把所有账单都拉到 C# 内存里再循环相加。数据量小无所谓数据量一上来程序启动越来越慢。推荐做法是把统计逻辑留在 SQL 里C# 端只接最终结果SELECT DATE_FORMAT(pay_time, %Y-%m) AS month, COUNT(*) AS bill_count, SUM(amount) AS total_amount FROM bill WHERE status 1 -- 已支付 AND pay_time DATE_FORMAT(NOW(), %Y-01-01) GROUP BY DATE_FORMAT(pay_time, %Y-%m) ORDER BY month;这段 SQL 把今年每个月的已收账单汇聚成一条记录界面端只需要把结果绑定到 Chart 控件。DATE_FORMAT(pay_time, %Y-%m)是 Mysql 把时间格式化成「年月」的标准写法。这里要注意用别名 month 做 ORDER BY 是可以的但 GROUP BY 必须写完整表达式不能直接写别名。6.2 用户权限与操作日志的轻量做法这个系统如果只给一个人用权限模块可以省。但只要部署到中介门店里就必须区分「管理员」和「店员」两种角色。最简单的实现是 user 表加 role 字段登录后用角色名控制按钮的 Visible 属性。操作日志表里可以只存四列操作员、操作类型、操作描述、时间。C# 端在 InsertTenant、签署合同、退租结算这些关键方法里各加一行写日志的调用。不需要把日志做得像审计系统那么复杂真正出事时能查到「谁在什么时候退掉了哪间房」就够了。6.3 交付给别人的清单初始化脚本与发布文件夹项目做完要交付或要复制到另一台电脑上演示时提前准备好两样东西能少很多麻烦。第一是数据库初始化脚本包含建库、建表、插入初始数据的完整 SQL 文件。第二是发布文件夹用 Visual Studio 的发布功能生成 Release 版本把 MySqlConnector.dll 一起拷进去——新手经常忘了带这个 dll换一台机器就报「未能加载文件或程序集」。连接字符串不要留在发布包里用 App.config 里的配置文件管理部署时改配置文件即可。我做过不少这类系统最大的一个教训是永远不要相信「明天上线前再补表设计」。数据模型是一套房子的地基而后面的 C# 代码只是装修。地基歪一寸装修就要歪一尺。每次动手写业务功能之前先把表的字段、状态值、索引列在纸上过一遍能少改很多界面逻辑。这套 C# Mysql 的组合虽然称不上新潮但它足够稳顺着上面这几条路径做下去一个能演示、能答辩、能真正录入数据的房屋租赁管理系统两周左右就能立起来。希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

大白菜叶片病害图像识别实战:从2800张标注数据到YOLOv8训练 2026/10/1 5:17:37

大白菜叶片病害图像识别实战:从2800张标注数据到YOLOv8训练

简介:这份数据集面向深度学习图像分类任务,聚焦大白菜叶片上背蛾、潜叶虫、霉菌三类常见病害的识别,覆盖了农业场景中容易混淆的叶部病害类型,可直接用于植保相关的图像识别研究。包内共2000个文件,其中主体为1998张已…

阅读更多 →
Linux下Eigen、OSQP与OSQP-Eigen安装指南:CMake链接避坑实战 2026/10/1 5:17:36

Linux下Eigen、OSQP与OSQP-Eigen安装指南:CMake链接避坑实战

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

阅读更多 →
从零手搓AI工程:手写神经网络与工程化实践指南 2026/10/1 5:17:35

从零手搓AI工程:手写神经网络与工程化实践指南

1. 从零手搓AI工程:为什么我不建议你直接调包第一次看到ai-engineering-from-scratch这个项目名的时候,我脑子里蹦出来的画面是:一个人坐在终端前,从矩阵乘法开始,一行一行把神经网络敲出来,中间还要自己写…

阅读更多 →
AgentScope 2.0实战:多智能体框架、RAG服务化与Java集成指南 2026/10/1 5:17:29

AgentScope 2.0实战:多智能体框架、RAG服务化与Java集成指南

如果你最近在关注多智能体(Multi-Agent)开发,肯定绕不开AgentScope这个名字。我第一次在社区刷到这个项目的时候,心里想的是:哦,又一个包装大模型的框架,跟那几十个套壳开源项目估计没啥区别。直…

阅读更多 →
.NET 10 + WinForm 实战:从零构建LOL助手核心骨架与关键模块 2026/10/1 5:17:29

.NET 10 + WinForm 实战:从零构建LOL助手核心骨架与关键模块

1. 从零拆解一个桌面端游戏辅助工具的核心骨架1.1 这个项目到底在做什么“.net10winform制作LOL助手二”这个标题,核心信息量其实很密集。拆开来看,技术栈锁定在.NET 10加WinForm,目标产物是一个LOL助手,而那个“二”字说明这是系…

阅读更多 →
基于Python机器学习的网络入侵检测:NSL-KDD预处理与实时部署 2026/10/1 5:17:29

基于Python机器学习的网络入侵检测:NSL-KDD预处理与实时部署

简介:这是一套基于 Python 机器学习的网络入侵检测系统源码,适用于高校信息安全、网络工程、计算机等相关专业的课程设计与期末大作业。项目在导师指导下完成并获得97分,完整包含数据加载、特征处理、模型构建、训练评估等环节,基…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉