第三次blog总结

news/2024/7/1 4:00:31/文章来源:https://www.cnblogs.com/DHMO/p/18274437

一、前言:

  • 家居强电电路模拟程序-3:
    1.知识点:考察类间关系的设计。
    2.题量:1道迭代难题。
    3.难度:这次在上次的基础上添加了互斥开关和窗帘,有一定难度,需要考虑互斥开关的设计。

  • 家居强电电路模拟程序-4:
    1.知识点:考察类间关系的设计。
    2.题量:1道迭代难题。
    3.难度:这次在上次的基础上添加了二极管,输出管脚电压,输出电流限制,输出短路检测以及并联电路中包含并联电路,在这些里面,最难的主要是输出管脚电压,这方面要结合一些物理特性来设计就会比较困难,添加的其他内容就还好,不至于太难。

二、设计分析

  • 家居强电电路模拟程序-3:
  1. Electric 类:表示一个电路设备,该类包含的属性有:
    input(double):表示该电路设备的输入电压;
    output(double):表示该电路设备的输出电压;
    voltage(double):表示该电路设备的电压差;
    包含的方法:

  2. SeriesElectric 类:表示一个串联电路,该类包含的属性:
    elements(ArrayList):表示该串联电路中所包含的电路设备;
    包含的方法:

  3. ParallelElectric 类:表示一个并联电路,该类包含的属性:
    elements(ArrayList):表示该串联电路中所包含的串联电路;
    包含的方法:

  4. ElectricEquip 类:该类是抽象类,表示一个电子元件,该类继承自Electric类,包含的属性:
    type(String):表示该电子元件的种类;
    num(String):表示该电子元件的编号;
    power(double):表示该电子元件的输出功率(eg:电灯输出的是亮度,风扇输出的是转速);
    包含的方法:

  5. Power 接口:该接口用来给个各种电子元件设置输出功率,包含一个抽象方法:

  6. K 类:表示一个开关,该类继承自ElectricEquip类,包含的属性:
    open(boolean):表示该开关的状态,true表示开关闭合,false表示开关断开;
    包含的方法:

  7. F 类:表示一个分档调速器,该分档调速器有4个档位,每个档位的输出电位分别为0、0.3、0.6、0.9倍的输入电压,包含的属性:
    pos(int):表示该分档调速器的档位;
    包含的方法:

  8. L 类:表示一个连续调速器,该连续调速器按位置比例得到档位参数,包含的属性:
    parameter(double):表示该连续调速器的档位参数;
    包含的方法:

  9. H 类:表示一个互斥开关,引脚1一定会与引脚2或者引脚3其中一个连接,可以将一个互斥开关设计成两个普通开关和两个电阻,这个两个开关和电阻分别在其所在的电路中,包含的属性:
    connect (boolean):表示该互斥开关引脚1和引脚2是否连接;
    k2(K):表示该互斥开关引脚2对应的开关;
    k3 (K) :表示该互斥开关引脚3对应的开关。
    resistance2(Resistance):表示该互斥开关引脚2对应的电阻,电阻为5;
    resistance3(Resistance):表示该互斥开关引脚2对应的电阻,电阻为10;

  10. LightB 类:表示一个白炽灯,包含的方法:

  11. LightR 类:表示一个日光灯,包含的方法:

  12. Fan 类:表示一个吊扇,包含的方法:

  13. A 类:表示一个落地扇,包含的方法:

  14. Resistance 类:表示一个电阻,只包含一个构造方法:

  15. S 类:表示一个受控窗帘,包含的方法:

  16. ParseInput 类:该类用来解析输入的字符串,将字符串中的电器以及电路解析出来,该类没有属性,只有静态方法:

  • 家居强电电路模拟程序-4:
  1. Electric 类:表示一个电路设备,该类包含的属性有:
    input(double):表示该电路设备的输入电压;
    output(double):表示该电路设备的输出电压;
    voltage(double):表示该电路设备的电压差;
    包含的方法:

  2. SeriesElectric 类:表示一个串联电路,该类包含的属性:
    elements(ArrayList):表示该串联电路中所包含的电路设备;
    包含的方法:

  3. ParallelElectric 类:表示一个并联电路,该类包含的属性:
    elements(ArrayList):表示该串联电路中所包含的串联电路;
    包含的方法:

  4. ElectricEquip 类:该类是抽象类,表示一个电子元件,该类继承自Electric类,包含的属性:
    type(String):表示该电子元件的种类;
    num(String):表示该电子元件的编号;
    power(double):表示该电子元件的输出功率(eg:电灯输出的是亮度,风扇输出的是转速);
    包含的方法:

  5. Power 接口:该接口用来给个各种电子元件设置输出功率,包含一个抽象方法:

  6. K 类:表示一个开关,该类继承自ElectricEquip类,包含的属性:
    open(boolean):表示该开关的状态,true表示开关闭合,false表示开关断开;
    包含的方法:

  7. F 类:表示一个分档调速器,该分档调速器有4个档位,每个档位的输出电位分别为0、0.3、0.6、0.9倍的输入电压,包含的属性:
    pos(int):表示该分档调速器的档位;
    包含的方法:

  8. L 类:表示一个连续调速器,该连续调速器按位置比例得到档位参数,包含的属性:
    parameter(double):表示该连续调速器的档位参数;
    包含的方法:

  9. H 类:表示一个互斥开关,引脚1一定会与引脚2或者引脚3其中一个连接,可以将一个互斥开关设计成两个有电阻的开关,这个两个开关分别在其所在的电路中,包含的属性:
    connect (boolean):表示该互斥开关引脚1和引脚2是否连接;
    k2(K):表示该互斥开关引脚2对应的开关;
    k3 (K) :表示该互斥开关引脚3对应的开关。
    包含的方法:

  10. P 类:表示一个二极管,二极管的正向为引脚1到引脚2,如果电流方向与二极管方向相同则二极管电阻为0,如果电流方向和二极管方向相反则这条串联电路可视为断开,包含的属性有:
    k(K):表示一个开关,这个开关根据电流的方向决定是开还是关;
    包含的方法:

  11. LightB 类:表示一个白炽灯,包含的方法:

  12. LightR 类:表示一个日光灯,包含的方法:

  13. Fan 类:表示一个吊扇,包含的方法:

  14. A 类:表示一个落地扇,包含的方法:

  15. S 类:表示一个受控窗帘,包含的方法:

  16. ParseInput 类:该类用来解析输入的字符串,将字符串中的电器以及电路解析出来,该类没有属性,只有静态方法:

