xxt

news/2024/10/8 4:34:52
  • 引子
    前不久,我完成了第五次和第六次大作业。这次的作业主题是“家居强电电路模拟程序”,每次的作业都是在前一次作业的基础上进行迭代。此次作业训练了前段时间新学的继承与多态,并且巩固了之前学到的一些旧的知识。
  • 作业总结
  1. 从难度来看,这两次的大作业题都是由一种题目发展扩充来的,不断的深入。因为每次的题涉及的电路越来越复杂,电器越来越多,而且电路有串并联以及开关的控制,所以显而易见的,作业的难度在逐渐提升,这也就代表着我需要更好的思维和逻辑以及方法。
  2. 从知识点的涉及来看,这两次的题目所要运用的知识点越来越多,它涉及到了对正则表达式的运用(这对输入格式的判断有着很大的帮助,减少了我的代码量以及降低了分隔字符的难度,很轻松的判断格式以及获取输入中的所需信息)、ArrayList和哈希表(这能够很好的帮我添加内容、查找内容以及删除内容)。而最重要的是对类的建立以及对继承和多态的理解,分析好每次所需的对象,判断类中所要用的方法以及类与类之间的关系和联系。
  3. 从每次作业的题量来说,第六次大作业的题量都只有一题,相比之前的作业没有了前几题的铺垫,之前可以给每次的作业来个预热,但学了继承与多态,大作业就是一个小工程了,要结合自己对继承的理解去设计类。但值得一说的是,第五次大作业的第三小题,他的提交系统可能有点问题,我的答案通过了样例,一样的答案最后反复提交了好几次才过,希望老师能够改进这一个问题。
  4. 而从每次的结果来看,我觉得这次的结果还是可以的,至少每次作业的测试点全都过了。对于第五次的作业还是很轻松的,基本上是不需要什么的(有了C语言上的基础倒也能完成)。但是从第六次的作业来看,就开始有点不太行了。因为这次电路问题相比较于第五次题目这次涉及到了并联。因为我的代码并不能简单的修改一点就能够解决这次的问题,所以我基本上是需要全部重新去写的,所以就有点难受。这不仅要考虑到上次的问题,还要设计在这次的问题。写完之后,我的代码就很杂,一次又一次的循环和if嵌套,之间的关系开始变得混杂,有点理不清理,测试点都是一点一点的过,第一次十分、第二次十六分。。。。。。可想而知,这是十分痛苦的。但值得高兴的是,通过这这种方法,我也完成了此次的作业。
    接下来我将要对每次的作业进行分析。
  • 作业分析
    智能家居是在当下家庭中越来越流行的一种配置方案,它通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。与普通家居相比,智能家居不仅具有传统的居住功能,兼备建筑、网络通信、信息家电、设备自动化,提供全方位的信息交互功能。请根据如下要去设计一个智能家居强电电路模拟系统。

    这是这一类题目的电路图,每一次迭代会增加1-2个新的电路元件,在串联的基础上加上不同的并联。这也就造成了电路的复杂性,从而给类的设计,电压求解带来不便。
  1. 第五次题目集
    这次的作业还没有什么,因为它只涉及到一个串联电路,电路单一,元件比较少,比较简单一点。我给每种元件都做了一个子类,并且写了一个他们的父类(父类的属性有电压,电阻,编号),父类中写了一个display方法(用abstract修饰)用于输出每个元件的状态(结果)。我的Main类中用每一个元件都用了一个ArrayList来存入它们的信息,并输出结果。
    值得注意的是开关的问题,因为如果开关是断开的,那么开关所在的串联电路是没有电流的,这也就意味着所有的元件是不工作的,这时候的所有元件的电压全为零。
  2. 第六次题目集
    这次的作业虽然只比上一次的作业多了一个并联,但是他的难度上升了不止一点。然后他还增加了一个新的元件(落地扇),但这个没什么大的影响,很容易处理。然后为了处理并联的问题,我又多加了一个串联类和一个并联类。这两个类中都用了ArrayList用来存支路上的元件。
  • 改进代码
    对于我现在的代码需要改进的地方还很多。比如,它现在的耦合度还非常的高,Main类中的代码长度很长,没有很好的分配,做到职责单一。我将会进一步划分每个类的职责,优化自己的代码架构。还有,就是我写的还有点乱,这需要花点时间去整理它。
  • 总结与收获
    通过这次大作业,首先就是能够更加熟练的使用HashMap与ArrayList,这两种方法中,我对HashMap的理解运用更熟练一点。最后就是了解到了面向对象的思维,即使现在还非常的不熟练,但在今后的学习中,我相信会变得越来越熟练。
    通过这几个星期的作业,我体会到了java的复杂度,这也就需要我花费大量的时间去理解它,提前学习常用的一些方法,以便能够简化自己的代码,降低自己的压力。除了在学堂在线上的视频要认真看完以及课后习题写完外,还可以自己去找一些视频看,完善老师所没有涉及的内容。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【NAS】Docker Gitea+SakuraFrp+绿联DPX4800标 搭建私有代码托管平台

