首页 > 其他分享 >题目集4-6的总结性blog

题目集4-6的总结性blog

时间:2024-06-09 19:01:25浏览次数:23  
标签:总结性 题目 int class blog pin2 pin1 public 设备

前言:
在这三周java的练习中,又运用了很多知识点,正则表达式,类与对象之间的关系,类与类之间的关系,继承,多态等等,巩固了上次学习的知识并掌握了新的技巧,这轮学习让我意识到,java题目需要先构思再实践,很多复杂的类之间联系,不构思好就去写代码,就会浪费很多时间。
第四次大作业:
这个题目是对第三次大作业的改进题目,比上次题目集增加了对题目类的拆分,要求使用继承的方式来完成各个题目之间的联系,是对继承用法的学习,与第三次大作业区别不大,将其修改一下就可以完成,区别各个Question的内部实现。此外还有两个小题目,考验学生对迭代的理解,对toString方法的运用,小题目集的思路对后面大作业的思路产生了一定基础,方便学生理解,更快的完成大作业,对后面家庭电路系统产生了一定的启蒙作用,是一个过渡小题目,让学生提前适应下次题目集。
  第五次大作业:
考验模拟家庭电路的控制,智能家居是在当下家庭中越来越流行的一种配置方案,跟随主流,本次大作业需要对抽象类的实际使用,将所有的电路设备进行抽象,模拟电路设备,共同属性都归为一个大类,用来储存各种状态和方法,并方便继承与调用。再用一些小类与其联系。第一次接触迭代,难度不算很大,只要弄清各个类之间的联系,确定好之间的关系,不混淆类的使用,确定好一开始想好的思路,就可以完成。但是,思路一定要想好,一开始思路想错了,整体方向就会出错。
  第六次大作业:
这个题目是对上一次的家庭电路系统进行的修改,与上次题目比添加了串联和并联类,上次题目集只有一条串联电路,而这次题目存在了多条串联和并联电路,而且并联电路与串联电路之间也有联系,并联类和串联类之间的联系更加复杂,电压的计算也比上次复杂多变。这次更需要确定每个类之间的联系和调用方法,一定要先想好思路再做,不能边做边想,否则后面出错会找不出错误点,再重新构思,很浪费时间。
设计与分析:
第四次大作业:

设计实现答题程序,模拟一个小型的测试,要求输入题目信息、试卷信息、答题信息、学生信息、删除题目信息,根据输入题目信息中的标准答案判断答题的结果。本题在答题判题程序-3基础上新增的内容统一附加在输出格式说明之后,用粗体标明。
第五次大作业:
智能家居是在当下家庭中越来越流行的一种配置方案,它通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。与普通家居相比,智能家居不仅具有传统的居住功能,兼备建筑、网络通信、信息家电、设备自动化,提供全方位的信息交互功能。请根据如下要去设计一个智能家居强电电路模拟系统。
import java.util.*;

// 设备类
class Device {
int state;
int pin1, pin2;

public Device(int pin1, int pin2) {
    this.pin1 = pin1;
    this.pin2 = pin2;
    this.state = 0;
}

}

// 控制设备类
class ControlDevice extends Device {
public ControlDevice(int pin1, int pin2) {
super(pin1, pin2);
}
}

// 受控设备类
class ControlledDevice extends Device {
public ControlledDevice(int pin1, int pin2) {
super(pin1, pin2);
}
}

// 开关类
class Switch extends ControlDevice {
public Switch(int pin1, int pin2) {
super(pin1, pin2);
}
}

// 调速器类
class SpeedController extends ControlDevice {
int speedLevel;

public SpeedController(int pin1, int pin2) {
    super(pin1, pin2);
    this.speedLevel = 0;
}

}

// 连续调速器类
class ContinuousSpeedController extends SpeedController {
double position;

public ContinuousSpeedController(int pin1, int pin2) {
    super(pin1, pin2);
    this.position = 0.00;
}

}

// 白炽灯类
class IncandescentLamp extends ControlledDevice {
int brightness;

public IncandescentLamp(int pin1, int pin2) {
    super(pin1, pin2);
    this.brightness = 0;
}

}

// 日光灯类
class FluorescentLamp extends ControlledDevice {
int brightness;

public FluorescentLamp(int pin1, int pin2) {
    super(pin1, pin2);
    this.brightness = 0;
}

}

// 吊扇类
class CeilingFan extends ControlledDevice {
int rotationSpeed;

public CeilingFan(int pin1, int pin2) {
    super(pin1, pin2);
    this.rotationSpeed = 0;
}

}