三、踩坑心得

  • 家居强电电路模拟程序-3:
  1. 在case9-10中,我的窗帘设计的是默认是0%,也就是默认是关闭的,但题目要求是默认全开,也就是默认是100%;
  2. 在case27-29中,因为排序问题而导致出错,之前这些电器都是用HashMap来存,比如开关:public static HashMap<String, K> Ks = new HashMap<>(),每一个编号(String)对应着这个编号的开关,但是HashMap的排序是不对的,不完全是按照字典序来排的,可以将HashMap改成TreeMap,TreeMap是按照key的顺序来排的,而这里的编号是字符串,也就是按照字典序来排的;
  • 家居强电电路模拟程序-4:
  1. 互斥开关因为有3个引脚,所以互斥开关引脚的电势要Override父类的计算引脚电势的方法,这时候互斥开关再设计成开关和电阻的形式就比较麻烦了,可以直接设计成一个有电阻的开关,互斥开关引脚的电势就可以直接等于这两个开关引脚的电势。

  2. 再就是这种情况,只闭合K1;K2和K3断开;K2两端的电势分别为220和0,改完这种情况就有84分了。

  3. 最后是这种情况,但是我处理了这种情况之后,分数反而变低了,之后就没有再写了,不清楚是思路有问题还是设计的有问题。

四、改进建议

  • 家居强电电路模拟程序-3:
  1. 这次的互斥开关中的开关和电阻可以合在一起设计成有电阻的开关,比如下一次pta作业中就会用到。
  • 家居强电电路模拟程序-4:
  1. 二极管如果两端电压相等并且没有电流流过可以分以下两种情况输出:如果两端电压为0,二极管的导通/截止状态由接入方向决定,1号引脚靠近电源则导通,反之截止。如果两端电压不为0,二极管导通。这是老师给出的建议。

