7~8次题目集总结Blog

news/2024/7/2 7:29:00/文章来源:https://www.cnblogs.com/200569zyh/p/18275979

一、前言
关于7,8两次家具强电电路模拟程序,我认为是比较困难且综合的程序题,我们需要处理复杂的电路结构,如包含多个并联电路的串联电路,以及并联电路之间的包含关系还要精确地处理输入和输出格式,确保所有的计算和输出都符合题目要求,这些设计程序整体的方面都属于较为困难的,而关于类和对象的关系,以及如何通过方法来模拟电路的工作原理,这种在动手编写时具体补充的代码部分难度偏向中等,知识点我个人认为偏向基础的面向对象编程(如需要设计多个类对象、方法、变量、数据类型、控制结构等。),数据结构/数组与集合(选择合适的数据结构去储存设备信息和连接信息)和字符串处理。至于题目题量则是单一题目,但涉及多个类和复杂逻辑。总之是个复杂的Java程序模拟题。
二、设计与分析
首先是粗略的分析即如何完成程序
1,设计电路设备类:设计一个通用的电路设备类,包含所有电路设备的公共属性和方法。
2,受控设备与控制设备类:分别设计受控设备类和控制设备类,并实现具体的设备如开关、调速器、灯、风扇等。
3,串联电路与并联电路类:设计串联电路和并联电路类,实现电路的串联和并联逻辑。
4,输入处理:解析输入信息,构建电路设备对象,并建立设备之间的连接关系。
5,计算电路状态:根据输入的控制信息,计算电路的状态,包括开关状态、调速器的档位、灯的亮度、风扇的转速等。
6,输出结果:按照题目要求的格式输出所有设备的状态或参数。
由于都是家具强电电路模拟程序所以大致思路如此,但重点还是在于迭代的改变和怎么合理的设计并完成程序。
第七次题目集

