第二次Blog

wdhxsrs0207 / 2024-06-02 / 原文

真是转瞬即逝啊,转眼间就已经又做了3次作业,
按照惯例,我们还是得来“温故而知新”一下本次的4~6次的题目集。
这次虽然也没有一次满分,但是我不会觉得是件坏事,并不是因为麻木了,而是我觉得我至少努力过,
像第4次,第5次,都是差1,2分,我都是坚持到了最后才得的分数,那我也没理由说嫌弃,只不过得不断勉励自己,希望下次的自己能做的更好。
到了现在,也做了6次作业,在这第4-6次的作业里,我能很明显的感受到自己不再是像C语言那样只是单纯看到题目,拿到手直接唰唰写答案就行
了,java与C语言有着巨大的不同,这个不同就是在Java中,多了一个类的概念,也让我们才真正感受到了在未来做软件时,对各个对象的关系之
间的把握是十分重要的。在这4~6次的作业里,尤其是第6次作业与第4次作业让我开始养成了做题对对象的关系的辨析的习惯,接下来我就开始一
一介绍这3次作业:

第4次题目集:

第四次题目集其他两题没什么讲,就是来考察基本的能力的题目;
第一题:

知识点:
1. 这里我最想讲的就是多态与继承的好处,如图:

在本次的作业中题目的类型多了两个类型,一个是填空题,一个是多选题,但是,我们考虑到我们不可能把他们三种题目分开,一个一个处理,一个
一个判断,在工程与时间上都是极大的开销,所以,这时我们就恰巧可以利用多态性与继承的关系,用三种题目的父类列表来共同存入所有的题目ArrayList<Topic> topics = new ArrayList<>();,而不用分开储存
上代码:

点击查看代码
class Topic {//父类
	int num;//题号
	String question;//题目
	public Topic(int num, String question) {
		this.num = num;
		this.question = question;
	}
	
}
class KTopic extends Topic{//填空题
	String answer;
	public KTopic(int num, String question, String answer) {
		super(num, question);
		this.answer = answer;
	}		
}
class ZTopic extends Topic{//选择题
	//多答案
	String[] answers;//多答案
	public ZTopic(int num, String question, String[] answers) {
		super(num, question);
		this.answers = answers;
	}
}
class NTopic extends Topic{//普通题
	String answers;
	public NTopic(int num, String question, String answers) {
		super(num, question);
		this.answers = answers;
	}
}
这样处理在对题目的解析也变得更为简单,也是这里开始尝到了多态的甜头。

本次题量也不会很多,况且是在上次的作业的基础上来做的,所以题量也适中

难度:我觉得比前几次而言要简单点,嘛,说直接点就是这次的通过点不会那么的***钻了


最后也只是一个格式原因没有满分,但是因为学业不是仅仅是Java组成的,花太多时间在一个这个问题上的时间成本太
高了,所以,虽然很不甘心,但是,希望下次能尽力一次性到位。

第5次题目集:

我们先从简单题讲起,
第3题:

知识点:这里考察了我们对列表的熟悉程度,与使用程度,并且还考察了迭代器


通过迭代器遍历列表,首先得先定义与创建迭代器的实例对象:Iterator it = c.iterator(); 然后有效的利用Iterator的
方法:hasNext();来判断是否列表中还有元素next();来获取列表中的元素,利用迭代器遍历,对于我们熟知的hashMap
ArrayList来说虽然可能意义不大,但是当列表的实际对象为LinkList时,则可以大大减少遍历的时间,从而弥补LinkList遍历上的缺陷。

第1题:

总体而言就是搭建轨道,让电路及其里面有的电器使用起来,同样,在这里,因为有

三种的开关与三种的电器,所以我们首先应该想到的就是类与类之间继承的关系,
我让电器与开关分别继承同一个基类,在电器与开关共同有相同点的同时,电器又有属于自己的不同点,所以,电器类又继承另一个类,作图而言就是这样:

这样先理清类与类之间的关系才是在java中最为重要,也是必要的一课,至于在这里用到的正则表达式呀,之类的我们就不在多说,也是到现在理应学会的东西了

