首页 > 其他分享 >对4-6次pta的总结

对4-6次pta的总结

时间:2024-06-09 22:56:49浏览次数:13  
标签:总结 int System pta else out public getNode

【1】.前言
这三次的pta难度还是比较高的,尤其是第四次的(根本没有思绪),考察了较多的正则表达式的使用,以及对类的设计有一些要求,第五次的pta难度一般,主要考察的是类的书写,并不需要太多关于类的设计,第六次的pta是在第五次的基础上进行迭代,增加了并联电路,难度还是有的。
【2】.设计与分析
第四次pta:


以上就是第四次pta的报表内容以及类图
可以看到类图非常的复杂,涉及了非常多的类,但却没有保证类的单一职责性,导致后期的检查过程和调试过程异常困难。类的设计一言难尽(八大设计原则都不符合)


以上就是第五次的pta的报表内容以及类图
可以看到类图也非常的复杂(但总归是满足了单一职责原则)


以上就是第六次的pta的报表内容以及类图
【3】.采坑心得
(1).Setkey1=s.getAllanswer().keySet();//将答卷遍历
for(String key11:key1) {
Setkeypaper=p.getAllpaper().keySet();//将试卷遍历
for(String keypaper1:keypaper) {
int num=0;
if(s.getAllanswer().get(key11).getCodeS().equals(p.getAllpaper().get(keypaper1).getCodeP())) {
printmess1(s.getAllanswer().get(key11).getCodeS());//把匹配上的试卷编号传过去
break;
}
num++;

			if(num==p.getNumOfpaper()) {
				System.out.println("The test paper number does not exist");
				//System.out.println(s.getAllanswer().get(key11).getSignid()+" "+x.getAllstudent().get(s.getAllanswer().get(key11).getSignid()).getName()+" "+":"+"0");
			}
		}
	}
}

例如该foreach遍历时,如果用get获取时会为null。
(2).private String[]match=new String[50];
在用数组作为类的属性的时候,需要new一下,不然会让属性值为null。
(3).在写第五次pta时:
白炽灯:

亮度在0~200lux(流明)之间。
电位差为0-9V时亮度为0,其他电位差按比例,电位差10V对应50ux,220V对应200lux,其他电位差与对应亮度值成正比。白炽灯超过220V。
这是题目要求,在计算亮度时会涉及到小数的计算,结果会*7/5,但算出的结果总是为0,应该采用7.0/5.0计算,不然不会保留小数部分。
(4).
家居电路模拟系列所有题目的默认规则:

1、当计算电压值等数值的过程中,最终结果出现小数时,用截尾规则去掉小数部分,只保留整数部分。为避免精度的误差,所有有可能出现小数的数值用double类型保存并计算,不要作下转型数据类型转换,例如电压、转速、亮度等,只有在最后输出时再把计算结果按截尾规则,舍弃尾数,保留整数输出。

2、所有连接信息按电路从电源到接地的顺序依次输入,不会出现错位的情况。

3、连接信息如果只包含两个引脚,靠电源端的引脚在前,靠接地端的在后。