点击查看代码
import java.util.*;public class Main {private static Map<String, Device> devices = new HashMap<>();private static Map<String, Connection> connections = new HashMap<>();private static Map<String, Circuit> circuits = new HashMap<>();public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String input;while (!(input = scanner.nextLine()).equals("end")) {processInput(input);}scanner.close();simulateCircuit();printDeviceStatus();}private static void processInput(String input) {if (input.startsWith("#T")) {processSeriesCircuit(input);} else if (input.startsWith("#M")) {processParallelCircuit(input);} else if (input.startsWith("#")) {processDeviceControl(input);}}private static void processSeriesCircuit(String input) {String[] parts = input.split(":");String circuitId = generateUniqueId();String[] connections = parts[1].split(" ");Circuit circuit = new Circuit(circuitId);for (String connection : connections) {circuit.addConnection(connection);}circuits.put(circuitId, circuit);}private static void processParallelCircuit(String input) {String[] parts = input.split(":");String circuitId = generateUniqueId();String[] seriesCircuits = parts[1].substring(1, parts[1].length() - 1).split(" ");Circuit parallelCircuit = new Circuit(circuitId);for (String seriesCircuit : seriesCircuits) {parallelCircuit.addSeriesCircuit(circuits.get(seriesCircuit));}circuits.put(circuitId, parallelCircuit);}private static void processDeviceControl(String input) {String[] parts = input.split(":");String deviceId = parts[0].substring(1);Device device = devices.get(deviceId);if (device != null) {device.control(parts[1]);}}private static void simulateCircuit() {for (Circuit circuit : circuits.values()) {circuit.simulate();}}private static void printDeviceStatus() {devices.values().forEach(Device::printStatus);}private static String generateUniqueId() {String id = UUID.randomUUID().toString();while (circuits.containsKey(id) || devices.containsKey(id)) {id = UUID.randomUUID().toString();}return id;}private static abstract class Device {protected String id;public Device(String id) {this.id = id;}public abstract void control(String command);public abstract void printStatus();public abstract void updateState();}private static class Switch extends Device {private boolean state = false;public Switch(String id) {super(id);}@Overridepublic void control(String command) {state = !state;}@Overridepublic void printStatus() {System.out.println("@" + id + ":" + (state ? "closed" : "turned on"));}@Overridepublic void updateState() {if (this.state==false) {this.state=true;}else if(this.state==true) {this.state=false;} }public boolean isState() {return state;}}private static class Dimmer extends Device {private double level = 0.0;public Dimmer(String id) {super(id);}@Overridepublic void control(String command) {if (command.equals("+")) {level += 0.1;} else if (command.equals("-")) {level -= 0.1;}}@Overridepublic void printStatus() {System.out.printf("@%s:%.2f\\\\\\\\n", id, level);}@Overridepublic void updateState() {// Update dimmer state based on current circuit conditions}}private static class Bulb extends Device {private int brightness = 0;public Bulb(String id) {super(id);}@Overridepublic void control(String command) {// No control needed for bulbs in this simulation}@Overridepublic void printStatus() {System.out.println("@" + id + ":" + brightness);}@Overridepublic void updateState() {// Update bulb state based on current circuit conditions}public void setBrightness(int brightness) {this.brightness = brightness;}}private static class Fan extends Device {private int speed = 0;public Fan(String id) {super(id);}@Overridepublic void control(String command) {// No control needed for fans in this simulation}@Overridepublic void printStatus() {System.out.println("@" + id + ":" + speed);}@Overridepublic void updateState() {// Update fan state based on current circuit conditions}public void setSpeed(int speed) {this.speed = speed;}}private static class Circuit {private String id;private List<Connection> connections = new ArrayList<>();private List<Circuit> seriesCircuits = new ArrayList<>();public Circuit(String id) {this.id = id;}public void addConnection(String connection) {connections.add(new Connection(connection));}public void addSeriesCircuit(Circuit circuit) {seriesCircuits.add(circuit);}public void simulate() {for (Connection connection : connections) {Device controlDevice = devices.get(getDeviceIdFromPin(connection.getInputPin()));if (controlDevice instanceof Switch && ((Switch) controlDevice).isState()) {updateConnectedDevice(connection.getOutputPin(), true);} else {updateConnectedDevice(connection.getOutputPin(), false);}}}private String getDeviceIdFromPin(String pin) {return pin.split("-")[0];}private void updateConnectedDevice(String outputPin, boolean isOn) {Device device = devices.get(getDeviceIdFromPin(outputPin));if (device instanceof Bulb) {((Bulb) device).setBrightness(isOn ? 200 : 0);} else if (device instanceof Fan) {((Fan) device).setSpeed(isOn ? 360 : 0);}}}private static class Connection {private String inputPin;private String outputPin;private boolean connectedDeviceState;public Connection(String connection) {String[] parts = connection.split("-");inputPin = parts[0];outputPin = parts[1];connectedDeviceState = false;}public String getInputPin() {return inputPin;}public String getOutputPin() {return outputPin;}
}}
第八次题目集
点击查看代码
class Device {protected double v1;protected double v2;public Device() {}public Device(double v1,double v2) {this.v1=0;this.v2=0;}public double getV1() {return v1;}public void setV1(double v1) {this.v1 = v1;}public double getV2() {return v2;}public void setV2(double v2) {this.v2 = v2;}public void display() {}}
import java.util.*;
class Circuit {protected static LinkedHashMap<String,Device> deviceMap = new LinkedHashMap<>();public Circuit() {}public void update() {Device previous =null;for(Device device : deviceMap.values()) {if(previous!=null) {device.setV1(previous.getV2());}if(device instanceof Switch) {((Switch) device).update();}else if(device instanceof Gearspeed) {((Gearspeed) device).update();}else if(device instanceof Unitgear) {((Unitgear) device).update();}else if(device instanceof Light1) {((Light1) device).update();}else if(device instanceof Light2) {((Light2) device).update();}else if(device instanceof Fan) {((Fan) device).update();}else if(device instanceof Fan2){((Fan2)device).update();}previous=device;}}public void getDeviceStates() {for (Map.Entry<String, Device> entry : deviceMap.entrySet()) {System.out.print("@" + entry.getKey() + ":");entry.getValue().display();}}
class device1 extends Device {public device1(double v1,double v2) {this.v1=v1;this.v2=v2;}public device1() {}}class device2 extends Device{protected double v;public device2() {}public device2(double v1,double v2,double v) {this.v1=v1;this.v2=v2;this.v=v;}}
class Fan extends device2{private double lux=0;public Fan(double v,double v1,double v2,double lux) {super(v,v1,v2);this.lux=0;}public Fan() {}public double getLux() {return lux;}public void setlux(double lux) {this.lux=lux;}public void update() {if(this.v1<80) {this.lux=0;}if(this.v1>=80&&this.v1<=150) {this.lux=4*this.v1-240;}if(this.v1>=150) {this.lux=360;}}public void display() {System.out.println(Math.round(this.lux));}
}class Fan2 extends device2{private double lux=0;public Fan2(double v,double v1,double v2,double lux) {super(v,v1,v2);this.lux=0;}public Fan2() {}public double getLux() {return lux;}public void setlux(double lux) {this.lux=lux;}public void update() {if(this.v1<80) {this.lux=0;}if(this.v1>=80&&this.v1<=100) {this.lux=80;}if(this.v1>=100&&this.v1<120) {this.lux=160;}if(this.v1>=120&&this.v1<140){this.lux=260;}if(this.v1>=140){this.lux=360;}}public void display() {System.out.println(Math.round(this.lux));}
}class Gearspeed extends device1{private double v1 = 220;private int gear=0;public Gearspeed() {}public Gearspeed(int gear,double v1,double v2) {super(v1,v2);this.gear=gear;this.gear=0;}public int getGear() {return gear;}public void up() {if(this.gear<3)this.gear++;}public void down() {if(this.gear>0)this.gear--;}public void update() {if (this.v1 == 0) {this.v2 = 0;} else {switch (this.gear) {case 0:this.v2 = 0;break;case 1:this.v2 = 0.3 *this.v1;break;case 2:this.v2 = 0.6 *this.v1;break;case 3:this.v2 = 0.9 * this.v1;break;default:this.v2 = 0;break;}}}public void display() {System.out.println(this.gear);}
}class Light1 extends device2{private double v2 = 0;private double lux=0;public Light1(double v,double v1,double v2,double lux) {super(v,v1,v2);this.lux=0;}public Light1() {}public double getLux() {return lux;}public void update() {if(this.v1>=0&&this.v1<=9) {this.lux=0;}else if(this.v1>9&&this.v1<=220) {this.lux=(5.0/7.0)*v1+(300.0/7.0);}else if(this.v1>220) {this.lux=200;}}public void display() {System.out.println((int)(this.lux));}
}class Light2 extends device2{private double v2 = 0;private double lux=0;public Light2(double v,double v1,double v2,double lux) {super(v,v1,v2);this.lux=0;}public Light2() {}public double getLux() {return lux;}public void update() {if(this.v1>0) {this.lux=180;}else if(this.v1==0) {this.lux=0;}}public void display() {System.out.println((int)this.lux);}
}import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Circuit circuit = new Circuit();Device device = new Device();while(true) {String input = scanner.next();if(input.startsWith("[")) {String regex = "[A-Z]\\d+-2";Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(input);while(matcher.find()) {String inputs = input.substring(1,3);if(inputs.startsWith("K")) {Device switchs = new Switch();Circuit.deviceMap.put(inputs, switchs);}else if(inputs.startsWith("F")) {Device gears = new Gearspeed();circuit.deviceMap.put(inputs, gears);}else if(inputs.startsWith("L")) {Device unit = new Unitgear();circuit.deviceMap.put(inputs, unit);}else if(inputs.startsWith("B")) {Device light1 = new Light1();circuit.deviceMap.put(inputs, light1);}else if(inputs.startsWith("R")) {Device light2 = new Light2();circuit.deviceMap.put(inputs, light2);}else if(inputs.startsWith("D")) {Device fan = new Fan();Circuit.deviceMap.put(inputs, fan);}else if(inputs.startsWith("A")){Device fan2=new Fan2();Circuit.deviceMap.put(inputs, fan2);}if(Circuit.deviceMap.size()==1){Circuit.deviceMap.get(inputs).setV1(220);}}}else if(input.startsWith("#K")) {for(Map.Entry<String,Device>entry : circuit.deviceMap.entrySet()) {if(entry.getKey().startsWith("K")) {((Switch) entry.getValue()).setState();break;}}}else if(input.startsWith("#F")) {for(Map.Entry<String,Device>entry : circuit.deviceMap.entrySet()) {if(entry.getKey().startsWith("F")) {if(input.substring(3,4).equals("+")) {((Gearspeed) entry.getValue()).up();}else if(input.substring(3,4).equals("-")) {((Gearspeed) entry.getValue()).down();}break;}}}else if(input.startsWith("#L")) {for(Map.Entry<String,Device>entry : circuit.deviceMap.entrySet()) {if(entry.getKey().startsWith("L")) {double input1 = Double.parseDouble(input.substring(4));((Unitgear) entry.getValue()).setGear(input1);break;}}}else if(input.equals("end")) {break;}}circuit.update();circuit.getDeviceStates();}}
class Switch extends device1{private int state;public Switch() {}public Switch(double v1,double v2,int state) {super(v1,v2);this.state=0;}public int getState() {return this.state;}public void setState() {if (this.state==1) {this.state=0;}else if(this.state==0) {this.state=1;}}public void update() {if(this.state==1) {this.v2=this.v1;}else if(this.state==0) {this.v2=0;}}public void display() {if(this.state==0) {System.out.println("tuened on");}else if(this.state==1) {System.out.println("closed");}}
}import java.text.DecimalFormat;
class Unitgear extends device1{private double v1 = 220;private double gear=0;public Unitgear() {}public Unitgear(double gear,double v1,double v2) {super(v1,v2);if(gear>=0&&gear<=1)this.gear=gear;this.gear=0;}public double getGear() {return gear;}public void setGear(double gear) {if(gear>=0&&gear<=1)this.gear = gear;}public void update() {this.v2=((double)this.v1*this.gear);}public void display() {DecimalFormat decimalFormat = new DecimalFormat("#0.00");String format  = decimalFormat.format(this.gear);System.out.println(format);}
}