五、总结

  • 最后一次pta的题目比较难,主要还是之前说的那个原因,要输出管脚电压,这里面有太多的情况,还有物理原理,导致出现了许多的问题,就比如老师给出的建议中,二极管如果两端电压相等没有电流流通且两端电压不为0,二极管就一定导通吗?如果这个二极管是截止的,但是被一根电线短路了呢?两端电压是相等的且不为0,并且这个二极管也是没有电流流过的。所以在写最后一次pta的时候,越写越乱,写到后面就不想写了。
  • 不过感觉第7次的题目设计的还好,不算难,也不算简单,需要去发现一些细节,发现一些小问题,并对这些问题进行修改调试,修改完成之后会拿到满意的分数。
  • 总的来说,这一系列的pta在不断的迭代,自己的水平应该也是随着pta的迭代不断的提高的,虽然这东西感觉不到,但写了题目肯定是会效果的,至少积累了经验,积累了知识,积累了能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/733647.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows下搭建lisp环境

因看了《黑客与画家》,想要跟着作者的《ANSI Common Lisp》学习一下lisp,记录一下lisp环境安装过程,及中间出现的问题。 lisp环境选择:emac+slime+clisp,在windows 11下安装。 1.安装Emacs Emacs官网:GNU Emacs - GNU Project1.1 进入官网,选择windows 1.2 选择 main GN…

深度学习--RBM(Restricted Boltzmann Machine)受限玻尔兹曼机-算法--91

目录1. 原理2. 结构 1. 原理 参考: https://bacterous.github.io/2018/05/22/Restricted Boltzmann Machine/ 受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是G.Hinton教授的一宝。 Hinton教授是深度学习的开山鼻祖,也正是他在2006年的关于深度信念网络DBN的工作,以及…

【WPF】根据选项值显示不同的编辑控件(使用DataTemplateSelector)

接了一个小杂毛项目,大概情形是这样的:ZWT先生开的店是卖拆片机的,Z先生不仅卖机器,还贴心地提供一项服务:可以根据顾客需要修改两个电机的转向和转速(机器厂家有给SDK的,但Z自己不会写程序)。厂家有配套一个调节器,调整参数时连接到拆片机的串口上,然后旋转按钮可以…

OO第七,八次大作业总结

一、前言   在这个学期即将迎来尾声的时候,这个阶段的大作业也迎来了最后的两个迭代大作业,而本次博客就将围绕这两个迭代大作业讲述二、设计与分析  这两次的迭代作业的类设计其实没有很多的变化,只不过根据题目要求添加了互斥开关和受控窗帘,二极管这几个类,其中互斥…

微信内置H5支付

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣场景是用户通过微信扫app内的收款码,跳到一个h5页面。然后完成支付。 代码实现的整体流程: 使用微信扫码,码是app内生成的,码的内容是一个h5页面链接,扫码完成后跳转到自定义的h5支付界面。 扫码进入后,将页面展示所…

《编译原理》阅读笔记:p25-p32

《编译原理》学习第 5 天,p25-p32总结,总计 8 页。 一、技术总结 1.lexical lexical这个单词后续会经常用到,所以首先要搞懂它的英文意思,不然看到中文的“词法,语法,文法”这三个词的时候就会懵了——lexical对应这三个里面的哪一个? (1)lexical: lexicon + al,加…

OOP七,八次作业总结

OOP四到六次作业总结 一.前言: 第七八次为家庭电路分析程序。 在第七次作业中,家庭电路系统,匹配类设计不当 在第八次作业中,我修改了输出类,并优化类的设计 二,设计与分析: 1.家居强电电路模拟程序-3(第七次作业) 在本次作业中,我对类的设计较为直白,输出类也没有…

findfont: Font family Times New Roman not found.

这是因为在python环境中的matplotlib文件夹下没有这个字体的文件。 对于windows系统,请参考:https://blog.csdn.net/qq_49323609/article/details/139026798 Macos系统:先打开软件:找到字体的路径然后模仿以上https://blog.csdn.net/qq_49323609/article/details/139026798…

模拟集成电路设计系列博客——8.2.1 环形振荡器

