首页 > 其他分享 >第二次Blog

第二次Blog

时间:2024-06-09 10:22:07浏览次数:16  
标签:代码 练习 Blog 修改 电路 并联 第二次 元件

前言:
个人感觉
第四次练习是之前三次练习的总结和衍生,在前三次练习的不断叠加的基础上,添加了选择题、多选题、填空题和对其他异常情况的添加的需求,回望第一次练习,从一开始的单单通过输入题目数量和题目以及其答案输出题目以及其对错,通过一次又一次对一开始的源码的修改和功能的添加,最后实现了试卷对题目的调用、题目种类的添加、对异常状况的处理.......原来的代码逐渐变得更实用,更偏向现实中的应用,个人感觉这是一次非常奇妙的体验

第五次练习算是开了个新坑,结合老师的话和关于之后练习的资料,与之前练习不同的一点考的是类与类之间继承的运用成为了本四次大作业的关键点,所以在完成这次练习的途中除了类的定义和类与类之间关系的运用,还得注意一下哪里的功能方便以后的继承类来实现和穿插

第六次练习在第五次练习的基础上除了添加加了落地扇这一新的对象以外还增加了对并联电路的录入两种方式的添加,最主要的难点还是在主电路中并联电路电阻的获取和分压的计算

对这三次练习来说,整体题量虽然减少,但每题的难度是不断增加的
设计与分析:

相前面几次练习,这题不仅仅是增加了选择题、多选题、填空题这些题目种类,还增添了“半对”的给分条件,除了针对这些题目的信息录入对原有的代码进行修改,还要在答案对比的时候进行一个是否符合半对条件的判断

相对于前几次的代码修改,这次的修改幅度较小,除了题目的添加条件少以外,还应该得益于之前对输入进行录入的较灵活代码作为基底

这里要注意的有半对的条件,针对如果有错误字符就视为完全错误这一点,我从答案中从每个字符开始取答题者答案的字符串长度来取得对应的字符串来进行半对的判定

在电路图这一新坑里,因该题的总电路只有一条线,结合老师给的后面并联的资料,打算先建立一个主线路类,之后再通过建立独立的并联类来实现将来对并联电路的录入和在主线路中的插入

这里要特别注意的应该是电路中开关的开闭,只考虑一条线路的话只要有一个开关是打开的整个电路就没有电流,在对总电路的电压进行计算时会起到举足轻重的作用

通过把整个电路化为StringBuffer放到一个类中,对电路的修改只要通过录入修改电路元件的字符串进行对比,复杂点的再根据修改方式进行修改就搞定了

在对电路的StringBuffer进行特定的修改时,为了代码的简洁性和易度性我试着加了类似于“工具类”的构造方法,但该方法在该方法属于的类中直接使用会出现错误,再考虑到其他类也会使用到这些方法,我新建了一个工具类,在将其作为父类的基础上,让现在及以后的子类都能够使用上该类的构造方法

跟上面所说的一样,该题增加了并联电路的录入,根据题目给的信息,我又增添了两个总电路Line的子类T_Line和M_Line来分别储存单独存在的电路和引用这些电路的并联电路,除此之外针对电路并联的录入还有新的输入方式-----【电路元件1-2 电路元件2-1 电路元件3-1】,针对这里除了采用循环一直读取到下一个类似【电路元件2-2 电路元件3-2 电路元件4-1】的数据的录入方法以外,我还采用和之前M电路(并联电路)对主电路一样的插入方法-----将并联电路用括号括起来,再通过特殊符号隔离并联中的串联电路

因该次大作业中增加了电阻和分压的概念,所以在最后对每个电路元件获得分压的计算上,针对主电路的电路元件的分压都是由总电压(若有调节器则乘以调节器调节倍率)乘以该电路元件的电阻再除以电路总电阻来得到的,针对并联电路还要增加一个是否有开关断开的判断

在该次大作业中还增加了新的电路元件---落地扇,因它的运作方式和之前设定的电路元件吊扇相似,就直接在吊扇源代码的基础上修改分压对其运作影响的部分实现了落地扇的添加

