一、前言:
1.知识点总结
家居强电电路模拟程序3
1.知识点总结
先看题目主要内容:
控制设备模拟
本题模拟的控制设备包括:开关、分档调速器、连续调速器、互斥开关
受控设备模拟
本题模拟的受控设备包括:灯、风扇。两种设备都有两根引脚,通过两根引脚电压的电压差驱动设备工作。
输入信息:
设备信息
连接信息
控制设备调节信息
电源接地标识:VCC,电压220V,GND,电压0V。没有接线的引脚默认接地,电压为0V。
输出信息:
按开关、分档调速器、连续调速器、白炽灯、日光灯、吊扇、互斥开关、受控窗帘的顺序依次输出所有设备的状态或参数。每个设备一行。同类设备按编号顺序从小到大输出。
知识点主要有
(1)大量使用了继承方面的知识,所有家具和控制器都继承自同一个父类Element元件类,这样便于后面的连接和通电处理过程
2.难度情况
难
家居强电电路模拟程序4
1.知识点总结
新增内容方面:
先看题目主要内容:
控制设备模拟
本题模拟的控制设备包括:开关、分档调速器、连续调速器、互斥开关。
受控设备模拟
本题模拟的受控设备包括:灯、风扇。两种设备都有两根引脚,通过两根引脚电压的电压差驱动设备工作。本次迭代模拟一种受控窗帘。受控设备电阻:白炽灯的电阻为 10,日光灯的电阻为 5,吊扇的电阻为 20,落地扇的电阻为 20,窗帘电阻为15。
输入信息:设备信息不单独输入,包含在连接信息中。
设备信息:连接信息不单独输入,包含在线路信息中。
连接信息:
控制设备调节信息:
电源接地标识:VCC,电压220V,GND,电压0V。没有接线的引脚默认接地,电压为0V。
输入并联电路信息 :在本题中,并联电路M中的串联电路可以包含别的并联电路。
输出信息:
按开关、分档调速器、连续调速器、白炽灯、日光灯、吊扇、互斥开关、受控窗帘的顺序依次输出所有设备的状态或参数。每个设备一行。同类设备按编号顺序从小到大输出。
2.难度情况
难
二、设计与分析:
一:家具强电电路模拟程序-3:
新增类代码:
1.窗帘类:
点击查看代码
class Curtain extends Electric{
public void init(){
used = true;
}
public boolean ifUsed(){
return used;
}
public void setLine(int i){
line = i;
}
public int getLine(){
return line;
}
public double getResult(){
return result;
}
public void setter(double power) {
this.power = power;
}
public void lightSetter(double lightForce){
if(power >= 50){
if(lightForce >= 400){
result = 0;
}
if(lightForce >= 300 && lightForce < 400){
result = 20;
}
if(lightForce >= 200 && lightForce < 300){
result = 40;
}
if(lightForce >= 100 && lightForce < 200){
result = 60;
}
if(lightForce >= 50 && lightForce < 100){
result = 80;
}
if(lightForce < 50){
result = 100;
}
}else{
result = 100;
}
}
}
点击查看代码
class MutexSwitcher extends Controller{
private int lineNumber2 = 0;
private int lineNumber3 = 0;
public void setState(){
if(state == 0){
state = 1;
}else{
state = 0;
}
}
public int getState(){
return state;
}
public void setLine(int i){
}
public void setLine2(int i){
this.lineNumber2 = i;
}
public void setLine3(int i){
this.lineNumber3 = i;
}
public int getLine(){
return lineNumber;
}
public boolean ifUsed(){
return used;
}
}
使用souremonitor得出的结果:
家居强电电路模拟程序4
部分类图:
使用souremonitor得出的结果:
三、采坑心得:对源码的提交过程中出现的问题及心得进行总结,务必做到详实,拿数据、源码及测试结果说话,切忌假大空
1.类的设计方面:设计类时要满足六大规范,这些规范看着简单但是上手容易忽视一部分内容,导致在有些情况下要重写。
2.拓展性方面:在写题目时,其中存在的最严重的问题还是代码的拓展性问题。在题目集发布之前,我很少考虑代码的拓展性,导致在发布题目集之后总是用大把的时间用在代码的重构上,造成效率的降低。
四、改进建议:
家居强电电路模拟程序3
电路连接的方法太过麻烦,后续不好处理也不好改进,所以需要换别的方法,然后就是读取信息的方式太麻烦,代码行数太多
家居强电电路模拟程序4
大部分结构以及完善,但信息读取所用代码还是太长了,需要优化。
五、总结:
在Java中,继承和抽象方法是面向对象编程的关键特性,它们提供了代码重用性、灵活性和结构化设计的多种优势。继承允许子类从父类继承属性和方法,减少了代码重复,提高了开发效率。同时,继承还支持多态性,使子类对象可以被视为父类类型,增强了程序的灵活性。此外,继承帮助建立清晰的对象层次结构,使得程序结构更加清晰,易于理解和维护。另一方面,抽象方法通过定义标准接口,要求所有子类都必须实现这些方法,确保了子类的一致性和完整性。抽象方法允许父类专注于定义公共行为和属性,而具体的实现细节则由子类根据自身需求来完成,这样不仅提高了代码的可读性和可维护性,还避免了代码冗余。总的来说,合理利用继承和抽象方法可以使Java程序更加高效、灵活且易于维护。
六、学期总结:
经过一学期的学习,我学习到java和c语言的区别,虽然java多是设计,但是仍能感受到面向过程编程和面向对象编程的重大区别。做线性的事c语言合适,但是为了复用以及对现实的模拟,java这种面向对象的编程语言好太多了。