2025 oopre 课程总结

蒋泽滨-24373527 蒋泽滨-24373527 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

1、最终作业的架构

1.1、架构总览

核心游戏接口和类

类/接口功能
Adventurer代表游戏中的冒险者,包含属性如ID、名称、体力、攻击力、防御力等
ItemManger基类,代表所有物品,包括药水瓶Bottle和装备Equipment,包含属性有ID、是否被携带
Bottle药水瓶基类,具体子类包括HpBottle(生命药水瓶类)、AtkBottle(攻击药水瓶类)、DefBottle(防御药水瓶类)、ManaBottle(魔法药水瓶类)
Equipment装备类,有CE属性
Armour护甲类
Weapon武器类,具体子类包括Magicbook(魔法书类),Sword(刀剑类)
Spell法术类,具体子类包括HealSpell(治疗法术类),AttackSpell(攻击法术类)
lexer

读取嵌套输入,用于词法解析的类

InputManage输入管理类,用于解析用户输入并调用相应的命令处理类
Factory工厂类,用于创建不同类型的物品(工厂模式)
MainClass

游戏入口类,读取用户输入并启动主循环

EmployeeManger接口,具体实现的类有Adventurer类,用于处理雇佣关系

Obersvable

接口,具体实现的类有Adventurer类,用于通知下级自身的状态(观察者模式)

Package背包类,用来管理携带的物品
RelationChecker具体实现的类有Adventurer类,用来判断冒险者间的关系
UseMethod接口,具体实现的类有四个药水瓶类以及两个法术类,用来使用药水或法术

1.2、架构迭代过程

  1. 第二次作业:第一次接触面向对象,整理出了三个类以及各自属性。
  2. 第三次作业:抽象出了UseMethod接口,增添了几个子类。重构了程序入口,增加了InputManger专门处理指令,降低MainTest类的行数,整理出程序主循环。
  3. 第五次作业:增添了ItemManger统一管理物品,实现了背包功能,并内聚在冒险者类里面,同时对不少类进行了重构,对方法进行了封装,同时初步尝试了工厂模式。
  4. 第六次作业:观察者模式的一次实践,架构没有什么变化。
  5. 第七次作业:新增文法词法输入解析,架构没变化

 2、代码测试与JUnit的使用

JUnit显而易见是为了更方便的测试一个类自己有没有问题,并且最好覆盖更多的分支,但是随着代码迭代次数增多,分支数量也是不断暴涨,由于偷懒故仅覆盖了部分分支,全当是完成任务了(悲),虽然很清楚JUnit的精髓确实是断言assert判断真假,但是最后JUnit成为了我用来过评测率的一个负担了,连debug都是靠文件输出的对拍来找的。最后一节课上老师说大厂们特别看重“自动化”这个东西,也就是你必须得实现自动化的评测,那么对于人工对比结果来说明显是不符合要求的,那么你就需要assert语句来判断是否正确,并且覆盖面要广,而不单单仅是满足课程覆盖率的要求。(注:本人最后一次作业juit中branch覆盖率仅有60.5%,刚好卡着课程60%的要求过的)

其实真的是没有时间去写JUnit吗,并非,只是看到那么多情况和类偷懒了,只选取主要的分支进行了测试,这也导致其中一次强测未考虑全面仅得了80分。

最后,还有一个问题,可能是因为最开始未做好规划,导致不少地方出现了对同一个分支,同一个方法进行重复测试的情况,导致测试代码写了很多行,但是覆盖率就是上不去,虽然后面意识到了这个问题,但也不想重构进行修改。

综上,JUnit确实一个很好用的东西,但是也是要用心花时间的,并且应该有规划的去测试,才能提高效率。

3、OOPre的心得体会

在OOPre上我第一次接触了面向对象的编程方式,由于大一只学过C语言(绝对的面向过程的语言),没有一点java编程的经验,导致刚开始学还是比较吃力的,但是学到后面就发现其实面向对象的编程很简单,核心就在与封装这一点,并且这种编码方式的可读性很好,就算是几千行的代码感觉也读得进去(C语言几百行的我都看不过来)。同时在课上我还学会了各种设计模式,多态和继承等优化代码的小技巧,感觉还是学有所获的。

4、一些对于OOPre课程的建议

本人拙见。谨供课程组参考一下:

1.把每次报错时测评机的输出调整为标准输出,不明白为什么要提供我们自己的输出,这个我们不是可以自己导入输出从而得到的吗

2.从java基础开始讲起,照顾一下没有java编程经验的人

 

 

...全文

相关推荐

蓄电池储能并网发电系统充放电+网侧变流器PQ控制【仿真+参考文献】

