第二次blog(航空运货管理系统)

前言
刚开始做题目集 8 和 9 的时候,我真的感觉好难啊!题目集 8 要写客户、货物、航班这些类,里面的运算什么的我不知道该怎么写,只能照着公式写一点改一点,之后放在IDEA里面进行测试慢慢改。题目集 9 更复杂,要加订单、支付方式,还要用什么枚举类型,我一开始完全不知道怎么下手,光是看题目要求就花了好久。不过做完这两个题目集后,我发现自己好像对 Java 的 “套路” 有点感觉了,虽然代码还是有点乱,但至少能跑起来了!
题目集8
对于题目集8,我感觉就是给题目集9构建一个小模版,小框架,这里我写了四个类:
TransportEntity:一个抽象的基类,里面有 ID 和名称,其他类都从这里 “继承”。
Client:客户类,继承了基类,加了电话和地址。
Cargo:货物类,算计费重量的时候,要比较实际重量和体积重量,取大的那个。
Flight:航班类,要检查能不能装下货物,不能超载。

第八题我就通过了一个测试点

这个是输入样例
10001
郭靖
13807911234
南昌航空大学
2
101
发电机
80
60
40
80
102
信号发生器
55
70
60
45
MU1234
昌北国际机场
大兴国际机场
2025-04-22
1000
900001
2025-04-22
南昌大学
洪七公
18907912325
北京大学
黄药师
13607912546

这个是老师给的输出

下面是我的输出

感觉是一样的,但是就是找不出错在那里了,我感觉应该是格式错误。

下面是类图和source monitor生成的图


题目集9
题目集九就是一个对于题目集8的优化和生成过程。
增加了PaymentMethod 支付方法里面包括微信,支付宝,还有现金支付。还有对于特殊用户的特殊打折数额。
我一开始不知道怎么用枚举来算运费,想了好久才明白可以在枚举里写方法,不同类型的货物直接返回对应的费率。

输入样例为
Corporate
10001
郭靖
13807911234
南昌航空大学
Expedite
2
101
发电机
80
60
40
80
102
信号发生器
55
70
60
45
MU1234
昌北国际机场
大兴国际机场
2025-04-22
1000
900001
2025-04-22
南昌大学
洪七公
18907912325
北京大学
黄药师
13607912546
ALiPay
下面是我在idea里面的运行结果

下面是下面是类图和source monitor生成的图


小进步
虽然过程很痛苦,但写完后发现代码比题目集 8 更 “高级” 了,能用枚举管理状态,用订单类整合所有信息,感觉自己好像真的有一点点会了点东西。
踩坑心得
数值计算一定要仔细:单位、公式、小数点,每一步都要核对,不然一个小错误能让程序 “崩” 得很离谱。
逻辑顺序很重要:先检查条件再操作,比如先判断航班能不能装货,再添加重量,不然数据会出错。
输出格式要提前规划:一开始写代码的时候就要想清楚怎么排版,不然最后改格式会很麻烦。
总结
做完这两个题目集,我最大的感受就是:面向对象编程真的需要多练!从一开始只会写简单的类,到后来能整合多个类、用枚举和策略模式,每一步都是靠 “试错” 堆出来的。虽然现在代码还有很多问题,比如异常处理没写、输入校验不严格,但我知道自己已经迈出了第一小步了。虽然做这两个题目集的时候经常想 “我是不是不适合编程”,但看到程序最后能正确输出结果,还是很有成就感的!感觉编程就像拼积木,每个类、每个方法都是一块积木,只要耐心拼,总能拼出想要的样子。

posted @ 2025-05-21 17:22  王鹏鹏飞  阅读(21)  评论(0)    收藏  举报