首页 > 其他分享 >题目集4~6的总结性Blog

题目集4~6的总结性Blog

时间:2024-06-09 16:35:31浏览次数:14  
标签:总结性 题目 电阻 代码 Blog 开关 电路 并联 思路

第二次Blog是对第二类大作业的总结
前言:
前三次题目集的题量不会很大,提出的引脚我是第一次正式这种问题,有点陌生。难度偏小,虽然我没有拿满,老师还把后面的迭代方向告诉了我们,也更方便我们的设计,这一次对我来说应该是一次突破,因为我从未有一次如此清楚我代码的结构和问题,但我也有一种无力感因为我的思路行不通,要更换思路进行变换,理论可行,实践为零。
设计和分析:



踩坑心得和改进建议:
我对异常处理和变化处理的操作一直不太能够实现,对电子元件直接进行电阻处理再根据开关变化对电阻进行二次变化是行不通的,不能正常处理并联电路的问题(开关均闭合,开关一开一闭,开关一开一闭但又一条路电阻为零)。在对这些问题的处理中非零返回是常态,只能放弃这种思路,采用缘路判断:在对处理时遍历判断元器件并进行赋值,再对并联电路进行特殊处理单独写一种方法通过对并联电路的判断来确定电路情况这样可以一举两得同时解决并联套并联的情况(理论可行,实践还在操作通过判断并联电路的大小来判断开关的数量再判断开关的数量是否匹配,若匹配则再进行下一步判断把开关开的电路单拿出来组成新的并联电路)这样就将复杂问题简单化,从而解决问题。另外的问题就是对于其他的问题就是精度丢失。
两次大作业连着没写完让我很崩溃,第一次是设计问题,开关总是保持一种状态,只拿了一半分,排序问题也是不会collection.sort,只能用最原始的取存重排这样就使代码变得更加繁杂。我现在所采用的就是把电子元件当做最大的父类,旗下子类包括连接器,用电器和电路,再对电路,连接器和用电器进行细分,没有采用引脚因为过于麻烦,用电压可以直接清晰地表述出该电路的占电情况,而不是借用引脚把电路串起来,做到遍历电路,但这样也用好处,那就是可以有很大的容错率前提是自己的代码是正确的情况下。
我的改进思路如下:

  1. 把对连接器状态的判断和设置放在最前面,紧接着就是对电路通路的判断,把通路拿出来重新组装电阻,在这里就包含了并联串并联和并联套并联的情况。
  2. 把电子元件的创建对象取消电阻,对用电器里包含电阻并在创建对象后用set方法来决定电阻,对全部都关上的情况不视为电阻无穷大,直接重构电路,对于短路的情况也是一样的,在并联电路中只要出现一条短路的情况就直接判断电阻为零,否则对电阻进行计算,相加减。
  3. 最后是带入电压进行计算,直接让220V进入总线路,根据分压的情况下,判断用电器的状态,并将状态记录下来。
  4. 输出还是一个一个的输出,用debug来检查输出是否存在漏洞或者问题。
    如果上面的思路不行(大概率是会出现非零返回的情况,出错就出在并联电路的电阻上),就要对并联电路的函数进行重写,令其实现重构电路的功能。
    我的思路较为复杂,我室友认为可以简化在对电路进行处理的时候就确定好电路,接着用分压的方法完成计算,这样在最先处理的时候就已经完成了对电路的处理,一举两得,而我则是把他们拆成两部分,代码更复杂,考虑的也更麻烦.对最大父类用抽象类,将他们都封装好即可。
    我觉得最难的部分就是这里改进部分的实现因为这里涉及多次遍历还有多次的集合嵌套,把并联电路当成用电器,不清楚并联的嵌套程度可能会对题目有影响,因为是多重嵌套,在写这次Blog的时候还没有想到该怎么解决这个问题,其他的就如上述所说就可以实现,我认为我和那些满分代码的最大区别就是思路,我的思路经常不能被实现,就算能被实现也会有很多误差,这些误差会严重影响到代码的实用性,还有就是思想的不同频,我常常不会表达我的问题,我室友也不知道我想讲什么,这样就好像被隔绝在一座荒无人烟的孤岛上,我的本意是用最简单的思路去实现代码功能,结果就是无法实现或者对乱序或特殊操作的难以实现,我自己基础也不是很好,代码经常要写好久,主要的时间就浪费在了思考上,经常带着思路去写代码,写着写着就搞不清楚自己在写什么了,一连几次大作业都没满分,我逐渐开始不自信了,学代码的初期,我依靠ai去理解代码,有一段时间代码还不是很长的时候我会去找ai分析我的代码,看看我错在哪里,我对代码的排序记忆不清楚,经常是这次写完下次就又不记得了,这样的经历让我的代码之路曲折不断,我坚持的原因是蔡柯老师说的要坚持写代码,这次没写完下次·就要更早开始写,要提前构思,如果挂了暑假就做大作业补考。反正就是不能退缩不能不写,写出来了就有进步,对比我第一次写的代码,在对开关的判断上还有重大失误导致开关可以判断状态,但只支持一种状态下的操作,这一度让我的室友直呼牛逼,我的代码能力不是很强,但我想要学好,当初选这个专业的时候就是零基础,我对计算机这类东西一窍不通,但我对写代码开发网页和软件十分感兴趣,来到了昌航就是为了学点真本事回去,身边有这么一群好室友,我一定要坚持下去。
    就是这串代码的问题:
点击查看代码
public void calculateResistance(){
        for(int i=0;i<Mlist.size();i++){
            for(int j=0;j<Mlist.get(i).getTlist().size();j++) {
                for(int k = 0; k < Mlist.get(i).getTlist().get(j).getSlist().size();k++) {
                    if(Mlist.get(i).getTlist().get(j).getSlist().get(k).getName().matches("K\\d")) {
                        if(((K)Mlist.get(i).getTlist().get(j).getSlist().get(k)).getState()==0){
                            for(int l=0;l<Mlist.get(i).getTlist().get(j).getSlist().size();l++){
                                if(!Mlist.get(i).getTlist().get(j).getSlist().get(l).getName().equals(Mlist.get(i).getTlist().get(j).getSlist().get(k).getName())){
                                    clist.add(Mlist.get(i).getTlist().get(j));
                                }
                            }
                            double R=0;
                            for(int l=0;l<clist.size();l++){
                                R=R+clist.get(l).getResistance();
                            }
                            for(int l=0;l<Tlist.get(Tlist.size()-1).getSlist().size();l++) {
                                if(Tlist.get(Tlist.size()-1).getSlist().get(l).getName().equals(Mlist.get(j).getName())) {
                                    Tlist.get(Tlist.size()-1).getSlist().get(l).setResistance(R);
                                }
                            }
                        } else if(((K)Mlist.get(i).getTlist().get(j).getSlist().get(k)).getState()==1){
                            double R=0;
                            for(int l=0;l<Mlist.get(i).getTlist().get(j).getSlist().size();l++) {
                                R=R+Mlist.get(i).getTlist().get(j).getSlist().get(l).getResistance();
                            }
                            if(R==0){
                                for(int l=0;l<Tlist.get(Tlist.size()-1).getSlist().size();l++) {
                                    if(Tlist.get(Tlist.size()-1).getSlist().get(l).getName().equals(Mlist.get(j).getName())) {
                                        Tlist.get(Tlist.size()-1).getSlist().get(l).setResistance(R);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }*/
总结:自己实力不到家,菜就得多练,多跟室友分享讨论,早点写,多留出时间给自己改。

标签:总结性,题目,电阻,代码,Blog,开关,电路,并联,思路
From: https://www.cnblogs.com/aixiedaimadexiaozhi/p/18239668

相关文章

  • OO题目集4~6总结
    OO题目集4~6总结​在之后的几次题目集的7-1题目中,难度渐渐高了起来,第四次题目集主要是在第三次题目集的基础上添加了一些功能,而之后的两次则是设计一个新的程序,是关于电路设备及电路的,与之前的答题程序不同,新的题目对于创新和思考能力以及思维逻辑能力要求更高,而接下来我将......
  • 华为od-C卷100分题目-3用连续自然数之和来表达整数
    华为od-C卷100分题目-3用连续自然数之和来表达整数题目描述一个整数可以由连续的自然数之和来表示给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式输入描述一个目标整数T(1<=T<=1000)输出描述该整数的所有表达式和表达式的个数。如果有多种表......
  • 第二次Blog总结
    一、前言经过题目集4至题目集6的学习与实践,我深刻体会到了面向对象编程(OOP)的魅力与挑战。本次总结将重点围绕三次题目集中的7-1题目,从知识点、题量、难度等方面进行分析与总结。知识点题目集4至6中的7-1题目,无一不紧扣面向对象编程(OOP)的核心概念。这些题目不仅深入探索了类的继......
  • PTA题目集4~6的总结
    前言1.第四次题目集的7-1在答题程序-3的基础上新增了一些内容,输入的内容增加,并且输入的格式有更加灵活,很好的考察了我们对于信息的处理能力、对正则表达式相关知识点的掌握还有使用面向对象方法编程的熟练度。此外,相比于前面三题,这次题目的要求更加***钻和细致,非常考验我们当前对......
  • PTA题目集4~6的总结
    前言[1]知识点:本次PTA主要是新增的知识点是类的继承和多态,第4次题目集是针对类的继承,第5,6次题目集是针对类的多态。[2]题量:第4次和第5次题目集都是三题,第6次题目集是一题,题量不是很大[3]难度:第4次题目集还是答题判题程序,难度还行,就是增加了选择题和填空题,我感觉难......
  • PTA训练集阶段总结blog
    目录PTA训练集总结blog1.前言2.设计与分析题目集一7.4答题判题程序四关于设计要求:UML类图及设计分析:部分源码:复杂度分析:题目集五7.1家具强电电路模拟系统—1关于设计要求:UML类图及设计分析:部分源码:复杂度分析:题目集六家居强电电路模拟程序-2关于设计要求:UML类图及设计分析:部......
  • 两次pta题目总结
    两次pta题目总结写在前面这两次pta是新题目,上次那个答题判题的没有继续迭代了,根据这两次题目我也学到了一些东西,主要是面向对象设计模式的运用,接口的使用,以及递归算法的使用等等第一题题目内容:智能家居是在当下家庭中越来越流行的一种配置方案,它通过物联网技术将家中的各种设......
  • JAVA第二次Blog
    前段时间PTA上发布了第四五六次的大作业。从第五次题目开始,题目并没有接着上次的试卷题目类的增加功能,而是改成了一道新的题目,涉及到物理电路的“家居电路设计”。注:由于老师提到不能放置太多源码防止泄露自己的代码,本期Blog中的代码均只有类的设计部分,一般不包含main函数的内容......
  • 栈经典题目(C++)
    文章目录前言一、删除字符串中的所有相邻重复项1.题目解析2.算法原理3.代码编写二、基本计算器II1.题目解析2.算法原理3.代码编写三、字符串解码1.题目解析2.算法原理3.代码编写四、验证栈序列1.题目解析2.算法原理3.代码编写总结前言一、删除字符串中的所有......
  • 题目集4-6的总结性Blog
    一,前言一-1.第四次题集是接着前面的第三次题集的迭代,知识点主要是继承的运用,正则表达式的运用同样少不了,相对于前面一次添加了对选题以及填空题,难度也相对于前一次加大。一-2.第五次题集是新的题集迭代是有关电路的,知识点有抽象类,抽象方法的使用以及继承的使用,同样正则表达式;由......