面向对象程序设计课程第一阶段总结Blog

面向对象程序设计课程第一阶段(前三次作业)总结Blog1

 21201311-李金财

  • 前言:学习面向对象程序设计课程的第一阶段已经结束了,在此进行对于前三次题目集的知识点、题量、难度的分析和总结。

分析:

1)第一次作业基本上是一些基本的编程的语法训练和一些简单的算法,一共九个题,题量大,难度小,但是对于基本格式中的一些语句,例如Scanner in=new Scanner(System.in);,其实并没有真正理解语句的含义,只知道它是完成输入时需要用到的语句,通过第一次的pta练习,让我们时隔一个寒假又再一次感受到了编程语言带给我们的魅力,帮助了我们熟悉Java的语法、基本格式、输入、输出等,提升我们对Java语言的理解和运用能力;

2)第二次作业一共三个题目,都是有关字符串的题目,难度参差不齐,其中第二题的难度相较于之前难度一下子就上去了,让我知道了原来一道题可以有那么多测试点,也是通过这道题,我更加熟悉了对eclipse的使用,学会了观测和使用eclipse的报错功能,学会了如何去调试自己的程序代码,通过第二次的pta练习,加强了我们对于字符串的输入输出以及有关字符串的一些语法、语句(比如charAt,indexOf,length())的理解和运用,进一步提升了对java语言的理解和运用,对于类和对象,有了初步的理解和认识;

3)第三次作业一共三个题,满分100分却只有三个题目,其中有两道题都是四十多分,大量的测试点,相较于前两次题目,第三次的pta练习可以说让我们正式迈入了面向对象程序设计的大门,如果说还是像前两次pta练习一样,只考虑算法,不去考虑如何合理并且有效的使用类和对象,那么其实我们只是用Java语言做着和C语言一样的事情——面向过程,在面对这三个题目时将无从下手,代码也会极其混乱和复杂,即使是去调试代码,想要去找到一些较为隐蔽和困难的测试点也如同大海捞针一般困难,通过第三次的pta练习,让我对Java有了更加深刻的理解,对类、对象、方法百思不得其解的时候能够醍醐灌顶,顿然醒悟。

总结:

  通过这三次的pta练习,我深刻地意识到了自己的不足与渺小,意识到自己所学的知识还是太少了,意识到自己学以致用的能力还是太差了,在面对难题时就如同无头苍蝇一般到处乱窜,毫无头绪,在接下来的日子里,要更加努力地学习Java语言,我相信通过不断的学习,直面惨淡的人生,正视淋漓的鲜血,所有的问题都可以迎刃而解!

  •  各题目  设计与分析  采坑心得  改进建议 

(1)pta大作业二:7-2串口字符解析

设计与分析

 

 

 

 

 

 

该题我认为比较简单,不需要创建其他类和对象,仅仅只需要一个Main类就可以解决该题,注意要包含每一种情况,正确控制输入与输出,正确使用charAt和indexOf语句,此题便可迎刃而解。

采坑心得

 

 

 

这题自己倒没有踩什么大坑,也可能是运气比较好,差不多两遍就拿了满分,中间犯了一些简单的逻辑错误,通过数据测试发现,通过调试分析改正了,我认为唯一需要注意的地方就是审题,清楚奇校验、偶校验的意思以及出现什么情况应该去prinln什么数据也就是输出格式,不应该老是犯因为审题不清楚而耗费大量的时间查错的错误。

改进建议 

 

 

 

多使用System.exit(0);终止程序语句,以该部分为例,如果不会该语句,就得使用上学期的老办法,flag=1或者flag=0时执行语句,如果情况比较多,甚至需要多个变量来控制语句是否执行,使用System.exit(0);的话,就不需要这么多冗杂的变量了。

(2)pta大作业三:7-1点线形系列1-计算两点之间的距离

设计与分析

 

 

 

通过审题可以知道该题的重点就是控制各种非法输入,计算两点之间的距离并不难,该题就需要创建多种方法去检索各种各样的非法输入。

采坑心得

 

 

 