4、对于调速器,其输入端只会直连VCC,不会接其他设备。整个电路中最多只有一个调速器,且连接在电源上。
其中第一点,在最后保留时会使保留精度出现误差,应该用强制转换直接变为(int)型。
(5).在第六次pta中,涉及了电阻,按道理来说应该计算电流,但最后计算电流会出现一些误差,应该用分压来计算最后的结果。
(6).import java.util.;
import java.util.regex.
;
class Equipment{
private int node;
public Equipment() {}
public int getNode() {
return node;
}

public void setNode(int node) {
	this.node = node;
}

public Equipment(int node) {
	super();
	this.node = node;
}

}
class Switch extends Equipment implements Comparable{
private int state=0;
public void change() {
if(this.state0) {
this.state=1;
}
else {
this.state=0;
}
}
public Switch(int node) {
super(node);
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
@Override
public int compareTo(Switch ss) {
return Integer.compare(super.getNode(),ss.getNode());
}
}
class Fswitch extends Equipment{
private int lever=0;
private double output=0;
public Fswitch(int node) {
super(node);
}
public int getLever() {
return lever;
}
public void setLever(int lever) {
this.lever = lever;
}
public void setOutput(double output) {
this.output = output;
}
public void up(){
if(this.lever
0||this.lever1||this.lever2) {
this.lever++;
}
else {
return;
}
}
public void down() {
if(this.lever1||this.lever2||this.lever==3) {
this.lever--;
}
else {
return;
}
}
public void ele(){
this.output=0.3this.lever220;
}
public double getOutput() {
return output;
}

}
class Lswitch extends Equipment{
private double lever=0;
private double output=0;
public Lswitch(int node) {
super(node);
}
public double getLever() {
return lever;
}
public void setLever(double lever) {
this.lever = lever;
}
public double getOutput() {
return output;
}
public void ele() {
this.output=220*this.lever;
}

}
class Blamp extends Equipment{
private double light;
public Blamp(int node) {
super(node);
}
public double getLight() {
return light;
}
public void eleLight(double v) {
if(v>0&&v<=9) {
this.light=0;
}
else if(v>=9&&v<=10) {
this.light=50(v-9);
}
else if(v>10&&v<=220) {
this.light=(v-10)
(5.0/7.0)+50;
}
}

}
class Rlamp extends Equipment{
private double light;
public Rlamp(int node) {
super(node);
}
public double getLight() {
return light;
}
public void eleLight(double v) {
if(v==0) {
this.light=0;
}
else {
this.light=180;
}
}
}
class Fan extends Equipment{
private double roll;
public double getRoll() {
return roll;
}

public void setRoll(double roll) {
	this.roll = roll;
}
public Fan(int node) {
	super(node);
}
public void eleroll(double v) {
	if(v<80){
		this.roll=0;
	}
	else if(v>=80&&v<=150){
		this.roll=(v-80)*4+80;
	}
	else if(v>150) {
		this.roll=360;
	}
}

}
public class Main {
public static void main(String[] args) {
ArrayListalls=new ArrayList();
Fswitch F1=null;
Lswitch L1=null;
Blamp B1=null;
Rlamp R1=null;
Fan fan1=null;
//ArrayListall=new ArrayList();
Scanner input=new Scanner(System.in);
while(input.hasNext()) {
String s=input.nextLine();
if(s.equals("end")) {
break;
}
else {
if(s.startsWith("[")) {
String regex="[K|F|L|B|R|D]\d-1";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(s);
while (matcher.find()) {
char first=matcher.group().charAt(0);
if(first'K') {
Switch stem=new Switch((int)(matcher.group().charAt(1))-48);
alls.add(stem);
}
else if(first
'F') {
Fswitch stem=new Fswitch((int)(matcher.group().charAt(1))-48);
F1=stem;
}
else if(first'L') {
Lswitch stem=new Lswitch((int)(matcher.group().charAt(1))-48);
L1=stem;
}
else if(first
'B') {
Blamp stem=new Blamp((int)(matcher.group().charAt(1))-48);
B1=stem;
}
else if(first'R') {
Rlamp stem=new Rlamp((int)(matcher.group().charAt(1))-48);
R1=stem;
}
else if(first
'D') {
Fan stem=new Fan((int)(matcher.group().charAt(1))-48);
fan1=stem;
}
}
}
else if(s.startsWith("#")) {
if(s.contains("K")) {
int num=(int)(s.charAt(2))-48;
for(Switch tem:alls) {
if(tem.getNode()num) {
tem.change();
}
}
}
else if(s.contains("F")) {
if(s.contains("-")) {
F1.down();
}
else if(s.contains("+")) {
F1.up();
}
}
else if(s.contains("L")) {
String regex="[0-9]+\.?[0-9]*";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(s);
while (matcher.find()) {
double lever= Double.parseDouble(matcher.group());
L1.setLever(lever);
}
}
}
}
}
Collections.sort(alls);
boolean ele=true;
for(Switch s:alls) {
System.out.print("@K"+s.getNode()+"

标签:总结,int,System,pta,else,out,public,getNode
From: https://www.cnblogs.com/luailu/p/18240195

相关文章

  • 4~6题目集总结
    1.前言:知识点方面,涵盖了抽象类的定义、特点、作用,以及迭代相关的各种概念,如不同迭代器的使用等。题量适中,能够充分检验对这些知识点的理解和掌握程度。既包括对抽象类基本概念的直接考查,也有通过实际代码情境来分析的题目,还有涉及到与迭代结合运用的综合题。难度呈阶梯式分布。......
  • PTA第四次到第六次题目集总结
    PTA第四次到第六次题目集总结前言 第四次到第六次题目集的题目难度总的来说其实比第一次到第三次题目集的难度要稍小一点,因为第四次题目集总的来说就是在第三次题目集上做了一点拓展,增加了选择题和填空题两种题型,而第五次题目集开始就是一种新的背景的题目,以电路为背景,由于是理......
  • 4~6总结blog
    第四次:一.介绍:相比于前三次,这一次也有一定的迭代,但是仍然有五个测试点未通过,接下来重点展示二.类图:三.耦合度:在这个耦合度方面,Answer类的OCavg:4.36,Main类的OCavg:40.00Answer类的WMC:48,Main类的WMC:40在软件工程中,OCavg和WMC是两个与代码复杂性相关的度量指标。OCavg表示每......
  • PTA4-6题目集总结
    一.前言这几次题目集重点考察的知识点是继承与多态以及抽象类与接口以及对前面所学的知识的一些应用等。与之前三个题目集相类似,这三次题目集也是将分值大部分给与了第一题,甚至是全部的分值都在第一题中,伴随的两道小题都是考察的基本功,难度普遍简单,而第一题与之前类似,都是迭代类......
  • 高考假集训总结(6.9)
    6.9今天依然是单调队列优化dp和斜率优化dp(只不过斜率优化的题还没开始做,具体原因下面讲)突然发现自己学得越多,忘得越多,都想不起来单调队列怎么用了,于是又花一上午跑回去看了单调队列的题并调了一上午的t1暴力做法,现在终于可以将两者融会贯通也就是成功实现了单调队列优化dp不......
  • 第二次pta总结
    设计实现答题程序,模拟一个小型的测试,要求输入题目信息、试卷信息、答题信息、学生信息、删除题目信息,根据输入题目信息中的标准答案判断答题的结果。本题在答题判题程序-3基础上新增的内容统一附加在输出格式说明之后,用粗体标明。输入格式: 程序输入信息分五种,信息可能会打乱顺......
  • oop 4~6总结
    oop4~6总结前言知识点继承:第四次作业中新增的ChoiceQuestion和GapFillingQuestion继承Question类;第五次作业中Switch,SteppedSpeedController,ContinuousSpeedController,IncandescentLamp,FluorescentLamp,和CeilingFan都继承Device类,从而共享其属性和方法。集合......
  • 6.7总结
    第三版,差不多是最后一个版本了<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"><metaname="render......
  • JS(JavaScript)学习总结
    概念:JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语   言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范......
  • 题目集4-6的总结性blog
    前言:在这三周java的练习中,又运用了很多知识点,正则表达式,类与对象之间的关系,类与类之间的关系,继承,多态等等,巩固了上次学习的知识并掌握了新的技巧,这轮学习让我意识到,java题目需要先构思再实践,很多复杂的类之间联系,不构思好就去写代码,就会浪费很多时间。第四次大作业:这个题目是对......