转眼已经到了学期末,面向对象课程也迎来结课,这是oop第三次作业的大总结,题目集的难度都是由浅入深,循序渐进的,越往后写越是有点力不从心的感觉。但是这门课是我们接触软件的开始,并不是结束,这门课结束了不代表学习就要结束,所以在结课之后,对于最后两次题目集做一次总结,以便巩固自己所学的知识.
这两次题目集综合考察了java语言三大特性中的多态,子类与父类的继承关系、方法重写,信息处理、比较,排序输出,类的对象创建有无参数的不同构造方法、属性的访问权限等知识点,对类的设计要求提高,java中的封装与继承,多个类的设计,类与类之间的关系考虑,向下转型,compare接口的使用,集合接口的实例化,迭代器,数据的查找、排序,字符串处理,正则表达式,类型转换,类与对象、方法的使用,方法的调用与返回,多个类的关系与使用、链表或哈希表、遍历方法,面向对象的封装性,类的设计等知识点。集合了前几次的知识点于一体考察。
这两周只有两次大作业,一次次迭代,这两次大作业也当如前两次作业一样得心应手,不出所料的第三次大作业有了基础还是挺简单的,但轮到第四次大作业时,却让我有点摸不着头脑,感觉都满足要求了,但就是拿不到高分,最后草草收场,感觉自己挺失败的,哎。题目的知识点一成不变,难度适中,都能写,当找不到方向,感觉一拳打到棉花上,实属无力,想来还是自己逻辑能力不够,考虑不清楚,各方能力有待加强吧。
7-1 家居强电电路模拟程序-3
是之前电路模拟程序的第三次迭代,增加了两种电器:互斥开关和窗帘,增加了考虑多个并联电路串联在一起的情况、一条串联电路中包含其他串联电路的情况。难点有很多,比如互斥开关的连接状态判断,多并联电路的互相影响。
类间关系是通过继承、组合(如设备添加到电路)和关联(如设备之间的控制关系)来实现的。例如,设备可以被添加到串联或并联电路中,而控制设备则可以影响其他设备的行为。通过这种方式,代码模拟了一个复杂的电器系统控制模型。
这次题目相较于前一次的题目增加了由电压和自身输出的光照强度调控的窗帘设备,思路很简单,重写计算窗帘打开程度的方法,将所有灯光设备的输出值保存相加后,最后再输出窗帘的打开程度即可。
这一次难点在于与两条线路发生关系的互斥开关H,首先,根据输入的串联电路信息和并联电路信息,构建电路的连接结构。
对于每个控制设备(如开关、调速器、互斥开关),根据输入的调节信息更新其状态或档位。
计算电路中各个设备引脚的电位。从电源端(VCC)开始,依次考虑每个连接点,根据控制设备的状态和调速器的档位计算电位值。
根据计算得到的电位值,确定受控设备(如灯、风扇、窗帘)的工作状态(亮度、转速、打开比例等)。
按照题目要求的输出格式,依次输出各个设备的状态或参数。
7-1 家居强电电路模拟程序-4
这次迭代增加了一些情况的判断,特别的输出,电流过载,短路等等,还有二极管,主要是电路设备的引脚电压输出。那些判断什么的修改一下判断条件即可,电流过载只要计算每个设备流过的电流赋值就行,二极管相当于一个另类的开关,也算是好处理,重头戏是引脚电压的赋值,因为并联的关系导致电流回流,其实引脚上的应该是电路的电势来着,这里我是将线路集合正反各遍历了一遍依据电路的引脚电压和本身电压挨个赋值,考虑到多重并联等等,还采用了递归的方式,最后也是完美解决,可惜还有别的问题或者情况没考虑到止步于此。
踩坑心得:
1.在每次添加元素的时候一定要记得补充是否有首元素的判定。
2.仔细分析要求以及样例,对于这一次的成绩系统(一部分)来说就是所有的wrong format的内容都不要了,但是所有的"does not exist"和": access mode mismatch"即使有问题也要把学生放到班级里,具体题目到时候还是要具体分析。
3.已经写好的代码能够有效的运行就不要再动了在我写的给学生排序时因为对冒泡排序不熟,本来就写的磕磕绊绊,因为我的student里面还有一层,所以要写三层循环,后面改了两次,再怎么改也写不对了,完全放弃,换了一种写法。
public void getA(int lux){//用于判断窗帘打开了多少。 int sumLux = lux; String ans = ""; double v = this.v; if(v<50){ ans = "100%"; this.ans = ans; return; } if(sumLux>=0&&sumLux < 50){ ans = "100%"; }else if(sumLux>=50 &&sumLux < 100){ ans = "80%"; }else if(sumLux>=100&&sumLux < 200){ ans = "60%"; }else if(sumLux>=200&&sumLux < 300){ ans = "40%"; }else if(sumLux>=300&&sumLux < 400){ ans = "20%"; }else{ ans = "00%"; } this.ans = ans; }
结:第一次全投入到了写代码中,和之前写菜单不一样,这一次写代码开始主动写,这段时间里没有人打扰,也不知道怎么回事,不知不觉就写到了这么晚,甚至还有一种想要继续写,直到全部写完的冲动。这一段时间也是我第一次体会到专心写代码的快感,,要么是一样的题没有味。在这个阶段的练习中想法思路往往是正确的,但是在用代码实现的时候总是会缺斤少两,这是以后还要继续练习的地方.
标签:题目,第三次,引脚,sumLux,BLOG,电路,ans,设备 From: https://www.cnblogs.com/lyh971433/p/18276993