关于代码的分析

首先是定义Device抽象类(设备)通过此来控制所有设备的基础行为,其子类分为两种,一是控制设施二是受控设备,接下来是电路类,首先是串联电路进行模拟电路,其次是并联电路由多个串联电路构成模拟多个分支电路,然后再单独设计一个连接类,去处理字符串的问题并且将输入,输出引脚连接而主类则负责处理输入,解析输入信息,创建设备、电路和连接。模拟电路调用电路的模拟方法来更新设备状态,输出所有设备的状态。

关于程序/题目的分析
1,储存数据
创建一个类来表示电路中的每个设备,包含设备类型、编号、状态、引脚电压等信息,再从基础设备类继承出具体的设备类。创建一个类来表示电路,包含所有设备的集合以及连接信息,串联电路直接按顺序连接引脚,并联电路则需要将多个串联电路的输入和输出引脚短接。
2,update(更新状态,处理输入)
具体分为设备状态和电路状态,一设备状态根据输入的控制信息更新设备状态,二电路状态在模拟电路时,根据设备的状态计算每个引脚的电压,并更新设备的工作状态(如灯泡亮度、风扇转速等)。
3,输入(字符串解析)
解析输入信息,包括设备信息、连接信息、控制设备调节信息等。
4,电路检测(第八次)
检测电路中是否存在短路及在电流计算过程中,检查是否有设备电流超过其最大限制,并作出相应处理。
5,输出模块
按照指定格式输出每个设备的状态和引脚电压和错误提示在检测到短路或电流超限时,输出相应的错误提示。