本来想偷个懒,通过同时使用in.next()和in.nextLine()来完成输入的,本以为自己的方法十分便捷,但是当输入的坐标超过两个时,我的代码将会出现问题,甚至无法完成正常的编译运行,改进了一下,依旧还是比较复杂因此我认为如何让代码正确的输入两个坐标是十分重要的,如果刚开始坐标的提取就出了问题,那后面的代码自然就无法正常进行下去了。

改进建议 

通过一个简单的for循环,来检索和控制逗号和空格的数量无疑是一种好方法,也是题目的本意所在,也是为了做后面的题目所做的铺垫。

 

(3)pta大作业三:7-2点线形系列2-线的计算

设计与分析

 

 

 

 

 

通过审题可以知道,这题的其中一个重点依旧是如何正确的提取坐标,当点多了之后,提取坐标将会变得更加困难;非法输入可以把第一题的大部分非法输入搬过来使用,问题倒也不是很大;当然,这题的算法相较于第一题更为复杂了一些,算法是必须准确无误的,如果算法都写错了,那么测试点无疑是过不去的,一定注意好这三个地方!

采坑心得

没有使用其他类,但却使用了十几种方法,导致代码十分混乱,仅仅是把这几种选项中的坐标取出来都花了两三百行代码,当时在写这题的时候,依旧没有领会面向对象的真正含义,依旧在用Java语言做着C语言的事情,纯属是在假装面对对象,实则面向过程。

改进建议 

可以将非法输入的各种方法放在一个类,提取坐标的方法放在一个类里面,算法放在一个类里面,这样自己的代码框架就比较清晰,这样自己去debug的时候也会更加容易和方便。还有就是可以使用正则表达式,那么非法输入的代码就没有那么复杂了。

(4)pta大作业三:7-3点线形系列3-三角形的计算

 

设计与分析

 

 

 

 

通过审题可以发现这道题与前面两道题是一样都是字符串类型的题目,但是难度却骤然提升,尤其是在选项四和选项五的算法方面,那么如何设计一个完善的、没有漏洞的算法成了一大难题。

采坑心得

很遗憾因为算法的缺陷没有拿到满分,到最后也没有设计出一个完美的算法来,这道题最大的难点就是设计算法,起初因为算法的问题而几乎过不了最后两个选项一个测试点而焦头烂额,当过不了测试点很多都过不了时,那就要考虑是不是算法的问题了,及时debug,及时止损!不要一直以为是题目设计的特殊测试点,在一棵树上吊死,花太多没有用的时间。

改进建议 

所以说算法很重要!数学很重要!你的算法是否完善决定了你这道题的上限,决定了这道题能否拿到满分,当然,这道题值得我改进的地方还有很多,比如说更加的面对对象,那么代码将会更加的简单明了,不会有那么多赘余,点坐标、直线、三角形都可以看作类,使代码结构更加清晰。

总结:

经过这三次的pta大作业练习,我们正式迈入了面向对象程序设计课程的学习,虽然踩了很多坑,花费了很多的时间,但这也让我意识到了现在所学的东西远不足以对付今后甚至目前的学习和生活,我们需要掌握和改进的地方还有太多太多:

(1)在面对一些较为复杂的题目时,我们不应该直接不管三七二十一 就开始写代码,应该先仔细地审题,将题目简单化,在草稿纸上列出大概的框架,需要使用的类与对象、以及类与类之间、对象与对象之间该如何合理有效地联系起来都应该有个清晰的思路与框架;

(2)碰到一些奇怪的数据时,应该积极地使用ecilpsedebug功能,而不是总是尝试用肉眼找出自己代码错误,因为当题目要我们完成的东西较为复杂时,即使我们的代码逻辑思路与框架很清晰,也很难直接用肉眼找出错误。

(3)合理且有效地使用类与对象,真正领悟面向对象的真谛,让自己的代码简单明了、逻辑清晰,而不是有大量的赘余,重复啰嗦。

 

最后感谢面向对象程序设计课程老师的作业监督与指导,在今后的学习中,我们应该更加努力,迎接第二阶段的学习!

------------恢复内容开始------------

