题目集7~8总结性blog

news/2024/10/5 8:30:09/文章来源:https://www.cnblogs.com/cmhFirstBlog/p/18274766
  • 在我看来,题目集7~8知识点在于类的使用,方法的调用,通过不同类的ArrayList的使用将所有元件信息录入,通过连接方式将其变成一条电路,从而进行计算和使用,题量不大,只有一道题,在精不在多,难度适中,可以接受并且能够编程写出,完成功能的实现。
  1. 题目集七:
    题目集7在题目集6的基础上增加了两个新的元件:互斥开关和受控窗帘;

互斥开关,顾名思义,就是相互排斥的,所以其是拥有两个开关引脚,一个接通,另一个就断开。例如:左边是汇总引脚,编号为1;右边两个是分支引脚,右上的输出引脚为2,右下输出引脚为3。1、2、3引脚均可以是输入引脚,当1为输入引脚时,2、3引脚为输出引脚;1为输出引脚时,2、3引脚为输入引脚。互斥开关只有两种状态:开关接往上面的2号引脚、接往下面的3号引脚。开关每次只能接通其中一个分支引脚,而另一个分支引脚处于断开状态。互斥开关的默认状态为1、2引脚接通,1、3引脚断开。互斥开关可以反过来接入电路,即汇总引脚接往接地端,两个分支引脚接往电源端。这样便清楚了互斥开关的作用,然后将其功能实现。因为其本质是开关,而且还是两个开关,由此,借由此,我首先测试了使用一个互斥开关控制两条路,但是结果却不尽如人意。因此,我转而使用了两个开关代替互斥开关,这样就能解决无法控制两端通路的问题。两个开关,通过名字中的2或3判断是哪一个,再通过状态closed和turned on转换开关状态,实现互斥,这样就完成了互斥开关的设计。

其次,受控窗帘,这不仅仅是单个元件电压电流可以判断的,关系到了其他的电路元件,比如:日光灯和白炽灯,受到其所发出的光照强度lum所影响,受控窗帘打开程度不同,因此,设计的时候需要在总电路上设置一个getLux()方法去获得电路总体光照强度,再通过受控窗帘自身类中设置一个getOpen()方法去获得其打开程度(打开程度根据题意反馈),但是要记得电压问题,因为受控窗帘对电压有特定要求当电压低于50V,窗帘不工作,默认为全开状态,如果电路中没有灯或者灯全部关闭,光照强度为0,窗帘处于全开状态,由此还要再getOpen()方法中获得电压咋再判断;写出其他电压,电流等属性,就完成了受控窗帘类的编写。

这次作业还增加了一个电路要求:本次迭代考虑多个并联电路串联在一起的情况。
本题考虑一条串联电路中包含其他串联电路的情况。例如:
即#T3:[VCC K1-1] [K1-2 T2-IN] [T2-OUT K2-1] [K2-2 T1-IN] [T1-OUT GND]
本例中T1\T2两条串联电路T3的一个部分,本题考虑这种类型的输入。
对此,我的判断是在原本串联电路T中设置ArrayList。这样就能在串联电路中检测到另一个串联电路并且将其连接,获得数据输入输出;而对于多个并联电路串在一起,就可以在电路类T中增加ArrayList。这样就能在串联电路中检测到另一个并联电路并且将其判断进串联电路T中,获得并联电路的合取,达到实现功能的目的。由于串联电路中既包含了串联电路又包含了并联电路,在被包含的串并联电路内要实现Calculate()计算方法,实现总体计算。

类分析
题目集7的类如图:

  1. 题目集八:

题目集8增加了多个功能:

  1. 增加管脚电压的显示:在输出每个电器的状态信息后,再依次输出该电器每个管脚的电压
  2. 电流限制:电器在工作时,过大的电流会引起电器过热,从而烧坏电路。每个元器件都有最大电流的设置,当实时电流超过最大电流时,在该电器输出信息的最后加入提示“exceeding current limit error”。
  3. 短路检测:如果电路出现无穷大的电流造成短路,所有元器件信息不输出,仅输出提示“short circuit error”。
  4. 并联电路中包含并联:考虑并联电路中包含并联电路的情况,即构成并联电路的串联电路可以包含别的并联电路。例如如下输入的电路,并联电路M2的其中一条串联电路T4中包含了另一条并联电路M1:
    即#T1:[IN D2-1] [D2-2 H1-2] [H1-1 OUT]
    即#T2:[IN D1-1] [D1-2 H1-3] [H1-1 OUT]
    即#M1:[T1 T2]
    即#T4:[IN K3-1] [K3-2 M1-IN] [M1-OUT OUT]
    即#T5:[IN K1-1] [K1-2 B1-1] [B1-2 OUT]
    即#M2:[T4 T5]
  5. 增加二极管元件,其电路特性为:正向导通,反向截止;当正向流过时,二极管导通”conduction”,电阻为0;电流反向流动时,二极管截止”cutoff”,电阻无穷大,相当于开关打开。但是注意:二极管如果两端电压相等,没有电流流过,分以下两种情况输出:如果两端电压为0,二极管的导通/截止状态由接入方向决定,1号引脚靠近电源则状态为导通,反之为截止;如果两端电压不为0,二极管导通。