8.2.1 环形振荡器 在这一章节,我们将介绍振荡器的基本概念。环路振荡器可以分成若干种,但两种主要的分类依据是直接产生正弦信号还是产生方波(或者三角波)信号输出。正弦波输出振荡器常被用于一些频率选择或者反馈电路的调谐电路,而方波输出振荡器常被用于一个非线性反馈电…

分类器

网络模型分为特征提取器,包括一系列卷积层。池化层、激活函数; 分类器则是后面的全连接层; 对于全连接层直接输出的值为logits;logits也叫做模型输出的对数几率,$n_j$ 通常表示为模型对于第 j 类的输出值,也就是在进行Softmax函数转换之前的原始logits

Graph Neural Networks based Log Anomaly Detection and Explanation论文阅读笔记

1.介绍 现代高科技系统,如云服务器或高性能计算机,通常由大量的组件组成。随着时间的推移,这些系统变得越来越复杂,使得手动系统操作和维护变得困难甚至不可行[17]。因此,自动化系统操作和维护是非常可取的。为了实现这一点,系统日志被普遍用于记录系统状态和重要事件。通…

Miniconda安装使用说明

Anaconda这安装包体积真是劝退我了https://docs.anaconda.com/miniconda/miniconda是最小的conda安装环境,只有conda+python+pip+zlib和一些其他常用的包,体格不到100Mb,非常迷你。 Miniconda 使用教程 创建和管理环境 Conda 允许用户创建隔离的环境,以避免不同项目之间的依…

m基于GA遗传优化的高斯白噪声信道SNR估计算法matlab仿真

1.算法仿真效果 matlab2022a仿真结果如下:2.算法涉及理论知识概要基于遗传算法(Genetic Algorithm, GA)的高斯白噪声信道(Additive White Gaussian Noise, AWGN)信噪比(Signal-to-Noise Ratio, SNR)估计方法是一种利用生物进化原理进行全局优化的技术,旨在寻找最优解,…

重生之我在男航学Java-3(完结)

一、前言家居强电电路模拟程序-3 考查内容:类的设计(适应迭代以及合理的类间关系的设计),正则表达式的应用(如何正确解析输入),java中集合框架的熟悉与使用并且选择合理的集合框架(存储数据并且方便数据的增删改查) 新增内容:互斥开关,落地窗帘 本次PTA由于自身的原…

嵌入式计算和视觉加速的开放标准

嵌入式计算和视觉加速的开放标准 https://www.khronos.org/assets/uploads/developers/presentations/Khronos_Embedded_Compute_and_Vision_Overview_Jun24.pdf Khronos将软件连接到硅 开放、免版税的互操作性标准,以利用GPU、XR和多处理器硬件的力量3D图形、增强和虚拟现实、…

第三次Blog作业

题目集6-7的总结性Blog 一、前言 题目集总结 第六次题目集 知识点:控制理论、电路设计、设备工作原理 题量:中等 难度:中等偏上控制设备部分涉及对开关、分档调速器、连续调速器三种设备的理解和操作。需要理解开关的两种状态,分档调速器的档位变化以及连续调速器的连续调节…

第三次blog

第三次blog感悟 随着知识越学越多,任务也越来越繁重,难度也是与日俱增,也许是时间花得还不够也不够认真导致最近的一些pta作业都完成得差强人意,我认为java的学习最重要的是写作业的认真、严谨的逻辑以及大把的时间。nchu-software-oop-2024-上-6 本次作业题目大致内容 1、…

第三次PTA作业总结

一.第七和第八次PTA作业总结 1.第七次PTA作业的分析 (1).设计思路: 设计电路设备类(如ControlDevice, AdjustableDevice, ExclusiveSwitch)和受控设备类(Light, Fan, Curtain)来封装设备的属性和行为。 电路类(SequentialCircuit, ParallelCircuit)用于表示电路结构,…

在WPF中使用着色器

概念类比范畴 CPU GPU二进制文件 .exe .cso / .ps二进制指令 机器码 CSO(shader指令)助记符 汇编 SL高级语言 C# HLSL高级语言文件 .cs .hlsl / .fx高级语言编译器 csc.exe fxc.exeAPI .NET API DirectX API运行时环境 CLR DirectX调试工具 Visual Studio Debugger RenderDoc着…