首页 > 其他分享 >NCHU-软件学院-232019班-23201125-罗伊鑫-第二次Blog

NCHU-软件学院-232019班-23201125-罗伊鑫-第二次Blog

时间:2024-06-04 15:11:02浏览次数:20  
标签:题目 罗伊鑫 NCHU 代码 2024 nchu 23201125 oop software

前言

本次Blog总结三次题目集的7-1题目的知识点、题量、难度等情况,以及写完后的错误总结和自我思考。

1.知识点

三次题目集都对于类的设计的提前规划好有着必要的需求,还有就是对于继承与多态的合理的使用。接着就是对于正则表达式的使用的检测,然后就是要有清晰的逻辑编程表达。

2.题量

总的来说,三次题目集的题量还是充足的,老师所给的时间也是足够的,非常适合检验学生的学习成果。

3.难度

第一个题目集的难度最大,非常考验编程的逻辑,还有就是写出正确的正则表达式,第二个和第三个属于同一类型,第二个题目较为简单,主要的要求就规划好正确的类,为下一次的迭代做准备,第二次偏难,要合理的考虑多种串并连会出现的情况,这不仅对类设计的要求高,还有清晰的逻辑编程。

设计与分析

第一个题目集(nchu-software-oop-2024-上-4)

设计类图如下图所示:

1)本次题目对于前几次的题目新增了选择题和填空题两个题目信息,他们均继承题目类,还有输出顺序的变化:只要是正确格式的信息,可以以任意的先后顺序输入各类不同的信息。比如试卷可以出现在题目之前,删除题目的信息可以出现在题目之前等。还有就是本题考虑多个同学有多张不同试卷的答卷的情况。输出顺序优先级为学号、试卷号,按从小到大的顺序先按学号排序,再按试卷号。
2)可见难度是明显的增大,对于自己的代码,还是if语句,for循环使用过多,但改进的是使用了多个函数方法,避免main函数代码量过多。

代码品质度量:

1)对比于先前几次,函数的方法使用增多,并且在适宜的范围内,但是代码的最大深度和平均深度都超过范围,大大降低了代码的可读性,if语句和for循环的使用次数还是过多,代码的品质不高。
2)还有就是代码的注释虽说比前几次多,但是还是远远不够,代码的最大复杂度还是过高,可见for循环的嵌套循环还是用的太多,大大降低代码质量。

第二个题目集(nchu-software-oop-2024-上-5)

设计类图如下所示:

这次题目的难度较为简单,主要是考察类的设计,因为这对于第二次的迭代有着重要的作用,我这次写的类就没写好,没有写一个总父类,并且没有考虑风扇的扩展。这导致写下一个题目时,得重新改写类的方法,所以说这次的代码的拓展性太低。

代码品质度量:

1)吸取前面几次的教训,这次代码的注释增多,但是过多超出范围,这一点还需慢慢改进,代码的复杂度过低,代码过于简单,代码使用的函数方法太少,其他几个方面都在良好范围内。
2)可以说,这次的代码的质量相对于其他几次还是更高一些,可读性更高,类的设计和数量也适宜。

第三个题目集(nchu-software-oop-2024-上-6)

设计类图如下:

1)这次的类图设计我改进很多,对比于上次我重新加了一个总父类,并且对于各种控制设备都增加一个用电器父类,这样更加有利于为下一次迭代的做好准备。
2)这次的难度对于上次明显增大,我这次都没有拿到满分,经过反思,我觉得主要是类的编程书写没有达标,还有就是将输入的各种设备的存入的编程方法不妥当。

代码品质度量:

1)这次的平均深度和最大深度都超过范围,这主要是因为if语句和for循环大量使用。
2)代码的注释过多,导致代码的复杂度降低,代码简单。
3)代码的平均复杂度低于范围,代码简单,编程方法几乎是无脑套用for循环和if语句。

踩坑心得