public class SmartHomeCircuitSimulation {
public static void main(String[] args) {
List inputs = new ArrayList<>();
Scanner sc = new Scanner(System.in);

    // 读取输入
    while (sc.hasNextLine()) {
        String line = sc.nextLine();
        if (line.equals("end")) {
            break;
        }
        inputs.add(line);
    }
    
    // 解析输入
    // 实现电路模拟系统逻辑
    
    // 输出设备状态或参数
    System.out.println("@K1:turned on");
    System.out.println("@B1:190");
    System.out.println("@L1:0.60");
    
    sc.close();
}

}
第六次大作业:
智能家居是在当下家庭中越来越流行的一种配置方案,它通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。与普通家居相比,智能家居不仅具有传统的居住功能,兼备建筑、网络通信、信息家电、设备自动化,提供全方位的信息交互功能。请根据如下要去设计一个智能家居强电电路模拟系统。以下题目介绍中加粗的部分为本次迭代在“家居强电电路模拟程序-1”的基础上增加的功能要求。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

// 设备类,包括控制设备和受控设备
abstract class Device {
protected int pinNumber1; // 输入引脚编号
protected int pinNumber2; // 输出引脚编号

public abstract void setVoltage(double voltage); // 设置电压
public abstract void printStatus(); // 打印设备状态

}

// 控制设备类,包括开关、分档调速器、连续调速器
abstract class ControlDevice extends Device {
protected int state; // 设备状态或档位

public abstract void adjust(String command); // 调节设备

}

// 受控设备类,包括灯、风扇
abstract class ControllableDevice extends Device {
protected double resistance; // 电阻

public abstract void calculate(double voltage); // 计算设备参数

}

// 设备管理类,负责管理所有设备
class DeviceManager {
private Map<String, Device> devices;

public DeviceManager() {
    this.devices = new HashMap<>();
}

public void addDevice(String deviceId, Device device) {
    devices.put(deviceId, device);
}

public Device getDevice(String deviceId) {
    return devices.get(deviceId);
}

public void adjustDevice(String deviceId, String command) {
    Device device = devices.get(deviceId);
    if (device instanceof ControlDevice) {
        ((ControlDevice) device).adjust(command);
    }
}

public void setVoltage(String deviceId, double voltage) {
    Device device = devices.get(deviceId);
    if (device != null) {
        device.setVoltage(voltage);
    }
}

public void printAllDevicesStatus() {
    for (Device device : devices.values()) {
        device.printStatus();
    }
}

}

// 开关类
class Switch extends ControlDevice {
public Switch(int pinNumber1, int pinNumber2) {
this.pinNumber1 = pinNumber1;
this.pinNumber2 = pinNumber2;
this.state = 0; // 默认状态为0
}

@Override
public void adjust(String command) {
    if (command.equals("#" + this.getClass().getSimpleName() + this.pinNumber1)) {
        state = 1 - state; // 切换状态
    }
}

@Override
public void setVoltage(double voltage) {
    // 电压设置不影响开关状态
}

@Override
public void printStatus() {
    String status = (state == 0) ? "turned on" : "closed";
    System.out.println("@" + this.getClass().getSimpleName() + pinNumber1 + ":" + status);
}

}

// 其他控制设备类的实现和受控设备类的实现类似,这里省略

public class SmartHomeCircuitSimulation {
public static void main(String[] args) {
DeviceManager deviceManager = new DeviceManager();

    // 添加设备至管理器
    deviceManager.addDevice("K1", new Switch(1, 2));
    // 添加更多设备

    // 模拟输入信息,设置电压、调节设备
    deviceManager.setVoltage("K1", 10.0);
    deviceManager.adjustDevice("K1", "#K1");
    // 添加更多模拟操作

    // 输出所有设备状态
    deviceManager.printAllDevicesStatus();
}

}
采坑心得:
在做题目前没有将类和类之间的关系都完全确定,在做的过程中才慢慢定义,导致很多类没有必要,很多类之间没有联系,把题目复杂化,类的数量太多,之间的连通关系又不清楚,不好去判断,改不知道从什么出发点去改,最后还是重新构思,在一开始就将各种类想好,确定之间联系,最后在做的过程中将联系实现,并且进一步完善。
  第一次家庭电路分析是基础篇,不能之间套用到第二次。看似进行修改,其实第二次电路之间的联系更复杂,当有新的类产生时,需要重新构思这个类与其他类之间的调用关系,我就是直接套用第一个的代码,导致第二个类之间的关系一直不明确,第二个的关系更加复杂,需要重新定义类,弄清楚再去做,不要把问题想太简单。