具体实现分析
设备类设计:
Device 抽象类:包含所有设备的基本属性和方法。
ControlDevice 和 ControlledDevice 类:分别继承自 Device,实现具体的设备逻辑。
电路类设计:
SeriesCircuit 和 ParallelCircuit 类:分别表示串联和并联电路,实现电路的模拟逻辑。
输入处理:
InputHandler 类:负责解析输入信息,构建设备对象,并建立设备之间的连接关系。
计算电路状态:
CircuitSimulator 类:根据输入的控制信息,计算电路的状态,包括开关状态、调速器的档位、灯的亮度、风扇的转速等。
输出结果:
OutputHandler 类:按照题目要求的格式输出所有设备的状态或参数。
在设计过程中,我的最大的挑战在于如何合理地组织类和方法,通过定义清晰的接口和继承关系,可以有效地减少代码冗余并提高复用性。同时,对于复杂的逻辑处理(如短路检测、电流限制等),需要仔细设计并多次测试以确保正确性(是的根本不知道错在哪里反复调试是最崩溃的)。
三、采坑心得
首先就是短路检测不准确,在运行实现短路检测时,由于未考虑到所有可能的短路情况(如通过互斥开关的间接短路还有间接短路可能涉及多个设备和连接,除了直接检查电源到地的路径外,还需要考虑通过中间设备(如开关、互斥开关)的间接连接以及动态电路变化在电路模拟过程中,设备的状态(如开关的开合)可能会发生变化,这会影响短路路径的存在与否。),导致检测结果不准确。这就导致只能遍历电路或调试查看电路,检查是否存在从电源到地的低电阻路径。之后则是电流计算错误在计算设备电流时,未考虑到设备电阻随状态变化(如二极管导通时电阻为0,这点使我困扰了很久因为各部分电阻不同,而我把电路设备写进电路,各路电流还是要分各种情况计算),导致计算结果不准确。所以只能在电流计算过程中,根据设备的当前状态动态调整其电阻值,并重新计算电流。还有设备状态更新逻辑错误,设备的更新逻辑复杂,容易遗漏某些情况。只能用每部分查看来验证每个设备的状态更新逻辑。最后是输入解析错误(也是我出现的最为频繁的问题,但我看到一大堆报错或者啥也没有的时候,我就知道又需要我坐牢了)在解析输入信息时,由于输入格式复杂且多样,容易出现解析错误导致程序崩溃这里面最常见的还是字符串解析错误,输入信息的格式复杂,解析时容易出错。。所以只能增加输入验证逻辑,确保输入信息符合预定格式。同时,使用异常处理机制捕获并处理可能的输入错误。
四、改进建议
全面考虑短路路径:在短路检测算法中,不仅要检查从电源到地的直接路径,还要遍历整个电路图,考虑通过中间设备(如开关、互斥开关)的间接短路路径。
动态检测:由于电路中的设备状态可能会随着模拟的进行而发生变化(如开关的开合),因此短路检测不应该是静态的,而应该在每次设备状态更新后都重新执行。
动态电阻模型:为电路中的每个设备建立一个动态电阻模型,该模型能够根据设备的当前状态(如二极管的导通与截止)动态地调整其电阻值。在电流计算过程中,根据这些动态电阻值来求解电路方程。
迭代求解:由于电路中的电流和电压是相互依赖的,可能需要采用迭代方法来求解电路方程。在每次迭代中,根据当前的电压分布计算电流,然后根据计算出的电流更新电压分布,直到电压和电流都收敛到稳定值。
完善设备状态更新逻辑:对设备状态更新逻辑进行详细的审查和测试,确保覆盖所有可能的场景。
代码重构和优化:对代码进行重构,确保类和方法的职责清晰,减少代码冗余,提高代码的可读性和可维护性。
增强输入处理能力:严格的输入验证,在解析输入信息之前,增加严格的输入验证步骤,确保输入数据符合预定的格式和规范。
模块化设计:将程序划分为多个模块,每个模块负责特定的功能。通过清晰的接口和继承关系来组织类和方法,减少代码冗余并提高复用性。
五、总结
总结
在本次家具强电电路模拟程序的编写过程中,是一个复杂且综合的编程挑战。该程序不仅需要处理复杂的电路结构(包括串联、并联以及它们之间的嵌套关系),还需要精确地解析输入信息、计算电路状态,并按照特定格式输出设备状态及参数。通过深入分析和设计,需要逐步构建了包括设备类、电路类、输入处理、状态计算和输出模块在内的完整程序框架。
在设计和实现过程中,我深刻体会到了面向对象编程(OOP)的强大之处,通过定义清晰的接口和继承关系,可以有效地减少了代码冗余,提高了代码的复用性和可维护性。同时,我们也面临了诸多挑战,如短路检测的复杂性、电流计算的动态性、设备状态更新的多样性以及输入解析的易错性等。
通过不断的调试和优化,逐步解决了这些问题。在短路检测方面,意识到需要全面考虑所有可能的短路路径,包括通过中间设备的间接短路,并在每次设备状态更新后重新执行短路检测。在电流计算方面,引入了动态电阻模型,根据设备的当前状态动态调整电阻值,并采用迭代方法求解电路方程。在设备状态更新和输入解析方面,增加了详细的审查和测试步骤,以确保逻辑的正确性和输入的有效性。
此外,我还提出了多项改进建议,旨在进一步提高程序的健壮性、可维护性和可扩展性。这些建议包括完善短路检测算法、优化电流计算方法、重构和优化代码结构、增强输入处理能力以及采用模块化设计等。
总之,家具强电电路模拟程序的开发过程不仅考验了我的编程技能,也让我深刻理解了面向对象编程和数据结构在实际应用中的重要性。

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

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