1.关于题目集nchu-software-oop-2024-上-4:

1)逻辑的错误,导致出现多试卷多学生乱序的情况始终不过

要先找到学生再输出相应的答题结果,并且要全部遍历,防止出现bug。

2)没有考虑好优先级

2.关于题目集nchu-software-oop-2024-上-5:

1)没有考虑好输出的问题,取整和保留二位小数没有很好的区分。

2)分档调速器的操控理解错误,未按照题目要求来编写出相应的代码。

3.关于题目集nchu-software-oop-2024-上-6:

1)白炽灯和日光灯的电阻存入错误


2)未考虑并联断路的情况

对于并联电路的处理直接从头开始处理,电阻为0没有特殊考虑。

3)没有优先考虑开关(如果开关在用电设备后面会报错)
直接按照输入的先后顺序来一步步判断

4)未考虑编号大于10的情况
这样只能截取例如:K1,K2,K3。出现编号大于10,就会出现错误。

改进建议

1.代码质量
可读性:确保你的代码易于阅读和理解。使用有意义的变量名、注释和适当的
缩进。
简洁性:避免冗余代码。使用循环、函数和库来简化代码。
错误处理:确保你的代码能够优雅地处理错误和异常情况。

2.算法优化
时间复杂度:分析自己的算法的时间复杂度,并尝试找到更高效的解决方案。
空间复杂度:同样,考虑自己的算法的空间需求,并尝试减少内存使用。
数据结构:选择最适合问题的数据结构。例如,如果你需要快速查找,考虑使
用哈希表;如果你需要保持元素的顺序,考虑使用链表或数组。

3.重构
如果自己的代码变得复杂且难以理解,考虑重构它。这通常涉及重新组织代
码、提取函数或类,以及简化逻辑。

4.代码复用
避免重复编写相同的代码。相反,提取可复用的部分到函数或类中,并在需要
时调用它们。
使用Java的库和框架来减少你需要编写的代码量。

5.持续学习
不断学习和探索新的Java特性和最佳实践。Java是一个不断发展的语言,有许
多新的功能和库可以帮助你更有效地编写代码。

最后,记得在完成每个题目后都要进行反思和总结。思考自己的解决方案的优点和缺点,并考虑如何改进它们。

总结

一、项目概述
1.题目集内容:这三次题目集的总体难度还是属于偏难一些,主要是考察类的设计,正则表达式的掌握程度。
2.完成时间:前两个题目集都提前完成了任务,但最后一次没有完成。
3.使用工具:IntelliJ IDEA
二、知识点回顾
1.基础语法:主要就是考察变量声明、条件语句、循环结构。
2.面向对象编程:考察类的设计,熟悉类与类之间的关系,对于继承和多态的合理掌握。
3.异常处理:代码出现问题时,不仅要检测语法是否有误,还要检测类之间的方法是否用的合理恰当。
4.集合框架:题目集nchu-software-oop-2024-上-4主要时用类数组来编写,
题目集nchu-software-oop-2024-上-5和题目集nchu-software-oop-2024-上-6进行改进,使用ArraytList来实现功能。
三、编程技巧与经验:
1.代码风格:在编写代码时遵循的代码风格规范,如命名规范、缩进、注释等。
2.算法优化:尽量少使用for循环,if语句的套用,可以多编写一些函数方法,排序可以定义接口来更为有效的实现排序。
3.重构与重构:代码质量不满足要求时,要提前画好类图,并且为之后可能出现的迭代情况做好准备。
四、总结与展望
1.总结:写完这三次题目集,我个人觉得我的编程能力时不达标的,但是也收获许多,关于类的设计更加熟练,更加清楚类与类之间的关系,个人的编程能力也在提高,也算得到了一定的成长。
2.展望:未来应该还是要更加刻苦,努力提高自己的编程能力,学习一些高级表达式,还有就是对于自己的代码规范要进行严格的更正。