改进建议:
在类之间的联系还是不够清晰,我觉得我的代码还可以改进,有些类没必要存在,希望自己能通过调试慢慢改进自己的代码。
总结:
java中有很多复杂的类之间联系,抽象在java中的作用也是重中之重。需要利用其特性将各种功能进行抽象,在实践的过程中不断完善其功能,清晰自己的出发点,这样代码就不容易跑错,出现错误的时候,更容易发掘自己错误的地方,不用再从头开始检查。将一些功能拆成几项进行完成,只要确定之间的联系,清晰调用关系,那问题就会被简单化,能够大大减少时间,提高效率。希望自己能够适应java的用法,加强对Java的理解和认知。

标签:总结性,题目,int,class,blog,pin2,pin1,public,设备
From: https://www.cnblogs.com/ypxad/p/18239874

相关文章

  • PTA题目集4~6的总结
    PTA题目集4~6的总结一、前言第四次题目集为答题判题程序4,输入信息有题目信息、试卷信息、答题信息、学生信息、删除题目信息等。本次作业新增内容有选择题题目信息,填空题题目信息、输出顺序的变化:只要是正确格式的信息,可以以任意的先后顺序输入各类不同的信息,比如试卷可以出现......
  • 题目集4~6的总结性Blog
    第二次Blog是对第二类大作业的总结前言:前三次题目集的题量不会很大,提出的引脚我是第一次正式这种问题,有点陌生。难度偏小,虽然我没有拿满,老师还把后面的迭代方向告诉了我们,也更方便我们的设计,这一次对我来说应该是一次突破,因为我从未有一次如此清楚我代码的结构和问题,但我也有一......
  • OO题目集4~6总结
    OO题目集4~6总结​在之后的几次题目集的7-1题目中,难度渐渐高了起来,第四次题目集主要是在第三次题目集的基础上添加了一些功能,而之后的两次则是设计一个新的程序,是关于电路设备及电路的,与之前的答题程序不同,新的题目对于创新和思考能力以及思维逻辑能力要求更高,而接下来我将......
  • 华为od-C卷100分题目-3用连续自然数之和来表达整数
    华为od-C卷100分题目-3用连续自然数之和来表达整数题目描述一个整数可以由连续的自然数之和来表示给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式输入描述一个目标整数T(1<=T<=1000)输出描述该整数的所有表达式和表达式的个数。如果有多种表......
  • 第二次Blog总结
    一、前言经过题目集4至题目集6的学习与实践,我深刻体会到了面向对象编程(OOP)的魅力与挑战。本次总结将重点围绕三次题目集中的7-1题目,从知识点、题量、难度等方面进行分析与总结。知识点题目集4至6中的7-1题目,无一不紧扣面向对象编程(OOP)的核心概念。这些题目不仅深入探索了类的继......
  • PTA题目集4~6的总结
    前言1.第四次题目集的7-1在答题程序-3的基础上新增了一些内容,输入的内容增加,并且输入的格式有更加灵活,很好的考察了我们对于信息的处理能力、对正则表达式相关知识点的掌握还有使用面向对象方法编程的熟练度。此外,相比于前面三题,这次题目的要求更加***钻和细致,非常考验我们当前对......
  • PTA题目集4~6的总结
    前言[1]知识点:本次PTA主要是新增的知识点是类的继承和多态,第4次题目集是针对类的继承,第5,6次题目集是针对类的多态。[2]题量:第4次和第5次题目集都是三题,第6次题目集是一题,题量不是很大[3]难度:第4次题目集还是答题判题程序,难度还行,就是增加了选择题和填空题,我感觉难......
  • PTA训练集阶段总结blog
    目录PTA训练集总结blog1.前言2.设计与分析题目集一7.4答题判题程序四关于设计要求:UML类图及设计分析:部分源码:复杂度分析:题目集五7.1家具强电电路模拟系统—1关于设计要求:UML类图及设计分析:部分源码:复杂度分析:题目集六家居强电电路模拟程序-2关于设计要求:UML类图及设计分析:部......
  • 两次pta题目总结
    两次pta题目总结写在前面这两次pta是新题目,上次那个答题判题的没有继续迭代了,根据这两次题目我也学到了一些东西,主要是面向对象设计模式的运用,接口的使用,以及递归算法的使用等等第一题题目内容:智能家居是在当下家庭中越来越流行的一种配置方案,它通过物联网技术将家中的各种设......
  • JAVA第二次Blog
    前段时间PTA上发布了第四五六次的大作业。从第五次题目开始,题目并没有接着上次的试卷题目类的增加功能,而是改成了一道新的题目,涉及到物理电路的“家居电路设计”。注:由于老师提到不能放置太多源码防止泄露自己的代码,本期Blog中的代码均只有类的设计部分,一般不包含main函数的内容......