相关文章

CentOS7.9部署.NET Core 6.0

简介 本章节主要讲的是在Linux系统CentOS7.9上去完成.NET Core 6.0软件的安装,确定Linux的版本是x64还是arm64的,然后到.NET Core的官网下载6.0的SDK,并进行安装 步骤 1.查看系统版本 2.打开.NET Core 6.0下载网址 3.下载与Linux系统对应版本的.NET Core SDK 4.上传.NET Cor…

全网最适合入门的面向对象编程教程:05 类和对象的Python实现-PyCharm代码标签(一个帮你提升coding效率的小技巧)

本文介绍了PyCharm IDE中代码标签的定义、类型和使用方法。摘要: 本文介绍了PyCharm IDE中代码标签的定义、类型和使用方法。 往期推荐: 学嵌入式的你,还不会面向对象??! 全网最适合入门的面向对象编程教程:00 面向对象设计方法导论 全网最适合入门的面向对象编程教程:…

使用Llama3/Qwen2等开源大模型,部署团队私有化Code Copilot和使用教程

代码辅助工具(Code Copilot)可以提高团队代码研发效率,能有效帮助产品快速上市抢占先发优势,但同时又需要保证代码和信息隐私,私有化Code Copilot是保护隐私的重要手段。老牛通过本文,详细介绍通过开源大模型,部署私有化Code Copilot和使用教程……目前市面上有不少基于…