标签:题目,罗伊鑫,NCHU,代码,2024,nchu,23201125,oop,software
From: https://www.cnblogs.com/lyx0421/p/18229732

相关文章

  • NCHU-oop-6总结
    写在前面:自己一些杂乱的想法对于这两次写的关于电路设计的编程题,一开始我是抗拒的,这些源自于高中对物理的抗拒。不过还好,在自己又一定代码实现的基础上,合理运用上老师关于设计类的建议,这些代码可以很容易被实现,剩下的就是敲下代码的时间。怎么说呢?老师和同学们一直在强调说要做......
  • NCHU题目集1~3的总结
    目录一.前言二.设计与分析三.采坑心得四.改进建议五.总结前言知识点总结题目集一字符串处理对输入的字符串进行对应的匹配与确认,找到对应的字符串的内容,将对应字符串中不合规范的内容进行处理,合格后直接存储。字符串的比对,满足要求的字符串进行输出和相应......
  • nchu-oop训练集1~3总结
    一、前言Java学习已经有一个多月了,虽然还是有些困难,但已不像初学C语言时那般吃力,Java是一门非常强大且有趣的编程语言。我喜欢Java的面向对象的特性,它让我可以更好地组织和管理我的代码。另外,Java的跨平台性也让我感到很方便,我可以在不同的操作系统上运行我的程序。这三次题目集......
  • NCHU PTA7-8次PTA题目集(成绩计算系列)以及期末考试
    一、前言:最近几次的pta作业改变了以往的计价系统,转而要求我们计算成绩。起初,我并没有遇到太大困难,只需要多花一些时间就能完成。然而,由于前几次作业做得不好,导致我在接下来的两次作业中也没有取得好成绩。随着我们对Java的学习越来越深入,我们学习了类的概念,并进一步探讨了父类和......
  • The 2019 ICPC Asia Yinchuan Regional Contest
    Preface好久没有一场比赛做出两位数以上的题了,评价是写代码写得好爽感觉这种时间比较古早的场的拿奖难度和现在比起来低好多的说,这场在现场如果有10题都能捧个亚军的杯了但感觉主要是我们J题最后5分钟乱搞了个做法过了样例交上去就直接过了,后面看了其它人的做法好像和我们的都......
  • The 2020 ICPC Asia Yinchuan Regional Programming Contest
    Preface好久没有和队友一起打比赛了,然后今天纯战犯,G一个初值设错WA了三发还卡了1h,最后冲D也因为细节原因没调出来但这场现场的榜只能用惨淡来形容,6题就稳Au了,而且感觉如果最后能出7个题的话甚至能有出线机会?看来还是前面题目区分度太小了A.BestPlayer签到题,按题意模拟即可......
  • nchu题目集1~3的总结性Blog
    题目集1~3的总结性Blog 一、前言:总结三次题目集的知识点、题量、难度等情况  针对在完成三次作业过程中产生的问题进行总结与分析。三次作业一共二十一道题目,其中前两次难度较为简单,第三次难度陡然攀升。题量方面一直处于量大管饱的阶段,尤其是第三次作业,当我满心欢喜的......
  • ReadAlignChunk_processChunks.cpp:204:processChunks EXITING because of FATAL ERRO
     001、star报错 002、解决方法fastq文件为压缩格式,运行时需添加该参数:--readFilesCommandzcat ......
  • 2019 Yinchuan K
    K.LargestCommonSubmatrix题链其实这类题就是非常典因为他给出的是一个不重复的矩阵那么我们B都会对应A有且仅有一个位置我们抽象其B->A为一个特定的向量题意就转......
  • 2020 ICPC Yinchuan
    B.TheGreatWall显然我们可以很快的思考出来n3的做法直接dp[i][j]表示前i个数分成j段的max然后我们转移配合st表dp[i][j]=max(dp[i][j],dp[k][j-1]+query_max(k+1,i)......