面向对象程序设计课程第一阶段(前三次作业)总结Blog1

 21201311-李金财

  • 前言:学习面向对象程序设计课程的第一阶段已经结束了,在此进行对于前三次题目集的知识点、题量、难度的分析和总结。

分析:

1)第一次作业基本上是一些基本的编程的语法训练和一些简单的算法,一共九个题,题量大,难度小,但是对于基本格式中的一些语句,例如Scanner in=new Scanner(System.in);,其实并没有真正理解语句的含义,只知道它是完成输入时需要用到的语句,通过第一次的pta练习,让我们时隔一个寒假又再一次感受到了编程语言带给我们的魅力,帮助了我们熟悉Java的语法、基本格式、输入、输出等,提升我们对Java语言的理解和运用能力;

2)第二次作业一共三个题目,都是有关字符串的题目,难度参差不齐,其中第二题的难度相较于之前难度一下子就上去了,让我知道了原来一道题可以有那么多测试点,也是通过这道题,我更加熟悉了对eclipse的使用,学会了观测和使用eclipse的报错功能,学会了如何去调试自己的程序代码,通过第二次的pta练习,加强了我们对于字符串的输入输出以及有关字符串的一些语法、语句(比如charAt,indexOf,length())的理解和运用,进一步提升了对java语言的理解和运用,对于类和对象,有了初步的理解和认识;

3)第三次作业一共三个题,满分100分却只有三个题目,其中有两道题都是四十多分,大量的测试点,相较于前两次题目,第三次的pta练习可以说让我们正式迈入了面向对象程序设计的大门,如果说还是像前两次pta练习一样,只考虑算法,不去考虑如何合理并且有效的使用类和对象,那么其实我们只是用Java语言做着和C语言一样的事情——面向过程,在面对这三个题目时将无从下手,代码也会极其混乱和复杂,即使是去调试代码,想要去找到一些较为隐蔽和困难的测试点也如同大海捞针一般困难,通过第三次的pta练习,让我对Java有了更加深刻的理解,对类、对象、方法百思不得其解的时候能够醍醐灌顶,顿然醒悟。

总结:

  通过这三次的pta练习,我深刻地意识到了自己的不足与渺小,意识到自己所学的知识还是太少了,意识到自己学以致用的能力还是太差了,在面对难题时就如同无头苍蝇一般到处乱窜,毫无头绪,在接下来的日子里,要更加努力地学习Java语言,我相信通过不断的学习,直面惨淡的人生,正视淋漓的鲜血,所有的问题都可以迎刃而解!

  •  各题目  设计与分析  采坑心得  改进建议 

(1)pta大作业二:7-2串口字符解析

设计与分析

 

 

 

 

 

 

该题我认为比较简单,不需要创建其他类和对象,仅仅只需要一个Main类就可以解决该题,注意要包含每一种情况,正确控制输入与输出,正确使用charAt和indexOf语句,此题便可迎刃而解。

采坑心得

 

 

 

这题自己倒没有踩什么大坑,也可能是运气比较好,差不多两遍就拿了满分,中间犯了一些简单的逻辑错误,通过数据测试发现,通过调试分析改正了,我认为唯一需要注意的地方就是审题,清楚奇校验、偶校验的意思以及出现什么情况应该去prinln什么数据也就是输出格式,不应该老是犯因为审题不清楚而耗费大量的时间查错的错误。

改进建议 

 

 

 

多使用System.exit(0);终止程序语句,以该部分为例,如果不会该语句,就得使用上学期的老办法,flag=1或者flag=0时执行语句,如果情况比较多,甚至需要多个变量来控制语句是否执行,使用System.exit(0);的话,就不需要这么多冗杂的变量了。

(2)pta大作业三:7-1点线形系列1-计算两点之间的距离

设计与分析

 

 

 

通过审题可以知道该题的重点就是控制各种非法输入,计算两点之间的距离并不难,该题就需要创建多种方法去检索各种各样的非法输入。

采坑心得

 

 

 

