课程阶段性总结
前言:
因为我刚接触这门学科嘛,记得第一次的作业刚开始有点不适应甚至如何创建文件编写,如何输入,输出都还没搞明白。但是后面编写了几段代码之后,逐渐适应了java的编写,再加上依次次的作业非常的容易,后面也就得心应手。
前三次作业主要考察Java编程最基础的能力,也就是输入输出,循环,类的运用等,还有考察了学生的自学能力比如正则表达式的灵活运用。题量不大总能在规定时间内完成,题目有简单的也有容易的,非常适中。
第一次题目集:题目简单,都是对基本能力的考察;
第二次题目集:题目相对于第一次题目集难度提高了不少,但是基本的还是差不多,跟之前的c语言非常的类似,有之前的基础所以都还能解决;
第三次题目集:到了第三次题目集我们已经学习了java快一个月了,java的特点便在这此题目集得到了充分的体现,具体的在设计与分析中说明。
设计与分析:
题集一 7-8判断三角形类型:
本道题是第一次题集中最有价值的一道题,以判断三角形的类型为背景考察我们对Java语言基础能力的掌握情况,以及编写程序的那种细致,严谨的逻辑考察。
题目集二 7-4 求下一天 :


本道题与上一道题目非常类似,所以题目看了个大概就火急火燎的开始编写代码,按照c语言的那一套 if来if去的,最后还是编写了出来
踩坑心得:这道题其中有个测试点是闰年的最后一天,我这道题就是这个测试点过不去,也是后来才发现是在判断闰年的时候逻辑的错误导致十二月是个固定的值,这还是在下次的作业中使用了这段代码然后在发现的。

改进建议:编写这道题的时候没有一个类的概念对题目给的提示没有多注意现在会过来看才懂题目的提示:
public static void main(String[] args);//主方法 public static boolean isLeapYear(int year) ;//判断year是否为闰年,返回boolean类型 public static boolean checkInputValidity(int year,int month,int day);//判断输入日期是否合法,返回布尔值 public static void nextDate(int year,int month,int day) ; //求输入日期的下一天
这里的定义当时没看懂,如果用这种定义能使我的代码更简单。
编写是还用了大量的if语句直接导致代码的复杂度非常的高,可以将这些if语句换成更加简单的语句可以让自己代码的复杂度降低。
7-5 求前N天:


这些题的代码都基本相似,思路也大致相同,比如非法输入这方面的代码都可以互相套用。
踩坑心得:这题我主要是卡在下n天这方面的处理无法正确的完成这方面的要求,因为求前n天,n如果是负数的话就相当于是求下n天,我就按照这种角度进行编写,结果一直过不去。
改进建议:运用类的方法进行编写就会让自己的代码更加有逻辑,不会乱成一团。
还是if语言的大量运用导致代码的复杂度非常高,可以改进就是运用其他语句降低代码复杂度。
题目集三 7-2 定义日期类:


本道题算我真正运用类的方法去定义对象,方法。体会到了java与c语言的不同之处。可以明显发现复杂度减少了很多而且主函数只是起到了调用的作用没有像之前主函数那么复杂,这里与c语言的区别就体现了出来。
踩坑心得:这道题与上次题目集的题类似所以很快就能将代码编写出来,许多错误点也没有中招。
改进建议:本道题的复杂度虽说有减少吧,但还是比较高,改进就是把代码的复杂度尽量减少;完全可以再多定义及各类进行运行,用一个类还是有点勉强。
7-5一元多项式求导(类设计):
本道题考查类的设计,和数据的提取,具体用到正则表达式是代码的匹配非常的方便
总结:
通过前三次的题目集的训练学到了很多:
1.类的运用:从第一次题目集的一股脑编写,到现在不急着编写,开始思考哪些该放在一个类,哪些有该放在另一个类,如何将这些类联系起来等等,都与类相挂钩,这就是java所谓的面向对象,这些对我来说都是全新的。
2.正则表达式的掌握:正则表达式对我来说也是一个全新的知识点,我在这卡了非常久,主要是自己缺乏自学的能力,这次学习让我学会了自己查找相关资料,一点点的掌握了正则表达式,掌握之后非常的有成就感,但是做题时却发现我不会引用在编译器里,然后又是自学,运用。
3.意识到了自己的不足:通过这些训练发现了自己编写代码的很多坏毛病,这些坏毛病的浮现是非常好的信号,这样我能意识到就能去改正。

浙公网安备 33010602011771号