Blog作业1

前言:

第一次题目集主要考察一些基础知识,如:java中加法的运算,if语句的使用,类型的强制转换,数组的使用,排序方法等。都是十分的简单,没有任何难度,题目的量因为题目的简单所以并不觉得多。第二次题目集中用到了将字符型数字转换为整形的方法还有一些数学类的方法,也开始了方法的创建和使用,难度也不是很大,题目量也不是很多。第三次题目集开始构建类和构造方法,前两提都还可以,第三题难度有一点点大。但题目量很少,只有3题。

设计与分析:题目集1中的7-8中圈复杂度过高,因为代码的数量不多

    没有用到类,所以不用分析类图,圈复杂度过高主要是因为这个题目中用到了大量的if语句,多次循环导致圈复杂度大大提高。题目集2中的7-4的圈复杂度不是很高

但我自己仍然觉得代码并不完善,有很多重复的代码出现了,应该能够做到更好的优化;而7-5的圈复杂度就很高了

在7-5的代码中用到了大量的if语句,打了许多重复的代码,而且有一些没有用的代码并没有删掉,这就导致圈复杂度大大提高。这两道题中类的运用都没有什么大问题,因为在题目中就给出了所有的类和方法,所以只要照着写就好了。题目集3中7-2和7-3的圈复杂度也很高

因为在这两题中也用到了大量的if语句,而且7-3中还有几个测试点不能通过,虽然说7-3的圈复杂度挺高的但我感觉以自己的水平也只能用if语句来判断,找不到什么别的好办法。但7-2包括习题集2中的几道题都是自己写完之后不想改,所以才用到了大量的if语句。就这几次的题目集来说,学到的东西有很多,首先是题目集1中学到了很多运算中的小技巧和一些易错点,了解到了运算的大概错误点,在题目集2中首次接触到了类,在其中了解到了类的基本框架和一些格式,也让自己看了马虎之后犯的错误有多少,有多低级,也了解到了类的封装性。在题目集3中学习到了很多东西,首先是对类有了更进一步的了解,学到了私有性,知道私有性只能在一个类中调用,并且只能通过setter和getter来进行赋值和改变。而在题目集3中学到的最重要的东西还是正则表达式,通过自学了解了正则表达式中各个字符的意思和用法,了解到了如何构建一个高级正则表达式,而在做题目的时候还用到了,一些跟正则表达式相关的方法,知道了有着切割和查找,而这两个方法对我写7-3的代码有着很大的帮助。

采坑心得:在写题目集1的7-8的时候,忽略了double型在进行计算时会有误差,使得判断三角形类型的时候出现了错误,最后通过看学习视频得知可以是两个数的绝对值小于一个很小值来确定两个数相等,总的来说题目集1相对简单,从中了解到了double型计算时有误差,也巩固了一下排序的各种方法的适用。写题目集2的7-4时出现了一些判断和逻辑上的错误,在判断是否为闰年的时候将两个判断式弄反了,导致判断出来的结果错误,最后通过查资料解决;逻辑上在输出下一天的时候出现了错误,忽略了2月平闰年是不同的情况和12月最后一天输出下一天时年份要加一的情况,最后通过多次的测试和思考解决了这些问题;而在7-5的题目中,感觉就是对7-4进行了一个升级,多了一个求钱n(整数)天的情况,在写7-5的代码时会容易将前n天搞反了,比如前-1天其实是在求后一天,最后也是通过多次的错误才了解到这个错误;从题目集2中并没有学到什么新的东西,主要是知道了要让我自己仔细,认真一点。题目集3可以说难度升高了一个级别,而且不像前两次题目集一样拿到了满分,题目集3中7-1和7-2出现了同样的问题,就是类的封装性没有做到,在方法中代入了参数,后来也是在老师的提醒下才知道自己有这个错误;而在7-3中存在的问题就有点多,在进行输入是否正确的判断上正则表达式用的不正确,正则表达式运用的不熟练,以及正则表达式相关的方法了解的不全面,还有一个判断失误是在当系数为以零结尾的数时,结果出现了Wrong Format,将这个系数当成零,最后通过向同学请教得知是自己的正则表达式用的不合格,最后也是通过多次测试得到了正确的正则表达式,还有就是多项式求导之后,在测试点中有一个数的字节超过了int,也超过了long int,然后这就让我傻了,因为不知道还有什么类型有更长的字节,然后通过查资料和向同学请教之后才知道还有一个Biginteger这种类型。

   

改进建议:在题目集2的7-4,7-5和题目集3的7-2中我觉得可以将if语句改成switch case语句,这样可以大大降低圈复杂度,而且可以省掉很多重复的代码,这样可以让代码更加简短,在题目集1的7-8中if语句中可以不用每一个判断中都加入System.exit(0);,可以在判断完之后统一使用同一个System.exit(0);,同时在使用构造方法时,不同在无参函数中加入this,因为根据多次测试的结果来看,每次软件都会判断无参函数中的this没有用上,在代码中尽量做到打上去的代码都是有用的,不要有没有用的代码。然后就是题目集3中的7-3,我觉得可以把自己的方法进行改进,通过只用一个正则表达式来判断是否输入错误,对于多项式的不同项采用查找的方法先将所有的项通过链表存入一个字符串数组中,然后同样用查找的方法,将不同类型的项找出来,继续用查找将系数和指数找出来,通过强制转换进行求导。这是我对7-3题目的一个新的大概的思路。

   

总结:三次题目集学习到了很多新的东西,也复习了很多之前在c语言中学到的东西,在这次训练中最重要的还是学到了正则表达式和类,这是我认为这几次作业中最重要的东西。然后正则表达式和类还要继续深入学习和练习,因为自己现在用到的都只是一些皮毛。其次对于老师的指导,我想说的是:感觉自己上课的时候效果不是很好,可能是自己的关系吧,但还是感觉听老师讲的时候感觉不是很适应,这个我会自己好好适应适应。对于课程和作业没有什么要说的,觉得还可以。但我觉得课下的时候可以我们几个班自己搞一些编程有关的活动用来提高大家的积极性,虽然说很多东西都靠自觉,但这也可能会提高一些学生的兴趣。

posted @ 2021-04-04 19:14  王继龙  阅读(60)  评论(0)    收藏  举报