————————————————————————设计与分析——————————————————————————————————
1设计电路设备类和受控设备类来封装设备的属性和行为。
2电路类用于表示电路结构,包含设备连接和状态管理。
3利用哈希表或列表来存储设备及其状态,通过设备标识和编号快速查找和更新。
//所有用电器集合
HashMap<String,Device> searchDevice = new HashMap<>();
//串联顺序
HashMap<String, ArrayList
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
private double[] I = new double[multipleCircuit.size()];
private int[] R = new int[multipleCircuit.size()];
————————————————————————踩坑心得————————————————————————————————————
花时间不够,找不到方向,不知如何正确的设计
————————————————————————改进建议————————————————————————————————————
优化正则表达式,且有时可以不用正则表达式那么麻烦,适当简化:
检查并优化正则表达式以提高输入解析的效率和准确性。
确保正则表达式能够处理各种边界情况和异常输入。
单一职责原则(SRP):
确保每个类和方法只处理它们应该处理的职责。
例如,Output类中的输出逻辑可以进一步拆分到各个设备类中,让每个设备负责自己的输出。
~
——————————————————————————总结————————————————————————————————————————
1最近几次大作业都能写,但是总是离对,成功总差一些,总差最后一层模。这几次在编写程序上花费的时间不是特别多,主要是学习新知识(抽象类接口很多集合的运用)比较占时间,但是因为没有学懂总是感觉无从下手,还有很重要一点是真的不知道我当前学习的知识大概是什么程度,与同学们相比?然后我这样设计这样做,投入大量时间后最后的产出究竟会是一场空还是走在一半的正途上,这种悬空的感觉很让人畏惧。畏手畏脚不自信最后到如此下场。学的有点找不到方向,感觉一拳打到棉花上,实属无力,想来还是自己逻辑能力不够,考虑不清楚,然后毅力和花的时间不足。我以后会慢慢加油补上的。
2我真切希望能通过实例,有不用多就一次也好:老师能带着我们从一道题目分析到最后完成的过程走一遍,而不是全让我们自己死磕。
3我意识到了时间管理的重要性,并学会了如何有效地安排自己的工作,以确保在截止日期前完成所有任务。
4最后总结一下本学期java学习主要学到以下几点:理解面向过程程序设计和面向对象程序设计的区别
理解了面向对象程序设计封装性、继承性与多态性三大技术特性
利用UML和“类”去编写程序以及思考问题
正则表达式
以及最后的抽象类的应用和一些集合类的应用。