oo第一单元总结

OO第一单元总结

 

能力有限,仅完成第一次作业

 

一、程序结构

1. 方法度量

 

2. 类度量

 

3. UML图

 

4. 说明

本次作业中,根据已知文法,表达式均可以由项生成,而项都可以由因子生成,考虑到层次关系,我运用了Polynominal和Item两个类来维护(后期才考虑到可以再增加一个Factor类使层次更加清晰)。

  • Item类

    匹配方法 matchString :进行分类匹配,并由此初始化项的系数(val)和指数(power)

    计算方法 add mul :对项进行加减法、乘法运算

    求导方法 derivation :对项进行求导运算

  • Polynominal类

    预处理方法 pretreatment :去掉/t、空格,将** 替换成^防止和乘法运算混淆,完成符号正负判断

    分割方法 matchString :完成字符串分割、去除空白项

    计算方法 addAll mulAll :分别计算乘法和加法,化简多项式

  • 由UML图可看出,这一架构仍然无法摆脱面向过程的影子,虽然有严格区分出两个类,但是本质上仍然属于面向过程的写法,虽然类较为简单,但这种架构严重依赖输入数据的特性,需要保证较好的合法性和简单表达式的条件,根本无法扩展。

 

二、自己程序中的bug

我在强测中丢掉一个点,输出是none,原因是我在去除空白项时将所有项都去除,而没有考虑到0的情况,这一点也在互测中被发现,成功被hack了一次。

 

三、别人程序中的bug

我在互测中并未发现别人程序中的bug

 

四、心得体会

我的编程基础很差,成绩也不好,我不想隐瞒此点。

oo作业可能对大部分计算机学院的人来说是可完成的,但对我这种基础差的人来讲,这样的作业难度是地狱级的,从第一次作业开始我就深感吃力,在第二次作业的挣扎后就直接已经放弃了第三次作业,尤其在没有指导、几乎全靠自学的环境下,我实在不具备这种能力。

并不是所有人都是acm竞赛出身,都有良好且扎实的基础,都有超强的自学能力,都具备像名列学院top10%的助教那样的“聪明”,希望课程组在布置作业时能否考虑到我们普通人的存在呢?高难的作业只会让我们这些平凡的初学者在入门之初就抗拒学习,一门让我想入门都没法入门的课,我实在不知道怎么去跟随课程组的脚步,达到最终所说的“编程能力的提高”。

个人观点,如有冒犯,it‘s my fault.

 

posted @ 2021-03-28 15:10  eilotsu  阅读(110)  评论(1)    收藏  举报