OO第三单元博客作业

OO第三单元博客作业

一、设计

第一次作业:
  • 分别实现官方Person和Network接口,由于规定好了id,因此采用HashMap存储所有的Person信息。
  • 由于query_circle方法无法通过JML中规定的内容实现,与是新增了一个ArrayList> links结构用于存储相关信息。其中Integer为Personid,每个内层ArrayList为一个circle,外层ArrayList存储所有人的link信息。
第二次作业:
  • 在上一次的基础上新增了Group,以及一系列与Group相关的增改查方法。
  • Group也使用HashMap实现。
第三次作业
  • 为Person添加了Money属性,并且添加了一些删查改方法。
  • 其中较难实现的是query_min_pathquery_strong_linked方法,需要更改之前的数据结构。选择采用邻接矩阵代替之前的ArrayList> links结构,来存储path信息。根据弗洛伊德算法得到相应的数据,每次增删改时,都更新矩阵。

第三次作业数据结构
OO第三单元博客作业_第1张图片

二、测试

  • 这三次作业,都没有很好地构建测试用例,简单测一测就提交了。从而导致写出的代码要么有bug,要么性能差,强测分数都很低。

三、bug修复情况

  • 由于测试不充分的缘故,也导致修复bug比较困难,对于发现的bug,仅在强测之前修复了数个bug,其余bug要么无法定位,要么无从改起。

四、总结

  • 本单元的作业与其他几次相比,更像是Java数据结构而非面向对象设计,写代码需要的时间并不多,重点和难点都在测试上面,也充分暴露了自己不擅长测试与debug的缺点。今后将注重这方面的能力。

你可能感兴趣的:(OO第三单元博客作业)