MySQL共享表空间各个版本之间的演变图

感谢作者! 摘自:https://blog.csdn.net/qq_42267081/article/details/112383883

PTA七、八次总结

前言 本学期的最后两次PTA作业了,毕竟作为压轴的节目,难度还是有的,而且对我来说还不小。这一次Blog也是本学期最后一次Blog了,我也做出了一点对这学期相关PTA作业的总结。 这一学期PTA算得上是一次挣扎中进步的经历了,尤其是这两次。前几次老师给了一些思路给我做出了引导…

大作业7-8总结

前言 这两次大作业使用到的新知识点并不是很多,考查的是各类知识点的综合应用,题量方面大概考虑到这两次大作业的难度和临近考试的学习压力,两次大作业都只有一道大题,由于是所有知识点的总结,考察的知识点很广,再加上迭代的次数增加,这两次大作业的难度比之前的几次都要…

你的第一个SpringMVC程序

1.创建Maven模块 1.1 新建一个父模块1.2修改一下JDK版本这里选择JDK211.3 父模块中建立一个子模块,接下来的操作将在子模块中进行2.添加web支持 2.1设置本地Maven仓库(非必须)2.2 在springmvc-001的pom.xml文件中修改打包方式为war同时添加web所需要的依赖,由于Servlet依赖…

第三次OOP作业总结

第三次OOP作业总结 前言 此次作业为家居强电电路模拟程序的再次迭代,主要增加了两个特殊用电器,并且考察学生前几次的程序架构的完善性。新增的电压与电流的要求迫使程序更加智能。设计与分析 题一:家居强电电路模拟程序-3题解:在器具方面,控制设备增加了互斥开关,受控设…

codis架构学习

