暑期学期总结博客作业

暑期学期总结博客作业

(1)对于当时没通过的每次作业,描述当时遇到的困难和无法完成的原因;
(2)现在补的每次作业,有哪些针对性的改进,包括设计、算法和难点的处理等;
(3)通过补给站的讲解,有哪些新的收获和进步。
(4)对补给站组织形式有哪些建议。
(5)心得体会。

一、遇到的困难

第一单元

即便是课程结束之后回过头来看,对我来说第一单元仍然是最难的一个单元。难点主要包括:

  • 正则表达式
  • 因子、项与表达式的嵌套
  • 递归求导

由于不是很熟悉正则表达式,再加上嵌套和递归的逻辑实在有些复杂,所以没能完成。

第二单元

重点主要在于多线程,但实际上的难点在于调度器的设计,只要理清电梯运行的逻辑,也就迎刃而解。

第四单元

难点在于对于已有UML元素类的包装,从面向对象的观点建立各个元素之间的联系,使得其增删改查能够高效。类和接口的继承涉及到树的遍历。

二、设计与实现

第一单元

设计
通过正则表达式的各种处理方法将输入采用工厂模式,生成各类不同的因子、项、表达式,再进行求导、化简等操作。

实现
实际的实现过程中,在正则表达式的处理部分就遇到了巨大的阻力。由于对于正则表达式的一些常用类与方法没有一个大概认知,有许多用一个方法就能解决的问题,硬是手动造轮子,使用了大量的循环与if-else枚举,不仅增大了工作量,出现问题后也无从解决,最终没能顺利完成。

第二单元

设计
每个电梯只负责接送乘客,不涉及Request层面的操作,将Request解析为具体的工作的任务由调度器负责,输入类则负责将读取的Request发给调度器以及判断何时结束读入。

实现

  • 电梯类:仅包含电梯的基本属性以及方法。
  • 调度器类:按要求启动电梯类、读取Request、处理Request、为每个电梯分配任务、判断何时该停止电梯运作。
  • 输入类:读入Request、判断何时该停止读入。
  • 主类:启动调度器类和输入类。

第四单元

设计
主要任务就是将读入的各个UMLElement的零散信息“拼凑”起来,将其组织成便于操作的类似树状的数据结构。

实现
针对类图,构建了由级别划分的结构,如:UMLClass属于级别1;UMLOperation隶属于UMLClass,属于级别2;UMLParamter隶属于UMLOperation,属于级别三。通过封装,将各个element耦合起来。
顺序图与状态图的逻辑比较简单,只要注意一些细节即可。
各个检测规则实际上可以看作基于构建好的结构进行的查询操作,只要前面的结构构建的合理,这一步骤实际没什么工作量。

三、收获和进步

针对我的讲解,荣老师从面向对象的角度出发,为我指出了代码的一些问题,比如没有充分利用多态的特性对不同的子类进行处理;对于一些不够完善的设计或是理解出现偏差时,诸老师则给我提出许多非常有启发性的意见,矫正对题意的理解。

四、建议

在每次作业开始之前,可以开展一个小型的讨论,针对每位同学之前出现了什么问题导致作业没能很好地完成,同学之间互相讨论,取长补短,或是由老师解答,也许能够起到更好的效果。

五、心得

最后,衷心地感谢每位老师与助教,在暑期抽出大量的时间与精力帮助我们能够真正学懂这门课程。在这里,尤其要感谢诸老师,对于我提出的每个问题,诸老师都能耐心、准确地回复我,而且并不是直接告诉我该如何解决,而是慢慢地启发我,自己找到合适的解决方式。

posted @ 2020-08-21 23:40  Jero123  阅读(218)  评论(0编辑  收藏  举报