首页 > 其他分享 >23201826-熊锋-第三次blog

23201826-熊锋-第三次blog

时间:2024-06-30 20:08:44浏览次数:28  
标签:状态 输出 blog 开关 电路 23201826 熊锋 连接 设备

一.前言

这两次pta作业第一次为家居强电电路模拟程序-3,这次题型,是在家居强电电路模拟程序-2的基础上进行迭代,虽然仅仅只增加了互斥开关等,但带来的改变同上一次十分巨大,通路的判断不再仅仅局限于各个控制设备0与1,而是要判断多个控制设备的开闭,其位置乃至互斥开关的实际情况,使得并联电路和各用电器电压的判断困难。第二次为家居强电电路模拟程序-4,虽然仅仅只增加了二极管等,但同样带来的改变同上一次仍旧十分巨大。尽管这几次的作业具有极大的挑战性,但通过不断地思考、实践和反思,是我们能够逐渐掌握家居强电电路的模拟技能,为未来的学习和职业发展打下坚实的基础。

二.设计与分析

(1)家居强电电路模拟程序-3
一、题目要求分析

  1. 控制设备
    本题模拟的控制设备包括开关、分档调速器、连续调速器和互斥开关。每种设备都有其特定的功能和连接方式。
    开关:具有两种状态(0和1),可以控制电流的通断。
    分档调速器:按档位调整输出电压,每个档位对应不同的输出电压比例。
    连续调速器:按位置比例得到档位参数,输出电压与输入电压成比例。
    互斥开关:具有三个引脚,只能接通一个分支引脚,另一个分支引脚处于断开状态。
  2. 受控设备
    受控设备包括灯、风扇和窗帘。它们根据输入电压或光照强度表现出不同的工作状态。
    灯:包括白炽灯和日光灯,根据输入电压的不同,亮度有所变化。
    风扇:包括吊扇和落地扇,根据输入电压的不同,转速有所变化。
    窗帘:根据光照强度控制开合比例。
  3. 输入信息
    输入信息包括设备信息、连接信息、控制设备调节信息和电源接地标识等。
    设备信息:用特定的标识符和编号表示,如K1、F3等。
    连接信息:用方括号表示连接在一起的设备引脚,如[K1-1 K3-2]。
    控制设备调节信息:包括开关、互斥开关、分档调速器和连续调速器的调节信息。
    电源接地标识:电源VCC电压为220V,接地GND电压为0V。
  4. 输出信息
    输出信息包括所有设备的状态或参数,按特定格式输出。
    二、解题思路
  5. 模型构建
    首先,需要构建各种设备的模型,包括开关、调速器、互斥开关、灯、风扇和窗帘。每个设备都应该有一个唯一的标识符和编号,以及对应的状态或参数。
    开关:可以用一个布尔变量表示其开/关状态。
    调速器:可以用一个整数或浮点数表示其档位或比例。
    互斥开关:可以用两个布尔变量表示其两个分支引脚的连接状态。
    灯:可以用一个整数表示其亮度。
    风扇:可以用一个整数表示其转速。
    窗帘:可以用一个整数表示其开合比例。
  6. 电路连接和状态更新
    根据输入的连接信息,构建电路的连接关系。每个设备都应该知道其输入和输出引脚的连接状态。当电路状态发生变化时(如开关状态切换、调速器档位调整),需要更新整个电路的状态。
    串联电路:按照输入顺序连接设备,更新每个设备的输入和输出状态。
    并联电路:将多个串联电路的输入端短接,输出端短接,分别更新每个串联电路的状态。
  7. 控制信息
    开关控制:切换开关状态。
    调速器控制:调整调速器的档位或比例。
  8. 输出结果
    格式要求:按指定格式输出设备的状态或参数,包括开关状态、亮度、转速等。
    三、知识点
    电路基础知识:包括电压、电流、电阻的基本概念及其在电路中的作用。
    智能家居系统:涉及智能家居设备的控制逻辑和状态转换。
    编程逻辑:需要设计程序来模拟电路的连接和设备的状态变化。
    数据结构:使用合适的数据结构(如类、对象、列表、字典等)来表示和操作电路设备及其连接关系。
    四、实现方法
  9. 类和对象
    同上次家具模拟据设计为电器类子类
  10. 电路连接
    同上次家具模拟通过链表连接
    加入hushmap 保存所有信息
  11. 控制
    单独在主函数中设计一个方法进行切割
    一个方法进行用电器与控制设备的状态改变
  12. 输出结果
    使用hushmap与循环逐个按照顺序输出
    五、总结
    本题是一个复杂的编程问题,涉及电路模拟、状态管理和控制逻辑。解题的关键在于构建清晰的设备模型,正确处理电路连接和状态更新,以及解析和执行控制指令。通过使用类和对象、字典和列表等数据结构,可以有效地组织和操作电路数据。最终,按照指定的格式输出所有设备的状态或参数,完成智能家居强电电路模拟系统的设计。