转自:https://jackeyzhe.github.io/2018/11/14/玩转Redis集群之Codis/ 1.介绍 codis是一种redis 分布式集群解决方案,codis是基于多个redis实例做了一层路由层来进行数据路由,每个redis实例承担一定的数据分片。Codis FE:集群管理界面。多个集群实例共享可以共享同一个前端…

PTA作业7~8总结

目录1.前言:2.设计与分析:(1)第七次大作业(2)第八次大作业3.采坑心得:4.改进建议:5.总结: ---------------------------------------------------------------------------------------------------------------------------------- PTA作业总结1.前言:这次的作业相比于前几次…

02-单链表的操作

单链表的创建:头插法 #include <stdio.h> #include <malloc.h> #include <stdbool.h>typedef int ElemType; /*定义一个单链表*/ typedef struct LNode{ElemType data;/*下一个元素的地址指针*/struct LNode *next; } LNode,*LinkList;/***单链表的创建* @r…

Java7-8次大作业题目集总结性Blog

Java4~6次大作业题目集的总结性Blog前言这两次大作业无疑就是更好学会面向对象编程了,并且是新添加的信息能够合理处理然后使用。 题量不大,只是在之前的代码上运用开闭原则修改代码,但我还是不能能很好掌握开闭原则。 难度有点大了,第八次大作业在之前的基础上添加了并联…

Linux系统基本介绍

一、Linux系统基本介绍 【1】、Linux操作系统特点多任务的操作系统多任务操作系统严格区分大小写Linux一切皆文件所有文件的起点都是“/”根目录对于Linux操作系统来说文件的后缀名没有任何实际意义,他不像是Windows操作系统中的后缀名代表了本文件是什么类型的文件。Linux中文…

STM32延时函数

STM32延时函数(查询定时器实现) 之前在STM32中使用延时函数的时候,都是直接使用,并不了解其中的原理。经过查阅资料,这里记录一下大致原理。 首先直接贴出来延时函数delay.c,通过查询的SysTick Timer的STK_CTRL寄存器的计数标志位COUNTFLAG方式实现,其中SysTick是一个结构…

OOP最后两次作业总结

OPP最后两次作业总结 前言 两次题目集其实都是在前面的基础上进行迭代,第一次作业说实话我没花什么时间,毕竟我从写第一次PTA就是给电器使用两个接点,我从拿到题目到达到及格分只用了半天时间,然后最后又花了点时间测试几个样例,拿到了82分。然后最后一次作业嘛,我几乎是…

游戏常用运行库 合集 | Game Runtime Libraries Package(2.1.24.0618)

软件简介: 游戏常用运行库 合集 整合了许多游戏会用到的运行库,支持 Windows XP – Windows 11 系统,并且支持自动检测系统勾选推荐的运行库,方便快捷。 本版特点: By:mefcl整合常见最新游戏所需运行库根据系统自动勾选推荐的版本纯净安装包无病毒和弹窗行为支持静默安装…

背包DP——混合背包

顾名思义,混合背包就是将前面三种的背包问题(01,完全,多重)混合起来,有的只能取一次,有的能取无限次,有的只能取 k 次。 正解特解 部分情况下,如小数据,可以转换成多重背包(把完全情况的数量换成足够大,如1e7,就把完全相对变成了多重) 例题 https://www.luogu.co…

cent os配置docker(解决2024.6月docker镜像拉取问题)

docker拉取镜像目前已经失效,多方查找目前试了试下面这个还可以用 首先执行以下命令安装dockeruname -r yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum …

Field stock doesnt have a default value

当你遇到 "Field stock doesnt have a default value"​ 这个错误时,这意味着你正在尝试插入一条新记录到数据库中,但是涉及的 stock 字段没有提供一个值,同时该字段在数据库表定义中也没有设置默认值(default value),并且数据库配置为严格模式,不允许NULL值或…

南昌航空大学软件学院23201823第三次blog

一、前言 这是最后一次blog了,是一些关于题目集7~8次的总结以及这一个学期对于PTA题目集的总结了。最后这两次的题目难度其实我并不是非常了解,大抵是因为我已经来不及挽救了,但是我还是想说其实这几次题目的难度感觉并没有想象中的触不可及,而是我自己没有花足够的心思去了…