前三次作业总结

一 .前言

前三次作业涉及了java语言的基本数据类型,一些语句的使用方法,一些java自带的方法的使用,类与对象的关系,构造方法发使用以及类设计等等知识点。题量随着题目的难度增加而减少,总体来看题量还是

适中的。而难度其实对于不同人有不同的看法,就我个人而言,这种难度可以接受。总体来看,这三次作业对我们这些刚刚学习java语言的萌新来说,还是可以接受的。

二.设计与分析

(1)题目集1的7-8:判断三角形类型。

这道题的算法其实不难,我们在高中时就对如何判断三角形的类型有了很深的理解,对代码的设计也就是从简单的if语句开始,通过三角形的三边对其进行一个判断,从而输出相应的三角形的类型,从这个点来看

这道题本质上并不算一个很难的题,而它的难点就在一些细节方面,情况有多种我们需要全面分析,而是否是直角三角形的判断,又需要的是一个精度的判断,这和我们所理解的直角三角形是有一定的冲突的,但

从java这个语言上来看这符合的java语言的严谨性。所以这道题就是在细节上有一些点需要我们去注意,它在我们学习的初期灌输了一种严谨的态度,对我们之后的学习有比较的意义。(这个比较简单就不放图了)

(2)题目集2的7-4:输入年月日的值(均为整型数),输出该日期的下一天。

这道题需要我们去设计一些方法,然后在main方法中去调用这些方法,主要是在对方法的设计上需要去构思很多,由于一开始我没有注意我的代码长度,导致出现了一个代码长度的问题,后来我修剪了代码长度

之后,也感受到之前的代码确定是有点复杂,而且有点大题小作,没有对代码进行一个整合,这对我之后写代码时有了一个警示的作用,同时这也让我有了优化代码的意识。这道题的算法其实也不算是很难,就

是要做到对每个年份是否是闰年,每个月份的天数的多少有一个明确的判断。从代码上而言,用了许多if的语句对内存的需求可能会比较大,但从整体上看,还是比较完整的完成了题目的要求,还算是可以的

(比不了那些大佬)。

UML类图:

 

度量:

类:

 

方法:

 

 

 

 

(3)题目集2的7-5: 求前N天。

这道题更上道题比较相似,主要在核心算法上不同,这道题的核心算法内容比较多,要考虑的点比较多,用了更多的if的语句对其进行细分,做到不重不漏。在错误的示例上也要对其进行比较多的判断,杜绝出

现没有的年份,没有的月份天数等等。其实这两道题对我而言让我对代码的处理更加细节,对需求的分析更加全面,本身而言对我是一个比较大的提升。没有对方法进行封装,导致程序有点复杂,对方法进行封装会更好一点。

UML类图:

 

度量:

类:

 

 方法:

(4)题目集3的7-5: 定义日期类 。

这道题让我们去设计一个日期类,在这个类中创造对象,设计方法,去处理一些问题。在类的设计中我们要注意的是类的封装和方法的可行性,我们不能不对类进行封装,类的封装有益于我们有一个对数据的保

密行的意识的养成,让我们对数据进行一个良好的保护,方便我们未来在开发中有个很好的对数保护的意识。对这道题的算法而言,算法本身不难,而它的的意义在于让我们对类和对象有一个比较好的了解,对

数据的保护要形成一种意识。

UNL类图:

 

度量:

类:

 

 

方法:

 

 

 

(5)题目集3的7-6:一元多项式求导。

这道题对我而言难度就有些大了,在对正则表达式上还不是很了解,导致我花了一段时间去学习正则表达式,同时又要去完整的运用正则表达式,对我造成了比较大的困难。不仅如此,如何将需求实现也让我想

了许久。这道题的 错误示例非常的多,一旦没有考虑全面,就没法过点。正确的输出的示例的实现相对来讲比较容易去实现,虽需要和正则表达式在一起运用,但只要分析全面,处理到位还是比较容易去实现的

。在输入格式上又有一些要求,对正则表达式的运用就需更加熟悉。最后的也只有一些需求实现,没有做到完整,对我来说是一个遗憾,但同时也激励我去更加努力学习Java相关的知识。

UML类图:

 

 

 

 

度量:

类:

方法:

三.踩坑心得

1.第一个就是代码长度过长,导致pta不能进行编译,这个代码的长度过长会对内存占用太多的空间,导致整个程序的运行速度很慢,对我们一些萌新来说,这个肯定是要逐渐改变的,而代码长度过长,也是我们

算法不是很好而造成的,我们应该反思我们的算法的设计,做出优化,让整个代码更加简洁,可用性也更高。

2.细节方面要注意。我们刚开始敲代码可能对一些细节上没有注意,导致代码出现种种的错误,我们应该杜绝这种不好的习惯,要从小处着手,纵观全局,对整个代码的流程有一个细致的了解,不能一上来就敲

代码,要有详细的分析。

3.对知识的运用。我们刚刚学习java,难免对一些方法的使用不是很了解,我们不能在错误的使用方法上纠结,找到正确的用法,并充分了解这个方法,是我们解决问题的不二法门。

四.改进建议

(1)题目集1的7-8

这道题的优化在与对不同的类型三角形的判断上,要简化,把同一种类型的判断方法尽量合一,不造成多余的判断。

(2)题目集2的7-4 和7-5

这两道题的解决方法很相似,这里放在一起讲。这两道题的if语句都很多,对内存很不友好,应该在不破坏需求的基础上,删减一些代码。

(3)题目集3的7-5

这道题是对类的一个初步的设计,主要还是在类上对其进行一个优化,完善它的功能,提供更多的方法。

(4)题目集3的7-6

这道题的正则表达式用了比较多,我们对多项式进行拆分时,可以简洁一点,对它的其他方面也可以更加完善,如错误的示例,输入和输出的简洁等等。

五.总结

这前三次作业对我使用java语言的编写能力有比较大的提升,学习了许多java的相关知识,对java的方法需要去更多的了解,形成一个java的知识体系。同时我也意识到学习好java语言的难度比较大,第三次作业

就是感触比较深刻的一次,让我知道了我的不足,有了明确的提升方向,需要更加努力的去钻研。老师线下上课讲的东西比较杂,很难听懂,建议上课前提前和我们说下讲什么地方,有个准备。

 

posted @ 2021-04-04 23:07  一个失落的梦  阅读(39)  评论(0)    收藏  举报