最后对家居强电电路模拟程序大作业总结

news/2024/10/6 2:07:34/文章来源:https://www.cnblogs.com/huo-ha/p/18287587

————————————————————————设计与分析——————————————————————————————————
1设计电路设备类和受控设备类来封装设备的属性和行为。
2电路类用于表示电路结构,包含设备连接和状态管理。
3利用哈希表或列表来存储设备及其状态,通过设备标识和编号快速查找和更新。
//所有用电器集合
HashMap<String,Device> searchDevice = new HashMap<>();
//串联顺序
HashMap<String, ArrayList> map = new HashMap<>();
4.电路类也算作设备元件
import java.util.*;
public class Circuit extends Device{
//串联电路
private String name;
private int RofAll;
public int getRofAll() {
return RofAll;
}

	public void setRofAll() {for()RofAll = rofAll;}public String getName() {return name;}public void setName(String name) {this.name = name;}private List<Device> devices;public Circuit() {devices = new ArrayList<>();}public Circuit(String name ) {devices = new ArrayList<>();this.name = name;}public void addDevice(Device device) {devices.add(device);}public void removeDevice(Device device) {devices.remove(device);}public void CircuitWork(double I) {for (Device device : devices) {device.work(I);}}public void printAllWorkStates() {for (Device device : devices) {device.printWorkState();}}@Overridepublic void printWorkState() {// TODO 自动生成的方法存根}@Overridepublic void work(double I) {// TODO 自动生成的方法存根}

}
5.这是学习同学的思路单独设计一个分析类
ParseInput 类:该类用来解析输入的字符串,将字符串中的电器以及电路解析出来,该类只有静态方法:
void parseInput(ArrayList input):解析输入的字符串判断是串联、并联电路还是操作;
void parseSeriesElectric(String i):解析输入的串联电路;
void parseParallelElectric(String i):解析输入的并联电路;
6.我的并联设计
public class MultipleCircuit extends Device{
private String name;
private ArrayList multipleCircuit = new ArrayList<>();
private double[] I = new double[multipleCircuit.size()];
private int[] R = new int[multipleCircuit.size()];

————————————————————————踩坑心得————————————————————————————————————
花时间不够,找不到方向,不知如何正确的设计
————————————————————————改进建议————————————————————————————————————
优化正则表达式,且有时可以不用正则表达式那么麻烦,适当简化:
检查并优化正则表达式以提高输入解析的效率和准确性。
确保正则表达式能够处理各种边界情况和异常输入。
单一职责原则(SRP):
确保每个类和方法只处理它们应该处理的职责。
例如,Output类中的输出逻辑可以进一步拆分到各个设备类中,让每个设备负责自己的输出。

~
——————————————————————————总结————————————————————————————————————————
1最近几次大作业都能写,但是总是离对,成功总差一些,总差最后一层模。这几次在编写程序上花费的时间不是特别多,主要是学习新知识(抽象类接口很多集合的运用)比较占时间,但是因为没有学懂总是感觉无从下手,还有很重要一点是真的不知道我当前学习的知识大概是什么程度,与同学们相比?然后我这样设计这样做,投入大量时间后最后的产出究竟会是一场空还是走在一半的正途上,这种悬空的感觉很让人畏惧。畏手畏脚不自信最后到如此下场。学的有点找不到方向,感觉一拳打到棉花上,实属无力,想来还是自己逻辑能力不够,考虑不清楚,然后毅力和花的时间不足。我以后会慢慢加油补上的。
2我真切希望能通过实例,有不用多就一次也好:老师能带着我们从一道题目分析到最后完成的过程走一遍,而不是全让我们自己死磕。
3我意识到了时间管理的重要性,并学会了如何有效地安排自己的工作,以确保在截止日期前完成所有任务。
4最后总结一下本学期java学习主要学到以下几点:理解面向过程程序设计和面向对象程序设计的区别
理解了面向对象程序设计封装性、继承性与多态性三大技术特性
利用UML和“类”去编写程序以及思考问题
正则表达式
以及最后的抽象类的应用和一些集合类的应用。

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

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

相关文章

题目集7~8

由于个人原因,最后两次题目集未提交,对自己的放纵感到愧疚,后期的补练我也会抽出时间完成这两道题 经过分析,题目集7,是在前面的基础上加上了一个新概念:互斥开关,以及模拟一种受控窗帘, 在我的想法,互斥开关便可当作两个普通开关去完成电路,窗帘则是新增一个用电器。…

EtherCAT转Profinet网关配置说明第一讲:配置软件安装及介绍

网关XD-ECPNS20为EtherCAT转Profinet协议网关,使EtherCAT协议和Profinet协议两种工业实时以太网网络之间双向传输 IO 数据。适用于具有EtherCAT协议网络与Profinet协议网络跨越网络界限进行数据交换的解决方案。 网关XD-ECPNS20为EtherCAT转Profinet协议网关,使EtherCAT协议…

4、flask-项目拆分

项目的拆分其实就是将app.py中的工作拆分开来、类似Django一样、每个项目都把路由模板和试图函数分开写 app.py # 路由 + 视图函数from flask import Blueprint from models import *#蓝图 # 创建蓝图对象 # 第一个参数:蓝图的名字 # 第二个参数:蓝图的包名 blue = Blueprin…

2-SAT 问题

2-SAT 问题 模型有 \(n\) 个布尔类型的变量 \(x_1, x_2, \ldots, x_n\),有 \(m\) 条限制形如 \(x_i \space [\operatorname{or}/\operatorname{and}]\space x_j=[1/0]\). 求一组符合要求的解。核心问题只需要考虑有没有解。 对于每个变量都只有两种取值:\(0/1\),那么把每…

坚果云与floccus实现Chrome书签国内跨设备、跨平台同步

本文介绍基于floccus插件与坚果云协同使用的方法,对浏览器的书签进行实时在线同步的操作~本文介绍基于floccus插件与坚果云协同使用的方法,对浏览器的书签进行实时在线同步的操作。在工作与学习中,我们时常希望在不同浏览器之间实现书签的同步;而一些传统的浏览器书签同步方…

性能监控调优

1.命令行工具 1.1 jps 查看系统JVM进程 jps [options] [hostid]optionhostid:省略则本机,监控远程需要安装jstatd1.2 jstat 查看JVM统计信息 jstat -[-t] [-h] [[]]option-t:加程序运行时间 [-h]:输出设定行数加表头信息 :查询间隔时间 count:查询总次数 结果:当ou上涨趋…

【第7个渗透靶机项目】 DerpNStink

Hack it 信息搜集 发现主机 nmap 192.168.0.17 -sS -sV -A -T5 全面扫描一下,有点有用信息访问一下但是没有用。 访问一下http服务查看源代码,发现有文件泄露下面还有个flag查看info.txt。<-- @stinky,确保使用本地 dns 更新您的主机文件,以便可以在新的 derpnstink 博客…

Linux运维工程师推荐学习的开发语言

前言:会开发的运维和不会开发的运维可以说是两个世界的运维。 个人推荐python和go,前者可以做自动化运维,后者可以深挖k8s;最近就不先演示运维服务技术的部署和架构搭建了,在深挖自动化运维,为了让现在的工作更加高效和便捷。如果有需要了解的运维服务技术,可以评论说出…

2、flask-run启动参数详解

app.py 这里 app.run(True, port=5001, host=0.0.0.0) from flask import Flask#创建flask应用对象 app = Flask(__name__)@app.route(/) # 路由 def hello_world(): # 视图函数return Hello World! # 响应给前端#添加路由和视图函数 @app.route(/index/) def index():…

从零学习的JAVAday1~day7

作为一个刚要迈入大二的预备程序员,已经学习过了c语言和c++的部分知识,在暑假期间满怀期待的开始Java的学习,希望一个暑假可以对Java的了解加深一些。 学习Java首先要学习windows电脑的cmd命令: 同时点击键盘上面的win+r键输入cmd即可进入默认的cmd面版,然后我们就可以输入…

面试官:Java线程可以无限创建吗?

哈喽,大家好🎉,我是世杰。 ⏩本次给大家介绍一下操作系统线程和Java的线程以及二者的关联1. 面试连环callJava线程可以无限创建吗? Java线程和操作系统线程有什么关联? 操作系统为什么要区分内核态和用户态?⏩要想解答这些问题,我们要先从操作系统线程开始说起,让我们…

标准IO与系统IO

C平台的标准IO(可跨系统)Linux 系统IO (Linux系统平台才能使用)Linux系统的IO(输入输出)特点主要包括以下几个方面 1)文件视为一切:在Linux中,几乎所有的设备和资源都被视为文件。这意味着无论是硬件设备(如磁盘、网络接口)还是系统资源(如进程、内存),它们都可以通…