oop题目集1-3的总结

一. 前言:前三次pta题目集主要考察了我们学生对于java基本知识的理解和掌握.首先,第一次作业集中在类,涉及到类与对象,关联类等基础概念.在这次作业中,答题判题程序-1要求实现3个类以完成作业要求.接着,第二次作业延续了对类的考察在,答题判题程序-2中,要求更深入地理解和应用,包括额外要求试卷信息,计分和总分的相关判定与输出.第三次作业则更进一步,答题判题程序-3增加了对学生信息,删除题目信息等更多要求,提高了任务的复杂度和细致程度.总体来看,这些作业难度逐渐递增,考察内容由浅入深,需要我们逐步提升自己的编程能力和理解水平.虽然题目数量相对较少,但答题判题程序的难度却相当高,需要花费大量时间和精力才能顺利完成并获得满意的分数.
二. 设计与分析:

  1. 第一次作业:第一次作业在这三次作业中显得最为简单,但仍然花费了我很多时间与精力, 我首先定义了Question类和Answer类,并使用了正则表达式来处理输入,将其分割并存储在数组中,最后进行输出。尽管任务相对较为简单,但这个过程对我来说是一个很好的学习经验,让我熟悉了正则表达式的运用,并锻炼了自己解决问题的能力。

  2. 第二次作业:第二次作业相比第一次作业有了很大程度上的难度提高, 额外要求了试卷信息,计分和总分的相关判定与输出.因为感觉自己第一次作业疏漏很多,对此,我直接重新思考这个问题并尝试解决,没有使用上一次的代码,这在一定程度上提高了我分析问题的能力,但也额外的增加了难度,使我未能在规定时间内完成该次作业,我在这个作业中定义了Question类, TestPaper类, AnswerSheet类,主函数中尝试使用了Map与List,同样使用了正则表达式完成对代码的分割,用数组储存之,最后输出.但很遗憾的是,由于我当时对于Map和映射不太熟练,未能完成第二次作业.

  3. 第三次作业: 第三次作业相比第二次作业有了更大程度上的难度提高,更进一步的增加了对学生信息,删除题目信息等更多要求.我在当时基于上一次作业的部分理解,尝试完成第二次作业并将其中的知识应用到第三次作业中,其中,我定义了Question类, TestPaper类, AnswerSheet类与Student类,通过正则表达式分割.对于删除信息方面我当时不太清楚如何进行,于是选择性放弃了相关的内容,在听完老师的讲解之后,我对这个题目有了更加清晰的认识,我会以后修改我的代码使其尽量能够满足所有的要求,通过所有的测试用例.

三. 踩坑心得:
1.如果让我再重新做一次这三个作业,我会从一开始就明确问题和解决方法,将其分解为一个个更小的问题,来寻找相关的解决方式.因为刚开始学习java,我不太了解java的内容,所以在一开始时,我没有很明确的方式去解决这些问题,而是选择了一边写一边改正,这导致了我在遇到问题时,无法很明确的知道我错误在哪里,因而无法很流畅顺利的解决问题.这种试错的方法虽然有助于加深理解,但在实践中却显得效率低下,也增加了解决问题的困难度。
2.同时,由于我对正则表达式,Arraylist,Hashmap等知识不了解(应用的时候课上当还没讲到这些内容),查阅如何使用也比较花费时间,使得这三次作业对我来说十分费力,即使我有思路应该怎么做,也可能因为我缺乏对相关函数的了解,致使我难以完成这些作业.
3.在解决这些问题的过程中,我深刻意识到了代码编写中细节的重要性,尤其是在处理输入输出和字符串操作时,精准的处理是至关重要的,通过这次经历,我意识到了对于边界条件的重视,比如说第一次作业中我的代码存在大量非零返回,经过检查后是我使用正则表达式y=x.split("#[A-Z] : ");来进行判断,之后通过如下来进行分割存储Integer.parseInt(y[1].trim());但由于输入时忽视了需要将questionNumber进行-1,所以可能产生了越界,进而导致了非零返回的问题存在,经过相关改正后,避免了非零返回的情况发生.
4.另外我还曾经存在了格式错误的问题,因为我没有将空格的位置进行判断,而是直接简单的在true false 的后面添加了空格,所以导致了格式错误,经过修改之后,我添加了对于i==t-1的相关判断,在不相等的时候添加空格,以此来避免了多添加空格导致的格式错误.我还对于方法有了更加清晰的认识,合适的使用能够使得代码更加合理.通过这些错误和改正,我对Java编程有了更深入的理解,并且明白了如何在解决问题时更加高效和准确地操作。

四. 改进建议:我的代码存在部分逻辑混乱的情况,原因是我在开始写代码的时候没有很好的将任务分离,导致了在某些程度上面的逻辑不太好, 因此我意识到,在编写代码时,将任务分离开来是至关重要的.缺乏清晰的任务分配往往导致逻辑混乱和代码结构不佳.因此,我决心在今后的编程作业中更加注重任务分离和模块化设计,着重的加强这方面的意识,明晰我自己的目的,通过细化来帮助我更加良好的完成作业,为了实现这一目标,我打算采取一系列措施.首先,我会在编写代码之前进行充分的需求分析,确保我对作业任务有清晰的理解和把握.其次,我会将每个任务细化为更小的子任务,并为每个子任务编写独立的模块或函数.这样一来,我可以更好地管理代码的复杂性,使得每个部分都相对独立,易于理解和调试.这样可以降低代码的耦合度,提高代码的灵活性和可重用性.总的来说,我将致力于改进我的编程习惯,注重任务分离和模块化设计,以期能够写出更加清晰,高效的代码,为未来的学习打下坚实的基础.

五. 总结:通过本阶段三次题目集,我掌握了如何使用java进行简单基本的编程,学习了如何使用java在pta上按照要求完成相关作业,对于按照要求来写一个程序完成测试有了更加熟练的掌握,也对于Arraylist,Hashmap等有了基本的认识,会使用其来完成作业.这一过程让我对编写程序进行测试有了更加熟练的掌握,也提升了我的编程技能和实践能力.在完成作业的过程中,我发现了一些提升自己效率的方法.我在以后应该在遇见问题时优先明确其要求,然后将其分解为一个个部分,并通过代码来逐步实现这些功能,从而将一个比较大的任务转变为一个个小任务,这样会方便测试与修改.在以后的学习中,我会更加侧重于对代码内在逻辑,结构的分析掌握,从而使得我更好的完成任务,提高我完成作业的水平.我认识到,优秀的程序员不仅要求其代码能够正确运行,还要求其具备良好的可读性、健壮性和扩展性。因此,我会更加关注代码的规范性和可维护性,力求编写出简洁清晰、结构合理的代码.对于老师讲课与作业方面的期待,我个人希望老师能够先详细讲述我们作业中用到的知识点,然后再布置作业,也希望作业的测试样例更加明确,测试点多设部分在简单的问题,这样可以适当的变相提高同学们的分数.
希冀在日后的学习中我能更好的完成老师布置的任务,提高自己的能力. 为将来的学习和工作打下更加坚实的基础.

posted @ 2024-04-21 23:46  花予彩笺  阅读(2)  评论(0)    收藏  举报