OO-Unit4 个人感想与收获 22230612-杭洋

杭洋-22230612 学生 2024-06-16 16:29:27

正向建模与开发

正向建模就是”先设计,再代码“的思想,也就是先设计好整个程序的架构以及各个类之间的关系,然后逐步地取实现代码。这是一种在实际操作当中常用的开发手段,主要面向规模庞大的代码体系。

 

img

本单元的架构设计

  • 从整体的架构上,我尽可能地抽出了很多概念的共同性质,然后使用同样的类取表现它。目的是让整个架构更见简洁的同时可维护。主要的抽象概念如下:
      - 书架:我使用了Shelf<T>-SubShelf<T>的结构,用于抽象用户持有书籍、书架和图书馆的几个功能模块的概念。由于各个概念有着自己不同的额外信息需求,比如用户需要知道某本借书的时间,书架需要知道借书的本数,漂流角需要知道某本借书的次数,于是我使用泛型<T>来表示需要额外记录的信息。这也是我第一次自定义泛型容器。
      - 书本:由于记录的书本有两种,除了记录书本本身的信息以外,可能还会拓展心的内容<T>,所以将书本换做本身Book和数目BookItemShelf<T>两个部分记录。
  • 为了使代码尽量发挥面向对象语言的优势而不是显得面向过程,我在输入处理的时候确定了将同一本书一定要对应某一个确定的对象的想法。这让我在输入的时候用parseBookparseUser两个函数将书本和用户从抽象的描述信息直接对应到一个确定的对象,大大方便了后续的处理。
  • 最终的代码设计和自己最初的架构设计是比较吻合的,这体现出了正向建模的优势。

四个单元中架构设计思维的演进

在四个单元当中我的感受是循序渐进的。

  • 在第一单元当中,我感受到了递归下降法的魅力。当时主要的架构设计思路停留在分阶段处理当中,尤其是在递归下降的部分,代码之间是高度耦合的,所以在整体的设计上是模块化的思想。
  • 在第二单元当中,我体会到了多线程编程的新方法。多线程编程相对于单个程序的编程当中具有更多的新的特性,尤其是同步,特别考验个人的代码能力。我觉得在以后的编程当中,这一部分也是非常重要的。
  • 在第三单元当中,我使用了lazy标记等方法,让设计架构兼顾了性能。同时,类似PL的形式化描述让我看到了一些代码的新的可能。在其他场合与其他优秀高校的同学进行交流的过程当中,我感受到JML这一个小众的形式虽然看起来在科研当中主要的作用并不属于OO这一块(这也是我开发过程当中的疑惑),但是课程组的引入无比适合。
  • 在第四单元当中,我根据正向建模的要求,尝试先设计好架构再进行实现。这一点非常关键,让我的代码在增量开发的过程当中几乎没有做过结构上的改动,同时每一次的

四个单元中测试思维的演进

测试的主要思路是根据题目的要求构造具有特点的数据点,然后针对测试点进行提交。同时,感谢室友大佬yyg同学和他的评测机,在debug过程当中帮助了我很多很多!(鞠躬):)

课程收获

在面向对象的课程当中,我收获颇丰。我最大的感受是,这一门课并非只是一门面向代码-开发的课程,而更多的是教会我们开发的架构设计的智慧。至少有了oo课程的学习之后,我在acm竞赛等场合不再害怕规模庞大复杂的模拟题,为我的队伍在今后的区域赛当中攻克高码量题目提供了更低的门槛和更高的机会。同时,oo课程的设计思路至少开拓了我的眼界,让我觉得这一部分所体现出的设计思想是在今后很多方面的工作当中都适用的。

...全文
59 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕“基于改进秃鹰算法的微电网群经济优化调度”展开研究,利用Matlab代码实现优化算法的仿真与复现。研究重点在于通过改进的秃鹰搜索算法(Bald Eagle Search Algorithm, BESA)解决微电网群在运行过程中的经济调度问题,提升算法的收敛速度与全局寻优能力,以实现对分布式能源、储能系统及负荷的高效协调管理。文中详细阐述了微电网群的系统架构、数学建模过程、目标函数设计(如运行成本最小化、碳排放降低等),并结合智能优化算法进行求解,验证了改进算法相较于传统方法在调度精度和效率方面的优越性。同时,研究还探讨了算法在多场景下的适应性,为微电网群的智能化、低碳化运行提供了技术支持与实践参考。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事微电网、智能优化算法相关工作的工程技术人员。; 使用场景及目标:① 学习并掌握改进秃鹰算法在复杂优化问题中的应用方法;② 实现微电网群经济调度模型的构建与求解;③ 对比不同智能算法在电力系统优化中的性能表现;④ 为科研论文复现、课题研究或工程项目提供算法支持与代码参考。; 阅读建议:建议读者结合文中提供的Matlab代码逐模块分析,重点关注算法改进策略与调度模型的耦合实现方式,同时可尝试在不同参数设置或场景条件下进行仿真实验,以加深对算法性能与调度效果的理解。
内容概要:本文围绕多旋翼无人机姿态估计算法的开发与性能评估展开系统性研究,重点对比了线性与非线性滤波算法在复杂飞行环境下的表现。通过构建基于扩展卡尔曼滤波(EKF)、无迹卡尔曼滤波(UKF)等先进算法的姿态估计器,融合IMU、磁力计、视觉传感器等多源数据,有效提升了姿态解算的精度与鲁棒性。研究涵盖了静态悬停、高速机动及磁干扰等多种典型飞行场景,利用MATLAB/Simulink平台完成仿真实验,并结合实测飞行数据与VICON高精度运动捕捉系统提供的真值进行定量分析。结果表明,非线性滤波器在动态工况下具有显著优势,尤其在抑制漂移和抵抗外部干扰方面优于传统线性方法。文章还提出了传感器融合、自适应建模、冗余配置等一系列降低偏差影响的技术路径,为高可靠性无人机导航系统的设计提供了理论依据与实践指导。; 适合人群:具备控制理论、信号处理及状态估计基础知识,从事无人机导航、控制算法研发或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于开发高精度无人机姿态解算模块;②为多传感器融合算法的设计、实现与验证提供参考案例;③服务于复杂环境下无人系统状态估计的教学演示与科研攻关; 阅读建议:建议结合文中所述MATLAB/Simulink仿真模型与实测数据集进行复现与调试,重点关注EKF与UKF的数学推导、实现细节及关键参数调优过程,深入理解非线性系统建模、状态估计与工程实际之间的平衡与折衷。

301

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象设计与构造
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