这一题虽然在第一次做的时候缺了点不足


不过也在补练中重新的做满的这道题,也算是了了心愿吧。

难度:也是一般,但是第一次没做满的我而言也没有权力评价,不过从第二次能做满的情况来看,也是中规中矩的题目了吧。

第6次题目集:

题目:

本次的题目值得一提的是,本次的题目对于电路也要一定的熟悉才行,因为要算电阻,电压等等,
数据上也是加了个串联与并联的电路,和电阻数据成员,

所以在这题,得熟练的运用电路中的电流的特性,我将一个电器的输出引脚与下一个的电器的输入引脚绑定在一起,这样,就能巧妙的将一个电器的电压导入另一个电器当中。
在串联与并联电路,还得注意这两家伙的电压关系,该如何分配等,都是我们需要考虑的问题;
上代码:

点击查看代码
	public void fenya() {
		double v = p1.Pins - p2.Pins;
		if (!this.OF()) {
			this.p2.Pins = 0;
		}
		if (this.Switchs.size() <= 0) {
			this.p2.Pins = p1.Pins;
			return;
		}
		for (int i = 0; i < Switchs.size(); i++) {
			if (!Switchs.get(i).OF()) {
				if (Switchs.get(i) instanceof CConnection) {
					((CConnection) Switchs.get(i)).ChangeP1(new Pins(0));
					((CConnection) Switchs.get(i)).ChangeP2(new Pins(0));
				} else {
					Switchs.get(i).p1 = new Pins(0);
					Switchs.get(i).p2 = new Pins(0);
				}
			}
			if (Switchs.get(i).OF()) {// 说明是闭电路
				Switchs.get(i).SetP2(Switchs.get(i).p1.Pins - v);
				if (Switchs.get(i) instanceof CConnection) {
					((CConnection) Switchs.get(i)).fenya();
					continue;
				}
				if (Switchs.get(i) instanceof PConnection) {
					((PConnection) Switchs.get(i)).fenya();
					continue;
				}
				if (this.Switchs.get(i) instanceof K) {
					((K) Switchs.get(i)).C();
				}
				if (this.Switchs.get(i) instanceof L) {
					((L) Switchs.get(i)).change();
				}
				if (this.Switchs.get(i) instanceof F) {
					((F) Switchs.get(i)).change();
				}
				if (this.Switchs.get(i) instanceof Fan) {
					((Fan) Switchs.get(i)).Setspeed();
				}
				if (this.Switchs.get(i) instanceof B) {
					((B) Switchs.get(i)).SetLigt();
				}
				if (this.Switchs.get(i) instanceof R) {
					((R) Switchs.get(i)).SetLigt();
				}
				if (this.Switchs.get(i) instanceof A) {
					((A) Switchs.get(i)).Setspeed();
				}
			}
		}
	}
本次的题目可能在串联与并联的关系上花的时间比较多,所以这次题量可能会稍微有点大,当然,脑力上也是需要的,因为要考虑每个电器间的引脚之间的关系,所以就会变得比较复杂

难度:难度上来讲,就是电路本身的电器之间的关联,以及引脚之间,电压之间的分配很难想,需要大量构思,与猜测

关于第六次题目,我真的很想分享自己的经历,

我本来是试了几遍,还是82,本来是想放弃的我,看到室友们,相互吹自己过了,靠着别人给的提示过的,
我就气不打一处来,然后就是第二天早早跑到教室,在那想,我想了一早上2小时,过了3分,中午也没睡觉,
一个中午3个小时又过了9分,最后尽管没有满分,但是没有依靠其他人,自己做的结果还是可以勉强接受,
毕竟我也不是个天才,有的时候不会,可能下次再遇到的时候,我就能轻松搞定了。

总结

虽然不能比前面的人优秀,但是希望以后的题目自己也能像这次第6次题目集一样全力以赴
希望告诫自己:没有什么绝对的难题,只有绝对懦弱的自己,不能退缩,越不行才越要上。