踩坑心得:

虽然之前有考虑到增加并联电路的需求,但真正在之前思路的基础上实现还是有不小的困难,为实现之前的思路,这代码是越写越长,等回顾时那代码的长度都让我不想去看。。。。。。现在想来原来的思路有点复杂,且灵活度较低,开始应该好好考虑并联电路的实现方法再写代码

因个人的做题习惯,在做该次大作业时我先粗略地把题目看一下,再把精力投到以样例为标准的代码修改之中,但在每个样例都测试通过后提交却只得了30分不到,为此纠结了好一阵子(。_。),回头仔细看了题目才发现还有另一种并联输入方法。。。。。。所以说做题前要好好看题啊(_

在BUG方面
大多是因为没考虑到变量的数据类型或对继承的使用不熟练所导致的

其他包括但不限于

1.循环寻找对应字符串时因类似text.substring(i,i+2)时循环结束条件不应该是i<text.length(),而是i+2<text.length()的错误导致字符串查找失败

2.text.substring(j,i)的调用多了几个字符导致Integer.valueOf失败

3.题目通过的条件除了和对应的输出要求相同以外顶多允许在最后添加一个'\n',而我最后的输出里多了两个'\n',

改进建议:

第四次练习的7-1

经过多次修改,在许多或是判断,或是字符串的提取等功能的实现上有一些相似的操作,代码短一点的还行,但一但代码写得太长,在检查代码功能时该部分代码容易导致难读、错读,说白一点就是可读性太低,复杂性太高,且在整体的代码长度上会起到不小的影响

修改上可以建立新的构造方法或是新的类专门来实现重复性操作,像是读取特定字符串位置,判断字符串是否符合要求的都可以通过返回int和boolean来实现相似操作,再在这些构造方法下添加注释,这样不仅可以避免新的只为这些操作的变量的建立,还可以使代码简洁易懂,减少原代码的长度,减少该功能里代码的复杂度,以此来增加代码的可读性

第五次练习的7-1

虽然一开始感觉还行,但经过重新检查一遍,主要的Line类的构造方法还是偏多,整体的代码长度还是偏长

修改上可以把一些像change_D、change_K等针对字符串修改的构造方法放到另一个类中,再通过引用的方式来实现这些原要求的功能

第六次练习的7-1

就如之前所说,因在对并联电路的录入和分压计算上的思路不够简洁、灵活,并联电路的用括号括起来,再用特殊符号隔开线路的方法虽然在这次只有一个并联电路的大作业中行得通,但会使今后像是迭代4的包含关系等功能的实现变得较为困难

修改上可以在现有的思路上尽量往好的地方修改(感觉代码也已经回不去了(。_。))像是在并联电路的开关判断上如果一段电路的开关是断开的,则可以直接把那段电路从并联电路中删除。并在此基础上吸取教训,避免另一个大坑的创造

总结:

虽然老师说不给太多样例是为了让我们体验一下实际工作的感觉,我觉得这也蛮有道理的,但个人感觉题目还是样例给较全点较好,数量不用太多但希望种类给全,像是第六次练习的7-1中所给出的样例全都是关于并联电路 M引用串联电路 T,然后电路引用并联电路 M的形式,另一种并联电路录入【电路元件1-2 电路元件2-1 电路元件3-1】的形式却没有相应的样例,在不知道之后输入形式的情况下根据自己的猜想继续做下去(虽然最后也没得到新的分数(_))感觉有点没方向和信心

经过前三次大作业在第四次大作业填完之前的大坑,又在第五次大作业转而跳入新的大坑,在对将来功能做计划、实际功能的增添、对原代码的修改等过程中,个人感觉无论是在继承的使用的方面还是对java的类的使用方面都得到了不小的锻炼,

个人感想:

在一次又一次练习中不断认识到自己的不足并以此为重点不断锻炼自己的思路和编程技术,个人感觉这是一个充实,富有收获的过程,希望今后我也能不断改善自己的编程习惯和编程思维,在学习java这条路上走下去,走的久,走的远

标签:代码,练习,Blog,修改,电路,并联,第二次,元件
From: https://www.cnblogs.com/htzero/p/18228437

相关文章

  • 第二次Bolg
    1.前言知识点:题目集4:类间的关系,关联,依赖,聚集,继承,正则表达式,Map,List接口题目集5:类间的关系,关联,依赖,聚集,继承,正则表达式,List,Map,ArrayList,Collection,迭代器。题目集6:类间的关系,关联,依赖,聚集,继承,正则表达式,抽象类,抽象方法,abstract,List,Map.题量:题目集4:正常,答题判断程序代码要求......
  • Java第二次Blog
    7-4~6题目集前言这些题目主要用到对象与类的处理继承与多态的使用:继承和多态是面向对象编程中相互关联的两个概念。继承为多态提供了基础,而多态则通过继承实现了代码的灵活性和可扩展性。1.字符串处理:需要对输入的题目信息和答题信息进行字符串分割、提取和处理,以获取题目编号......
  • 第二次Blog
    一.前言第四次大作业是第三次大作业的迭代,增加了题目的类型,即题目可以有选择题和填空题,其中选择题也可能有多选题,存在多个答案。以此增加了对继承和多态的使用,同时也考验了正则表达式的匹配,输入时的情况与第三次改变较大。接下来五到六次大作业则改变为对电路的设计,总体也是考察......
  • 南昌航空大学软件学院23201823第二次blog
    一、前言:这是第二次的blog,接下来关于这最近三次的PTA大作业,只有第一次是上次答题判题程序的延续,接下来则是一个全新的关于电路的设计,最新的电路设计相较于之前的答题判题程序来说的话,难度确实有所下降。前两次中都含有三道题,而最后一次的PTA则是删去了其余两道题,让我们专心钻研新......
  • 23201405-pta的总结blog-二
    前言本次作业blog主要对于答题判题程序4、家具强电电路模拟1-2进行分析说明和总结。这三次题目集的题目量和难度不必多说,题不在多,而在精。题目主要是为了提高能力,区分层次而出,难度不小。知识点主要有,抽象类、输入输出的处理,正则表达等。更重要的是分析题目,设计程序并实现的能......
  • 第二次Blog
    题目集4~6总结性Blog一、前言在题目集4至6的完成过程中,我深入学习了多个编程知识点,并在实践中不断巩固和提升。针对7-1题目,我发现这三次题目集在知识点的考察上具有一定的连贯性和递进性,题量适中,难度逐渐上升。7-1题目通常作为每个题目集的压轴题,不仅考查了我们对基础知识的掌握......
  • 题目集4~6的总结性Blog
    前言这三次的PTA作业日粮不大,知识点覆盖也不广,主要是对于类方法的掌握,难度适中,是可以接受的程度。答题判断程序4是接着答题程序3的,虽然增加了功能和排序,但是因为有了之前的代码,并不难写;家居强电电路模拟程序1是一个新的程序,最开始感觉是无从下手的,对于电路的输入和控制设备状态......
  • 第二次blog总结
    目录一.前言二.设计与分析:三.踩坑心得四.改进建议五.总结一.前言第四次大作业:1.题量:这次的大作业有三道题,题量较少。2.难度:第四次大作业的核心题目答题判题程序-4是经过了三次对第一次答题判题程序为基础的迭代而成,难度毋庸置疑,而且因为第一次总结,这次大作业距离上一次大作业也......
  • PTA三次题目集总结-第二次blog
    以下内容是我对pta题目集4-6次大作业的总结nchu-software-oop-2024-上-4本次作业新增内容:1、输入选择题题目信息题目信息为独行输入,一行为一道题,多道题可分多行输入。格式:"#Z:"+题目编号+""+"#Q:"+题目内容+""#A:"+标准答案格式基本的约束与一般的题目输入信息一致。新......
  • 第二次Blog
    (1)前言:智能家居是在当下家庭中越来越流行的一种配置方案,它通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境......