本文主要分享 Gitea的一些设置,和Https的实现。本文主要分享 Gitea的一些设置,和Https的实现。 Gitea的一些设置 映射网络HTTPS的实现 先准备好一个域名,建议准备一个1Panel创建一个AC账户然后点击申请证书,手动解析。 申请完毕后,点击详情,查看证书crt和私钥key 自己创建…

【转载】基于 Docker 的 PHP 集成环境 dnmp

参考https://github.com/yeszao/dnmp?tab=readme-ov-file https://learnku.com/articles/19289 https://www.awaimai.com/2120.html 源码 【下载】(由于限制20m上传,删除 .git 文件夹 )正文 介绍 PHP 环境搭建是个麻烦事,nginx、PHP、MySQL 一个不能少,有时候一个错误可能…

mac python 包管理工具 pip 的配置

python3 --version Python 3.12.3 brew install python@3.12 pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip3 config set global.break-system-packages truepip3 install aiohttp python 包管理工具 pip 的配置近几年来,python的包管理系统…

init_array与got劫持——[zer0pts 2020]easy strcmp

只是在顺思路,wp参考了2位大佬 文章列表 | NSSCTF [Zer0pts2020]easy strcmp 分析与加法-CSDN博客 题目Die 虚拟机运行一下 没有输入,直接报错退出了 IDA 很奇怪啊,就是一个比较 从我们运行直接报错来看,我们运行时a1>1这个条件是不成立的 我的最初思路就是调试把a1改了…

4~6题目集总结

1.前言: 知识点方面,涵盖了抽象类的定义、特点、作用,以及迭代相关的各种概念,如不同迭代器的使用等。 题量适中,能够充分检验对这些知识点的理解和掌握程度。既包括对抽象类基本概念的直接考查,也有通过实际代码情境来分析的题目,还有涉及到与迭代结合运用的综合题。 难…

Body CSG Geometry

Body CSG Geometry 实体CSG几何是通过构造实体几何模型来表示产品的3D形状。应使用保持该几何表示的IfcShapeResentation的以下属性值:IfcShapeRepresentation.RepresentationIdentifier = Body IfcShapeRepresentation.RepresentationType = CSG IfcShapeRepresentation.Item…

Drawable图形定制

设置背景设置背景 button或者textview我们想要自定义他的背景就需要用到Drawable中创建xml文件 例如shape标签是用来控制背景的形状的 他下面的子标签有 stroke控制描边 corners控制圆角 solid控制填充颜色 padding控制内容与边框的间隔 gradient 控制填充色的渐变效果 至于呈现…

深入剖析C++多态的实现与原理-详解

目录多态基础虚函数虚函数的继承虚类/虚基类重写/覆盖条件:概念:多态的条件其他的多态行为多态中子类可以不写virtual协变代码举例继承遗留问题解决析构函数具体解决方式:题目1答案:解析:题目2答案:C++11 override和finalfinal功能1:禁用继承使用场景:功能2:禁用重写使用场景ov…