(2)家居强电电路模拟程序-4
一、设备模型构建
首先,我们需要构建各种设备的模型,包括开关、调速器、互斥开关、灯、风扇和窗帘。每个设备都应该有一个唯一的标识符和编号,以及对应的状态或参数。
开关:可以用一个布尔变量表示其开/关状态。
调速器:可以用一个整数或浮点数表示其档位或比例。
互斥开关:可以用两个布尔变量表示其两个分支引脚的连接状态。
灯:可以用一个整数表示其亮度。
风扇:可以用一个整数表示其转速。
窗帘:可以用一个整数表示其开合比例。
二、电路连接和状态更新
根据输入的连接信息,构建电路的连接关系。每个设备都应该知道其输入和输出引脚的连接状态。当电路状态发生变化时(如开关状态切换、调速器档位调整),需要更新整个电路的状态。
串联电路:按照输入顺序连接设备,更新每个设备的输入和输出状态。
并联电路:将多个串联电路的输入端短接,输出端短接,分别更新每个串联电路的状态。
三、知识点
电路基础知识:理解电路的基本概念,如电压、电流、电阻、串联和并联等。
编程基础:掌握基本的编程概念,如变量、数据类型、函数、类和对象等。
数据结构:了解和使用基本的数据结构,如列表、字典、集合等,用于存储和操作电路数据。
算法设计:能够设计算法来模拟电路的连接、状态更新和控制指令执行。
输入输出处理:能够解析输入信息,并按照指定的格式输出结果。
异常处理:能够处理电路中的异常情况,如短路、过流等。
四、输出结果
根据设备的当前状态或参数,按照指定的格式输出结果。
五、新增功能实现

  1. 管脚电压显示:在输出每个电器的状态信息后,再依次输出该电器每个管脚的电压。
  2. 电流限制:电器在工作时,过大的电流会引起电器过热,从而烧坏电路。本次迭代,每个元器件都有最大电流的设置,当实时电流超过最大电流时,在该电器输出信息的最后加入提示“电流错误”。
  3. 短路检测:如果电路出现无穷大的电流造成短路,所有元器件信息不输出,输出提示“断路”。
  4. 并联电路中包含并联:本次迭代考虑并联电路中包含并联电路的情况,即构成并联电路的串联电路可以包含别的并联电路。
  5. 二极管:增加二极管元件,其电路特性为:正向导通,反向截止。
    六、实现方法
  6. 类和对象
    同上次家具模拟据设计为电器类子类
  7. 电路连接
    同上次家具模拟通过链表连接
    加入hushmap 保存所有信息
  8. 控制
    单独在主函数中设计一个方法进行切割
    一个方法进行用电器与控制设备的状态改变
  9. 输出结果
    使用hushmap与循环逐个按照顺序输出
    七、总结
    本题是一个复杂的编程问题,涉及电路模拟、状态管理和控制逻辑。解题的关键在于构建清晰的设备模型,正确处理电路连接和状态更新,以及解析和执行控制指令。通过使用类和对象、字典和列表等数据结构,可以有效地组织和操作电路数据。最终,按照指定的格式输出所有设备的状态或参数,完成智能家居强电电路模拟系统的设计。

踩坑心得

关于这几次PTA有一个关键,就是电路的串通,互斥开关,二极管,使得电路的联通变得极其复杂,只有搞清楚电路的联通顺序才能够比较好的写出这两道题,因此对于类的设计就需要更高要求,只有各个类之间的耦合性不那么强,才能做到线路的相契合,才能使得这两道题得以完好的解决。

改进建议

仔细审题理解题目所描述的问题和需求,明确要解决的核心问题是什么。注意题目中的约束条件、输入输出要求以及可能存在的特殊情况。
分析题目确定题目所涉及的技术领域和知识点。思考可能的解决方案和算法思路。对于复杂的问题,可以将其分解为更小的子问题,逐步进行分析。选择合适的技术和工具根据题目需求和自身的技术储备,考虑技术的可行性、效率和可维护性。
编写代码按照设计的方案逐步编写代码,注意代码的规范和可读性,及时添加必要的注释。
总之,解决问题需要耐心、细心和严谨的态度,不断积累经验,提高解决问题的能力。

总结