首先,增加一个新的元件,二极管本质上还是一个开关,由于其电流不同的流通方向导致其开关的closed和turned on不同,可以通过其名字后缀加上“1”“2”实现state判断二极管开关状态,再进行元件信息的输出即可。
对于电流限制即可从各个元件类里增加maxI说明最大电流,通过getI()方法实现该元件电流的获取,再在输出中判断是否超过最大电流,根据题目相应信息输出该元件相应的电压和是否电流过大。
短路检测本质上是检测该段电路通路时电阻是否为0,当且仅当state=1并且R=0时该段电路的电流无限大,造成电路短路。
管脚电压输出不成问题,但是注意:当元件输入引脚为2输出引脚为1时输出信息要做出相应改变,如此以获得正确的管脚电压输出。
最后来到并联电路包含并联中来,这其实也只是串联电路包含并联电路,只不过是进行了两次然后实现并联包含并联,其实依照上一次的串联包含并联即可解决。

类说明
题目集8类图说明如图:

  1. 题目集七:

题目集7中增加的互斥开关,本来是想着设计成两个开关同时控制两条电路庚饭方便,但事实证明在后面的迭代中使用一个开关更方便,这样在输出管脚电压时就不许需要反复判断是否为同一个互斥开关,1,2,3引脚电压该怎么通过不同的名字去实现对应的电压输出。其次,因为互斥开关具有三个引脚,每个引脚的电压可能都不同,这样就需要去判断是否有电压流过等等问题,实现此类功能的难度就更大了。

受控窗帘一开始的打开度完全错误,Debug之后发现是要进行一次总的电路结算。对于每一条串联电路T都可以实现光照强度的获得,但是最后还要进行总的计算,不然数据会稍有偏差。

  1. 题目集八:

题目集8因为所加功能比较多,所以踩坑也是很容易,每条电路信息录入后都需要计算然后更新再计算,这样才能获得准确信息。比如:并联里面包含并联电路,因为它是由串联电路包含并联电路的多次迭代从而实现并联包含并联,如果不进行每一条电路的更新,计算方面的错误就会非常多。

输出管脚电压时容易输入输出反着输。由于一开始给的属性中时c1,c2.如此表示输入输出电压后,便无需判断输入输出引脚问题,直接输出就可。但此时需要按顺序输出引脚1和引脚2的电压,就需要考虑前后问题,增加了繁杂的判断才可输出。

因为所有电路我都设置了state,如果state=0,电路是断开的,初始电压就为0,但是这跟题目不符合,题目是要只有断开时,输入电压还是电路一开始的初始电压,但是输出电压为0;因此,又要修改Calculate()方法实现对应的功能。

  1. 题目集七:
    将互斥开关改成单个开关进行两条电路的连接,而不是利用两个开关控制两条电路。
    总电路进行更新再计算以获得受控窗帘打开度的准确获取。
  2. 题目集八:
    所有元件进行名字更改,以便进行引脚电压输出。
    并联电路包含并联时,电路进行更新以获得准确数据。

Calculate()方法中加入限制,只有到控制类元件时,state=0或者转换出来的电压为0电压才开始变化,并且设置Volt变量不断去改变电压,获得实时电压,进行电压有效传输。

题目集7~8知识点覆盖仍然和之前相同,在类的使用上已经大致掌握了,在继承类,抽象类等的使用也更加得心应手。题量在分析中显得功能增加的有些多,但其实总体来说还OK。总之,学到了写编程之前先列大纲,讲需求,配硬件分蓬蒿每个类及其方法,最后进行完善写出完整的带有题目所需功能的编程。

本门课程采用课前预习,课上老师讲解题目将会使用到的方法,课后布置习题以提高对学生对知识的掌握度,最后合理安排时间让我们写总结性blog,使我们对知识点的印象更加深刻,我觉得这样的方法非常好。不仅仅是学到知识,还学会了如何使用以及熟练掌握并且运用,这是非常好的。所以,并没有什么建议可以提出。

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

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

相关文章

【日记】现在的孩子真是不怕大人呢(1975 字)

正文时间太晚了,而且想写的内容有点多,就不写在日记本上了。不过说内容多,其实也只有两件事情。其他的就一笔带过吧。一件关于灵,另一件事关于遇见的孩子。首先说说工作,今天真的如昨天预料的那样,特别忙。开一个户,上午就没了。倒不是因为有多难,也不是因为只有我一个…