内容概要:本文针对含分布式电源的配电网在多线路故障情况下的恢复问题,提出了一种将网络重构、孤岛划分与检修进度统一纳入多时段优化框架的故障恢复模型。该模型以最小化网损和甩负荷惩罚为目标,综合考虑节点功率守恒、支路潮流、电压与容量限制、二阶锥松弛以及拓扑连通性等约束条件,通过引入虚拟流方法保证各供电片区的内部连通,并借助大常数松弛处理断开支路,实现了故障后逐时段的最优恢复方案制定。模型在IEEE33节点系统上进行了仿真验证,展示了各时段的网络拓扑变化、节点电压分布及负荷恢复情况,证明了其在提升系统韧性方面的有效性。同时,文章还对现有模型在负荷分级、无功处理、辐射状结构描述等方面的不足提出了改进建议。; 适合人群:电力系统自动化、智能电网及相关专业的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究配电网在极端事件下的弹性恢复能力;②设计含分布式电源的主动配电网故障后网络重构与孤岛运行协同策略;③优化多时段故障恢复过程中开关操作序列与负荷恢复优先级;④为学术论文撰写或工程项目提供理论基础和技术参考。; 阅读建议:此资源以数学规划方法为核心,侧重于建模思想与实现细节,读者应结合文中列出的参考文献深入理解虚拟流、二阶锥松弛等关键技术的应用背景,并通过复现仿真案例来掌握模型的具体构建与求解流程,进而针对实际需求进行扩展和完善。

梦想科研社_研学

SpringBoot2.7 脚手架配套 Cursor Skill 开发包

# SpringBoot2.7 脚手架配套 Cursor Skill 开发包 > 技术栈:SpringBoot 2.7 + JDK8 + MyBatis-Plus + Sa-Token + Redis > 兼顾 **Java AI编程和个人学习 ** 和 **日常工作后台开发** > 推荐模型:GPT-4o / Claude;小模型遵守编码规范效果较差 ## 简介 这是一套配套统一编码规范的 Cursor Skill 工具集,搭配 `.cursorrules` 约束AI输出,保证生成代码的包结构、命名风格、返回体、参数校验规则全程统一,不会出现代码风格割裂混乱。 不管你是**做Java AI编程和个人学习 **,还是日常后端工作开发后台管理系统,都可以快速生成大量样板代码,告别重复抄写CRUD、工具类、配置类的枯燥工作,节省大量开发时间: - 毕设场景:快速搭建系统原型,把重心放在业务设计、功能调试、论文撰写上,答辩代码工整规范,加分明显 - 工作开发场景:新项目脚手架打底,统一团队基础编码风格,减少样板代码重复开发 > 重要声明:本资料为**学习演示样板代码**,仅用于个人学、练习开发、日常工作后台开发;不支持七天无理由退款;AI生成代码务必人工复核后再投入使用;不提供毕设代写服务;商用请购买商用授权版本。

qq_34156731

无刷直流电机(BLDCM)转速电流双闭环控制、三相桥式星型全控电机研究(Simulink仿真实现)

内容概要:本文围绕无刷直流电机(BLDCM)的转速电流双闭环控制系统展开深入研究,重点基于三相桥式星型全控电路结构,利用Simulink进行高精度建模仿真。研究系统性地对比了模糊PID、传统PID以及模糊神经网络PID等多种先进控制策略在BLDCM调速系统中的动态响应性能、抗干扰能力与运行稳定性,旨在提升电机控制系统的精度、鲁棒性与自适应能力。文中详细构建了双闭环控制架构,其中速度环负责调节电机转速至设定值,电流环实时监控并控制相电流,二者协同工作实现对电机运行状态的精确、快速调控。该仿真研究不仅适用于电机控制算法的设计与验证,也为相关领域的工程实践提供了可靠的理论支持和技术参考。; 适合人群:电气工程、自动化、机电一体化、控制科学与工程等相关专业的高校本科生、研究生,以及从事电机驱动系统、电力电子与运动控制领域研发工作的工程技术人员。; 使用场景及目标:①用于高校课程教学、实验设计及毕业课题研究,帮助学生深入理解无刷直流电机控制原理;②为工业伺服系统、电动汽车驱动、无人机动力系统、家用电器变频控制等应用场景中的高性能电机控制方案提供仿真验证与优化设计依据;③对比分析模糊控制、神经网络与传统PID在非线性系统中的控制效果,辅助科研人员进行智能控制算法的选型、改进与创新研究。; 阅读建议:建议读者结合Simulink仿真模型与技术文档进行同步学习与操作,重点关注控制器参数整定方法、双闭环结构设计逻辑及仿真结果的动态性能分析;鼓励读者尝试修改控制策略与参数,观察系统响应变化,有条件者可进一步将仿真结果与实物实验平台对比,以深化对电机控制理论的理解并提升工程实践能力。

天天程序猿

Windows 单文件屏幕标注工具:270KB 绿色 exe,适配电网内网离线终端(含鼠标穿透模式踩坑全记录)

电力/工控内网桌面工具开发者、班组技术支持、需要在隔离终端做技术交底与画面讲解的工程人员

vipcompany

科技中介服务机构在技术需求挖掘时,如何提升需求识别的准确性和服务响应的时效性?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论
收藏 已收藏
分享
返回顶部