本来想偷个懒,通过同时使用in.next()和in.nextLine()来完成输入的,本以为自己的方法十分便捷,但是当输入的坐标超过两个时,我的代码将会出现问题,甚至无法完成正常的编译运行,改进了一下,依旧还是比较复杂因此我认为如何让代码正确的输入两个坐标是十分重要的,如果刚开始坐标的提取就出了问题,那后面的代码自然就无法正常进行下去了。

改进建议 

通过一个简单的for循环,来检索和控制逗号和空格的数量无疑是一种好方法,也是题目的本意所在,也是为了做后面的题目所做的铺垫。

 

(3)pta大作业三:7-2点线形系列2-线的计算

设计与分析

 

 

 

 

 

通过审题可以知道,这题的其中一个重点依旧是如何正确的提取坐标,当点多了之后,提取坐标将会变得更加困难;非法输入可以把第一题的大部分非法输入搬过来使用,问题倒也不是很大;当然,这题的算法相较于第一题更为复杂了一些,算法是必须准确无误的,如果算法都写错了,那么测试点无疑是过不去的,一定注意好这三个地方!

采坑心得

没有使用其他类,但却使用了十几种方法,导致代码十分混乱,仅仅是把这几种选项中的坐标取出来都花了两三百行代码,当时在写这题的时候,依旧没有领会面向对象的真正含义,依旧在用Java语言做着C语言的事情,纯属是在假装面对对象,实则面向过程。

改进建议 

可以将非法输入的各种方法放在一个类,提取坐标的方法放在一个类里面,算法放在一个类里面,这样自己的代码框架就比较清晰,这样自己去debug的时候也会更加容易和方便。还有就是可以使用正则表达式,那么非法输入的代码就没有那么复杂了。

(4)pta大作业三:7-3点线形系列3-三角形的计算

 

设计与分析

 

 

 

 

通过审题可以发现这道题与前面两道题是一样都是字符串类型的题目,但是难度却骤然提升,尤其是在选项四和选项五的算法方面,那么如何设计一个完善的、没有漏洞的算法成了一大难题。

采坑心得

很遗憾因为算法的缺陷没有拿到满分,到最后也没有设计出一个完美的算法来,这道题最大的难点就是设计算法,起初因为算法的问题而几乎过不了最后两个选项一个测试点而焦头烂额,当过不了测试点很多都过不了时,那就要考虑是不是算法的问题了,及时debug,及时止损!不要一直以为是题目设计的特殊测试点,在一棵树上吊死,花太多没有用的时间。

改进建议 

所以说算法很重要!数学很重要!你的算法是否完善决定了你这道题的上限,决定了这道题能否拿到满分,当然,这道题值得我改进的地方还有很多,比如说更加的面对对象,那么代码将会更加的简单明了,不会有那么多赘余,点坐标、直线、三角形都可以看作类,使代码结构更加清晰。

总结:

经过这三次的pta大作业练习,我们正式迈入了面向对象程序设计课程的学习,虽然踩了很多坑,花费了很多的时间,但这也让我意识到了现在所学的东西远不足以对付今后甚至目前的学习和生活,我们需要掌握和改进的地方还有太多太多:

(1)在面对一些较为复杂的题目时,我们不应该直接不管三七二十一 就开始写代码,应该先仔细地审题,将题目简单化,在草稿纸上列出大概的框架,需要使用的类与对象、以及类与类之间、对象与对象之间该如何合理有效地联系起来都应该有个清晰的思路与框架;

(2)碰到一些奇怪的数据时,应该积极地使用ecilpsedebug功能,而不是总是尝试用肉眼找出自己代码错误,因为当题目要我们完成的东西较为复杂时,即使我们的代码逻辑思路与框架很清晰,也很难直接用肉眼找出错误。

(3)合理且有效地使用类与对象,真正领悟面向对象的真谛,让自己的代码简单明了、逻辑清晰,而不是有大量的赘余,重复啰嗦。

 

最后感谢面向对象程序设计课程老师的作业监督与指导,在今后的学习中,我们应该更加努力,迎接第二阶段的学习!

posted @ 2022-04-11 00:05  空城,  阅读(51)  评论(0编辑  收藏  举报