一、Java 课:仓储管理系统完成

今天 Java 课的主要任务,是把仓储管理系统原型系统收尾。

这个题目来自 2026 级《JAVA 语言程序设计》课前测试试卷,用的方法是“大道至简——编程思维:三次分解”。技术栈是 Java SE 8+,控制台程序,没有第三方依赖。

完成的内容大致包括:

主类 WarehouseSystem,负责跟用户交互和全部业务逻辑;

数据类 Material、Warehouse、StockBill,分别对应物资台账、仓库、出入库单据;

用四个数组加计数器来存多仓库、多物资、多单据;

主界面、仓库设立、物资台账设立、入库作业、出库作业、信息查询这些功能都写完了;

把重复动作抽成公共方法,比如 inputByRegex、judgeMaterial、judgeWarehouse、calcStock、genBillNo;

单据编码按“年月日 + 4 位流水号”自动生成,不能手工录入;

测试部分把功能 1 到功能 5 都跑了一遍,包括编码唯一校验、库存校验、分类汇总、入库单和出库单列表。

另外,链接里的页面管理也完成了。虽然和控制台程序不是一回事,但都属于今天 Java 课上的任务,算是两头都收了尾。

二、三次分解回顾

这个系统是按“三次分解”做的,回头再看一遍,思路比较清楚。

第一次分解:数据和执行分开。

数据类负责记录:

Material:一条物资台账记录,7 个变量;

Warehouse:一个仓库,2 个变量;

StockBill:一张入库单或出库单,6 个变量。

执行类就一个主类,含 main(),负责交互和业务逻辑。

第二次分解:重复动作抽成公共方法。

先解决数据放哪:仓库数组、物资数组、单据数组,再加三个计数器和一个流水号。

再按用户能看到的界面拆方法:

mainFrame():主界面;

setupWarehouse():仓库设立;

setupMaterial():物资台账设立;

inStock():入库作业;

outStock():出库作业;

queryFrame():信息查询。

最后把反复出现的动作抽出来:

按正则录入;

判断物资是否存在;

判断仓库是否存在;

算库存;

生成单据编码。

第三次分解:把每个方法内部再拆细。

:先录物资编码,判断存在;再录仓库编号,判断存在;然后录入库数量和日期;系统生成单据编码;显示确认信息;Y 保存,N 忽略。

出库作业多一步库存校验,出库数量不能超过当前库存。

查询界面分四类:按物资编码查库存、按分类汇总库存、入库单信息、出库单信息。

三、其他课程

数据库原理和离散数学今天也上了。

数据库原理继续跟课,有些概念和操作需要课后自己再捋一遍。离散数学也是,课上听是一回事,课下不复习就容易模糊。两门课都得抽时间整理笔记,不能只靠课堂。

四、运动与天气

下课去打球训练。

本来运动是放松,结果下雨,负重前行,心情有点可悲。不过训练还是练了,出出汗,总比一直坐着强。雨天来回折腾确实累,回头注意别感冒。

五、今日小结

Java 课把仓储管理系统和页面管理都完成了,算是今天最大的进展。

三次分解的思路很实用:先分数据和执行,再抽公共方法,最后细化每个流程。

数据库和离散数学需要课后复习,不能堆着。

下雨天训练确实可悲,但没摆烂,还行。

六、明天计划

复习数据库原理和离散数学的笔记。

把仓储管理系统的文档和代码再核对一遍,重点看变量名、方法名有没有笔误。

页面管理那边如果有后续要求,继续跟进。

继续天天打卡一小时,有空再运动。