面向对象程序设计课程第二阶段(pta大作业四、实验题以及期中考试)总结Blog
- 前言:学习面向对象程序设计课程的第二阶段已经结束了,在此进行对于之前的pta大作业四、实验题以及期中考试的知识点、题量、难度的分析和总结。
分析:
(1)pta大作业四相较于前三次pta作业难度又进一步提升了,一共是三个题,其中第一题和第三题较为简单,第一题只需学会一些简单的正则表达式和使用split语句即可完成这个题目,第三题题目要求设计一个银行业务类,题干看似内容要求繁多,实际我们只需按照题目要求设计即可,该题考察了对访问属性的使用、带参数的构造方法以及一些基本的java知识,仔细按照题目要求设计不会有太大问题,第二题的难度不管是跟另外两题还是前面几次作业的题目相比难度都提升了很多,尤其是算法难度非常大,要考虑的方面太多了,测试点有足足五十个,想拿到满分的难度非常大,通过这次的大作业,提升了我们对Java语言的理解和运用,如何将自己的想法转化为代码的能力大大提升。
(2)实验题到目前为止已经写了三次农夫过河实验了,每一次都会新增一些要求,比如说改进农夫过河时能否携带物品问题、改为继承与多态等方面,面对需要设计好几个类时,我们应该先有一个大概的框架如何把这些类以及它们之间的关系通过代码写好,然后在通过调试去改进,通过这三次实验,让我对继承与多态有了更好的理解和运用;
(3)期中考试一共三个题,后面两道题都是需要在前面的题目的基础上增加一些新的要求,第一题题目要求我们设计一个点类和一个线类,第二题要求我们在第一题类设计的基础上进行重构,实现继承与多态的技术性需求,其中新增加的Element类需设计为抽象类,第三题需要再次对题目的类设计重构,增加容器类保存点、线、面对象,并对该容器进行相应增、删、遍历操作,这次得到的一个很大的教训就是开始写代码之前一定要仔细审题!一定要严格按照题目要求去完成题目,不然将会浪费大量的时间去做无用功导致时间不够,通过这次的考试也发现了自己还有很多的不足,基础也是相当不扎实,导致做题时需要花很多时间去回想知识点,甚至还有知识点自己没有掌握的而题目却需要使用,所以说,自己需要提升的地方还有很多!
总结:
通过pta大作业四、实验题以及期中考试,我深刻地意识到了自己知识点的匮乏、基础的薄弱、面对难题时解决问题的能力等等,在面对难题时就如同无头苍蝇一般到处乱窜,毫无头绪,自己还有太多太多的不足,需要提升和改进的地方还有很多很多,在接下来的日子里,要更加努力地学习Java语言,我相信通过不断的学习,直面惨淡的人生,正视淋漓的鲜血,所有的问题都可以迎刃而解!
- 各题目 设计与分析 采坑心得 改进建议 :
(1)pta大作业四7-3点线形系列4-凸四边形的计算
设计与分析:
通过审题可以知道这道题一共分为五大块,用户输入一组选项和数据,进行与四边形有关的计算,其中第四点和第五点的算法是比较难的,题目需要通过的测试点也很多,需要写出较为完美的算法才能拿到高分。
采坑心得:
因为算法的缺陷没有拿到满分,到最后也没有设计出一个完美的算法来,这道题最大的难点就是设计算法,因为算法的问题而几乎过不了最后两个选项一个测试点而焦头烂额,当过不了测试点很多都过不了时,那就要考虑是不是算法的问题了,及时debug,及时止损!不要一直以为是题目设计的特殊测试点,在一棵树上吊死,花太多没有用的时间。
改进建议 :
所以说算法很重要!数学很重要!你的算法是否完善决定了你这道题的上限,决定了这道题能否拿到满分,当然,这道题值得我改进的地方还有很多,比如说更加的面对对象,那么代码将会更加的简单明了,不会有那么多赘余,点坐标、直线、四边形都可以看作类,使代码结构更加清晰。
(2)期中考试7-1点与线(类设计)
设计与分析:
通过审题可以知道这是一道类的设计题,我认为该题目并没有很难,只需按照题目要求去完成类的设计即可拿到满分,但是需要注意get()和set()两种方法的作用,同时还要求输入数据的合法性判断,注意好这些完成这道题也就问题不大了。
采坑心得:
这题自己倒没有踩什么大坑,也可能是运气比较好,差不多两遍就拿了满分,中间犯了一些简单的逻辑错误,通过数据测试发现,通过调试分析改正了,我认为唯一需要注意的地方就是审题,一定要符合题目要求地去设计类。
改进建议 :
在判断数据的合理性的时候可以根据题目要求写一个简单的if判断语句即可,刚开始自己考虑的太多了,导致做了很多没用用的功课。
(3)期中考试7-2点线面问题重构(继承与多态)
设计与分析:
通过审题可以知道这个题的主要代码可以基本沿用上一题,要求我们为点类和线类定义一个共同的抽象父类,并将display()方法在父类声明为抽象函数,新增一个面的类,这题就是在考察我们对抽象类的使用以及继承与多态的使用。
采坑心得:
自己对继承与多态、抽象类的理解、掌握、使用都远远不够,导致做题时有自己的想法和思路,却没有办法转化为代码,这是很要命的,
改进建议 :
正确地使用抽象方法,而不是做一个空方法的实现。
(4)期中考试7-3点线面问题再重构(容器类)
设计与分析:
通过审题可以知道该题就是在第二题的基础上,对题目的类设计进行重构,增加容器类保存点、线、面对象,并对该容器进行相应的增、删、遍历操作
种各样的非法输入。
采坑心得:
自己对ArrayList的掌握不够好,导致越界,还有不知道如何输出列表,这些都是自己知识点掌握的不好的体现,希望之后能好好掌握他们。
改进建议 :
对ArrayList进行重写,把之前不符合题目要求的代码进行改进。
(5)农夫过河实验
设计与分析:
通过审题可以知道题目要求我们解决农夫过河问题:一个农夫带着一匹狼、一只羊、一颗白菜要过河,河上只有一条船能够渡河,而且农夫每次最多只能带一个动物或物品过河,当农夫不在的时候狼会吃羊,羊会吃白菜。
采坑心得:
自己一开始没有理解好题目的规则,导致有些类的设计不太合理,以至于让农夫和羊不在河的同一侧都能够进行一起过河这种荒谬的操作,这种情况以后不应该出现了,在写这种实际问题的代码时一定要考虑代码的合理性。
改进建议 :
可以更多的使用继承与多态,这样可以让代码框架和逻辑结构都更加清楚,不会有那么多重复的代码,使自己的代码更加简洁明了。
总结:
通过pta大作业四、实验题以及期中考试的历练,我们面向对象程序设计课程的学习又更进一步了,虽然踩了很多坑,花费了很多的时间,但这也让我意识到了现在所学的东西远不足以对付今后甚至目前的学习和生活,我们需要掌握和改进的地方还有太多太多:
(1)在面对一些较为复杂的题目时,我们不应该直接不管三七二十一 就开始写代码,应该先仔细地审题,将题目简单化,在草稿纸上列出大概的框架,需要使用的类与对象、以及类与类之间、对象与对象之间该如何合理有效地联系起来都应该有个清晰的思路与框架;
(2)碰到一些奇怪的数据时,应该积极地使用ecilpse的debug功能,而不是总是尝试用肉眼找出自己代码错误,因为当题目要我们完成的东西较为复杂时,即使我们的代码逻辑思路与框架很清晰,也很难直接用肉眼找出错误。
(3)我们应该在先前的基础上更加进一步地面向对象,通过类和对象的设计让自己的代码框架和逻辑更加清楚,合理且有效地使用类与对象,真正领悟面向对象的真谛,让自己的代码简单明了、逻辑清晰,而不是有大量的赘余,重复啰嗦。
最后感谢面向对象程序设计课程老师的作业监督与指导,在今后的学习中,我们应该更加努力,迎接接下来的学习!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~