OOP7-8次作业

OOP7-8次作业 一.前言: 1.第七次PTA: 根据之前的内容在,之前的内容上进行修改和扩增。 ①题目理解: 1.增加了互斥开关,互斥开关的难点在于他可以转换每条路的通路和断路,而且你切换的两个引脚他的电阻也是不一样的,这就增加了你获得电路电阻的难度。 2.对于在电路的获得…

修复Win10上ListView样式不正确的问题

在Windows 11下,使用WinUI2.6以上版本的ListView长这样:然而到了Win10上,尽管其他控件的样式没有改变,但ListViewItem变成了默认样式(初代Fluent) 最重大的问题是,Win10上的HorizontalAlignment未被设置成Stretch,可能造成严重的UI错位(隔壁livelyweather也有这个问题…

Asp.Net Core 使用IBrowserFile完成图片上传

Asp.Net Core 使用IBrowserFile完成图片上传 写在开头 前几天弄自己的项目时遇到的问题,发现了asp.net core 新增的IBrowserFile接口,事实上他可以满足大多数文件的上传,此处我仅以图片作为示例。 实现 添加一个帮助类FileHelper,遵循一种规范,即将静态文件资源存放至wwwro…

Transformer 能代替图神经网络吗?

当Transformer模型发布时,它彻底革新了机器翻译领域。虽然最初是为特定任务设计的,但这种革命性的架构显示出它可以轻松适应不同的任务。随后成为了Transformer一个标准,甚至用于它最初设计之外的数据(如图像和其他序列数据)。 然后人们也开始优化和寻找替代方案,主要是为…

从零开始的 DP 学习记录

为了补上我dp的短板(其实说真的dp约等于没学过,板都没有的那种),也为了以后复习dp不会再忘记dp怎么写,dp的各种思想是怎么来的,从零开始学习 dp ,并记录在此博客。 因为要补的东西也挺多的,就不多开文章了,直接在这里记录了。 当然也会记录日常生活 大概是首发于洛谷博…

【Linux系列】 Bash 重定向中 file 21 和 21 file 的区别

一、 写在前面 在 Bash 脚本和命令行操作中,输出重定向是一项基本且强大的功能。 它允许用户控制命令的输出流,将数据从一个地方转移到另一个地方,实现更加灵活和高效的工作流程。 本文旨在记录 Bash 中几种常见的输出重定向方法,包括:> file>file 2>&1 vs 2&…

c#实现定时从外部服务器获取文件并查重(MD5)

需求:需要定时去请求外部服务器的文件,看看每天是否有新的文件上传,如果有就下载到本地服务器,并记录数据。原来的文件重命名。 方案:这里通过文件的MD5和其他条件来判断文件是否存在。因为文件量过大,所以批量下载的时候有时候会出现部分文件没能下载成功,但是数据入库…

Qt开发笔记:Qt3D三维开发笔记(一):Qt3D三维开发基础概念介绍

前言Qt3D是qt的三维,Q3D是Qt的三维图表,Qt3D是qt的自带的三维开发框架,Qt的3D开发分为opengl、Qt3D然后是第三方三维框架(OSG、vtk等等)多个技术流。  本篇描述Qt3D的基础概念,有一个基本知识。 个人经验,仅供参考(持续更新)通过深入研究和实践,从中长期看采取第三方…

VuePress日常使用

本篇来讲解下更多关于 VuePress 的基本用法本篇来讲解下更多关于 VuePress 的基本用法 ‍ 配置首页 现在的页面太简单了,我们可以对项目首页进行配置,修改 docs/README.md (这些配置是什么后面会说): --- home: true heroImage: https://s3.bmp.ovh/imgs/2022/12/02/bc742…

win10系统新建文件夹需刷新才能显示?原因及解决方法

在Win10操作系统中,一些用户可能会遇到这样一个问题:新建的文件夹在资源管理器中不会立即显示,需要刷新后才能看到。这给用户的日常操作带来了一定的困扰。接下来,系统世界官网将为您解析这一问题的原因以及相应的解决方法。一、原因分析1. 资源管理器缓存问题:在Win10系统…

【YOLOv8改进-损失函数】SlideLoss损失函数,解决样本不平衡问题

YOLO-FaceV2是基于YOLOv5的实时人脸检测模型,采用RFE模块增强小人脸检测,NWD损失处理定位偏差,SEAM注意力模块应对遮挡,Slide Loss解决样本不平衡,提升对难样本的关注。在WiderFace数据集上超越YOLO系列。论文和代码已公开。Slide Loss通过IoU加权,优化边界样本,提高模型…