这两次PTA虽然增加的东西不多,但每一个增加都在上一次的关键点上,每一次增加都使得代码必须改进一大部分(也是我的代码结构不行),既费时又费力,因此作为软件工程师,一个好的代码结构是必须的,除此之外,对于题目相关专业的知识也是必须的,这几次题目虽然相关电学知识并不多,但同样需要几个基础的电学公式才能够得以解决,因此我们软件工程师对于知识的储备必须不断增加,活到老学到老。

标签:状态,输出,blog,开关,电路,23201826,熊锋,连接,设备
From: https://www.cnblogs.com/kasrd/p/18276879

相关文章

  • 第三次blog
    1.前言一、知识点关于类1:类似于C语言的结构体,但比C语言中的结构体作用更多,且适用范围更广2:懂得封装和公开的区别,即private和public的区别,用private可以防止数据的泄露3:用类把题目分解,以便更好的解决题目,创立多个类,来分解题目。4:在Java开发中,类是实现功能的基础。通过定义类,......
  • 第三次Blog
    (1) 前言:第七次大作业与第八次大作业知识点要是继承与多态并且对类方法的运用,题量比较大,难度也是不断上升。第七次大作业在第六次大作业基础上增加了受控窗帘这一受控设备与互斥开关这一控制开关,并考虑了一条总电路上有多个并联电路,输入信息也变得与第六次大作业不一样,但输出信息大......
  • 23201115-邓俊豪-第三次blog
    目录blog2前言关于难度和题目量关于知识点设计与分析pta-7一、项目简介二、项目实现三、项目测试四、代码示例五、总结六、代码分析pta-8一、项目简介二、项目实现三、项目测试四、代码示例五、总结六、代码分析改进建议blog2前言关于难度和题目量前三次大作业难度属于偏难水......
  • PTA题目集7~8的总结性Blog
    前言:对于我这种水平的学生来说本次的7-8次PTA的难度之大令我无从下手,况且之前的第6次PTA就已经让我望而止步了,更别提这两次在第6次PTA题目集之上再次进行迭代的题目了。再加上面临的期末周,大量学科等着我去复习,以至于没时间去钻磨PTA的改动,哭死,连老师都说单单是第8次题目集的题目......
  • 第三次blog
    一:前言这是最后一次大作业了,本次大作业让我感觉到难度很大,同时让我也学会了不少东西。学会了如何采用面对对象程序设计,更好的满足对象的需求,使得代码的功能性更强,同时使代码更加严谨,有效。智能家居是在当下家庭中越来越流行的一种配置方案,它通过物联网技术将家中的各种设备(如音......
  • PTA题目集7~8总结性Blog
    (1)前言题目集7,8主要涉及以下知识点,Java是一种面向对象的编程语言,需要理解类和对象的概念,如何设计和实现各种设备的类。设计控制设备类和受控设备类,理解如何通过类和对象来模拟真实世界中的设备和其行为。通过继承和多态实现设备之间的关系和行为的多样化。例如,可以将不同类型的......
  • 2024年6月16日 18:10,cnblog博客园的第一天!!!
    终于A了P06614迷宫游戏5,原来是动态规划......点击查看代码#include<bits/stdc++.h>#definedebug(a);cout<<#a<<"="<<a<<endl;#definerep(i,a,b)for(inti=a;i<=b;i++)#definepep(i,a,b)for(inti=a;i>=b;i--)usingnamespacestd;......
  • Vulhub WebLogic漏洞复现
    目录前言任意文件上传漏洞(CVE-2018-2894)管理控制台未授权RCE漏洞(CVE-2020-14882&CVE-2020-14883)未授权RCE漏洞(CVE-2023-21839)SSRF漏洞(CVE-2014-4210)前言前面两篇针对WebLogic存在的XMLDecoder和T3协议反序列化漏洞进行了分析和复现,这里继续借助vulhub来复现WebLogic的其他漏洞......
  • 【护网必备】外网打点必备-WeblogicTool
    项目介绍迫于目前现有的weblogic工具没怎么更新、payloayjdk适用版本等问题,所以基于superman18、sp4zcmd等项目,写一个weblogic工具,工具运行版本要求jdk8(深信服深蓝实验室天威战队强力驱动)支持漏洞CVE-2023-21931(JNDI)CVE-2023-21839(JNDI)CVE-2020-2551(JRMP)CVE-2020-2551......
  • WebLogic XMLDecoder反序列化漏洞
    目录前言XMLDecoder概述XMLDecoder反序列化漏洞漏洞复现前言上篇复现了T3反序列化漏洞,XMLDecoder反序列化在WebLogic中也是一类影响很大的反序化漏洞。XMLDecoder概述XMLDecoder是JDK自带的以SAX方式解析xml的类,实现java对象和xml文件之间的转化。其中序列化过程是将java对象......