第2次总结性Blog-题目集4~6

news/2025/3/19 21:54:59/文章来源:https://www.cnblogs.com/3324407318-qq/p/18226417

目录

  • 前言
  • 设计与分析
  • 采坑心得
  • 改进建议
  • 总结
关于java&面向对象
在经过这几个月的系统性的java学习中,我始终牢记着一句话:面对对象程序设计最重要的是设计,而不是代码。设计即要遵守单一职责原则,简单来说就是什么该做,什么不该做。设计的越好,复用性就越高,需要修改代码的量就越少,经过迭代的次数越多,设计的好处越明显。下面,我将结合题目集4~6来说明设计的好处。

前言

  1. 知识点覆盖:抽象类和接口,Stream流配合lambda表达式的灵活运用,TreeMap对Key的排序,多态的3大前提条件:继承,子类的重写和向上转型,使用自定义的比较器对列表进行排序。

  2. 题量变化:答题判题程序-4,家居强电电路模拟程序-1,家居强电电路模拟程序-2中题量最大的应该是答题判题程序-4,其次是家居强电电路模拟程序-2,最后是家居强电电路模拟程序-1,但因为答题判题程序-4已经经过4次迭代了,读起题目来却是最快的,反而是家居强电电路模拟程序-2读题目的速度最慢。

  3. 难度变化:按照官方的意思来说,答题判题程序-4是最难的,其次是家居强电电路模拟程序-2,最简单的是家居强电电路模拟程序-1。家居强电电路模拟程序-1最简单个人完全没有异议,毕竟只有一条串联电路,对我个人来说,最难的却是家居强电电路模拟程序-2,因为有7种设备,且加了一条并联电路,又因为我是通过计算电流来给各个设备附上电压的,因此逻辑非常的复杂,反而是答题判题程序-4只加了2种题型,再排序一下就行了。

  4. 反馈和调整:题目的数量和难度都可以接受,个人更想把答题判题程序迭代下去,对于因其太难而改成家居强电电路模拟程序不是太满意,做事就要有始有终,难才能有进步,才能知道有哪不懂。

设计与分析

  答题判题程序目前设计了10个类,而家居强电电路模拟程序目前设计了14个类,但目前能力有限,大部分都是实体类,控制类和接口类不太会用,因此单一职责原则没有遵守,复用性很差,以后会接着改进。

1.答题判题程序-4

  本次迭代新增了选择题,填空题,处理这两种题的输入和前几次迭代大致相同,但本次迭代新颖的地方,就是他们的输出:都增加一项”partially correct”表示部分正确。我认为如果用for循环来判断学生答案是否与标准答案内容完全匹配给满分,或者包含一个错误字符或完全没有答案给0分,又或者包含部分正确答案且不含错误字符给一半分十分麻烦,因此经过上网努力地搜索,最终找到了Stream流,其配合Lambda表达式 ,给我们操作集合(Collection)提供了极大的便利。这也是我第一次接触Stream流。有了Stream流这样方便的工具后,就缩减了大量代码,如判断是否有多余的答案boolean hasExtra = userAnswersSet.stream().anyMatch(ans -> !correctAnswers.contains(ans));
下面给出我写的代码的SourceMontor的生成报表内容以及PowerDesigner的相应类图。

PowerDesigner的相应类图

SourceMontor的生成报表内容
从以上两张图中可以发现类都是实体类,且类与类
之间的关系简单,且类的深度参差不齐,故代码写得不尽人意。

2.家居强电电路模拟程序-1

  因为是第一次迭代,所以内容比较简单,只有一条线路,所有元件串联,但又因为是第一次迭代,所有的东西都要从头开始,包括处理输入输出,类设计等。虽然麻烦,但好在简单,还好比较轻松地搞定了,但有个比较坑人的点,最后要遍历一下整条电路上的开关,因为要保证整条电路上的开关都要是关闭的电路才有效。没什么好说的,下面给出我写的代码的SourceMontor的生成报表内容以及PowerDesigner的相应类图。
PowerDesigner的相应类图

2.家居强电电路模拟程序-2

  不知道为什么加了一条并联电路,感觉难度陡然增加,可能是因为我的思路是计算电流,再一个个给电路上的设备附上电压的,个人目前只能想到这个思路。不要看只增加了并联电路,实际上是加了多条逻辑上的串联电路,不仅要判断并联电路上每条串联电路开关是否全部关闭,没有的话要删除,还要附上设备电压,着实是很麻烦。但stream().filter()可以方便地筛选出串联电路和并联电路,以防混为一谈。但因为题目给出了诸多限制,思路虽然复杂,但还是可以写下去的。下面给出我写的代码的SourceMontor的生成报表内容以及PowerDesigner的相应类图。

采坑心得

  在处理题目集4-6时,我学会了避免一些常见错误,并且掌握了一些关键的策略。彻底理解题目的要求非常重要,因为题目可能会包含复杂的描述或隐含条件。我会仔细阅读题目,确保没有误解其意图。还有我特别关注边界情况,比如空输入或极端值,这有助于提高程序的鲁棒性。此外,拥有扎实的基础知诀,如熟练掌握编程语言、算法和数据结构等,对解题也极为重要。在时间管理上,我会合理分配,优先解决简单题目,确保不会在困难题目上耗费太多时间。审题的准确性也非常关键,我会仔继注意题目中的提示和说明,防止因忽视关键信息而出错。在处理编程题时,注意语法、变量命名和逻辑错误等细节问题也很重要,因为这些小错误都可能导致程序失败。最后,我也会利用各种资源,如参考书籍、在线教程和论坛等,帮助自己解决问题,同时努力保持独立思考的能力。总之,为了应对题目集4-6,全面准备、细心审题、注意细节和有效利用时间是关键。

改进建议

  1. 代码重构和优化:可以重新设计类之间的关系,并且要多一些控制类和接口类,尽量做到单一职责。

  2. 细化需求与预期:在进行编码前,应明确每个题目的具体需求和预期输出。这有助于精确定位所需功能和性能标准,从而编写出更符合目标的代码。

  3. 共同学习:定期与同学一起讨论题目集。通过对等学习和讨论,不仅可以提升代码质量,还能促进团队成员的技能提升和知识共享。

  4. 持续学习和更新:跟踪最新的编程技术和最佳实践,持续学习和更新题目集中的代码,保持其与时俱进。

总结

学到的内容:

  • 编程技能的提升:通过解答各种编程题目,我不仅提升了自己的编程技能,还深化了对算法和数据结构的了解。我学会了如何设计和实现高效的代码来解决问题。

  • 问题解决能力的增强:面对不同类型的题目,我培养了分析问题、清晰思考和找到解决方案的能力。这个过程加强了我解决复杂问题的信心和耐心。

  • 学习方法和技巧的探索:在解题过程中,我尝试并采纳了多种学习方法和技巧,如查阅资料、参考案例分析、与同学讨论等,这帮助我形成了一套适合自己的学习策略。

  • 团队合作与交流的经验:在解题的过程中,我积极与同学们交流和合作,通过共同讨论问题的解决方案,我学到了团队协作和经验分享的重要性。

进一步学习和研究的方向:

  • 深化算法和数据结构的学习:虽然已掌握了一些基础知识,但我计划继续深入研究更高级的算法和数据结构,以提高解决问题的能力和效率。

  • 提升编程技术:我期望通过学习更多编程语言和开发工具,不断提高自己的编程水平,并掌握更多实用的编程技巧,以提升代码质量和开发效率。

  • 增强实践经验:我希望通过参与更多编程项目和实际操作,积累实践经验,更好地将理论知识应用于解决实际问题。

  • 拓宽知识领域:我打算探索计算机科学的其他分支,如计算机网络、数据库、人工智能等,这将帮助我更全面地理解和运用计算机科学知识。

对教学及课程的改进建议:

  • 增设实践环节:建议在课程中添加更多实践环节,让学生通过实际操作来加深对知识的理解和掌握。

  • 提供丰富的学习资源:建议为学生提供更多的学习材料和支持,如教科书、在线课程、实验设备等,以促进他们的学习和发展。

  • 增强课程吸引力:建议通过设计有趣且具有吸引力的课程内容和教学方法,激发学生的学习兴趣和主动性,提高学习成效。

  • 注重个性化教学:建议根据学生的个别学习需求和能力差异,采取灵活的教学方式和评估方法,以满足不同学生的需求。

作业、实验与课程组织方式的改进建议:

  • 强化课堂互动:建议在课堂上增加互动和学生参与,运用启发式教学和案例讨论来引导学生思考和参与,从而提高教学效率。

  • 扩展课下学习资源:建议为学生提供更多样化的课下学习资源,如在线平台和学习指导,帮助他们巩固和拓宽知识。

  • 实施定期评估:建议定期对学生的学习情况进行反馈和评估,及时调整教学内容和方法,确保教学的连贯性和有效性。

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

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

相关文章

一款WPF的精简版MVVM框架——stylet框架的初体验(包括MVVM绑定、依赖注入等操作)

今天偶然知道一款叫做stylet的MVVM框架,挺小巧的,特别是它的命令触发方式,简单粗暴,让人感觉很巴适,现在我做一个简单的demo来顺便来分享给大家。 本地创建一个WPF项目,此处我使用.NET 8来创建。然后引用stylet最新的nuget包。 然后删掉App.xaml里面自带的启动项删掉以后…

按键中断驱动程序-poll机制

前言:学东西的时候总是喜欢碎碎念,去思考该怎么学。关于嵌入式开发,以前就觉得嵌入式只是一个工具,关键还是结合专业知识赋能,比如控制、信号处理、神经网络、计算机网络、各种协议比如蓝牙、wifi,音视频,当然,如果能够把内核学的很透彻,那也是很了不起的。现在越学越…

UDP协议的应用——域名解析

设计程序实现解析www.baidu.com 的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确设计程序实现解析www.baidu.com 的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确 /******************************************************************************…

基于腾讯元器搭建前端小助手

通过本文,我们了解了如何利用腾讯元器搭建一个前端助手智能体。通过使用插件和观察其使用效果,我们可以发现前端助手在解决问题和提供帮助方面的潜力。这个前端助手可以成为我们在前端开发过程中的得力助手,帮助我们提高工作效率和解决难题。随着智能技术的不断进步,我们可…

根据域名获取IP

/**************************************************************************************************************************************** file name:multicast.c* author :momolyl@126.com* date :2024/06/04* brief :设计程序实现解析www.baidu.co…

npm下载依赖报错:operation not permitted

npm下载依赖报错:operation not permitted 想下个SoybeanAdmin来用下,需要用到pnpm,但是用npm下载的时候直接报错简单来说就是权限的问题,网上很多都说改nodejs下面的几个文件夹的权限,我的评价是不好使,还得修改nodejs这个文件夹的权限才行,右键属性-安全-编辑-勾上完全…

containerd 源码分析:创建 container(三)

文接 containerd 源码分析:创建 container(二) 1.2.2.2 启动 task 上节介绍了创建 task,task 创建之后将返回 response 给 ctr。接着,ctr 调用 task.Start 启动容器。 // containerd/client/task.go func (t *task) Start(ctx context.Context) error {r, err := t.client…

linux下用域名解析ip地址列表

linux下用域名解析ip地址列表 目录linux下用域名解析ip地址列表头文件/宏定义主函数验证结果 头文件/宏定义 #include <stdio.h> #include <stdlib.h> #include <netdb.h> #include <arpa/inet.h>主函数 /*******************************************…

模拟集成电路设计系列博客——6.3.3 动态匹配电流源

6.3.3 动态匹配电流源 在电流开关上使用动态技术是为了实现用于音频D/A转换器的高度良好匹配的电流源(大到16bit精度)[Schouwenaars,1988]。 这个方式被用于设计一个16-bit的音频D/A转换器,其中6位MSB通过温度计码实现。由于进度要求被限制在剩余位上,一个二进制阵列在他们…

Redis 结合 Docker 搭建集群,并整合SpringBoot

软件版本 Redis 7.2.5 Docker 26.1.3准备工作 由于docker直接拉取运行了,所以需要提前准备配置文件 Index of /releases/ (redis.io) 下载后,把redis-7.2.5.tar.gz\redis-7.2.5.tar\redis-7.2.5\里的 redis.conf sentinel.conf 复制出来概览结构如上图所示,准备6个服务器。配…

Redis 结合 Docker 搭建哨兵+主从高可用方案,并整合SpringBoot

软件版本 Redis 7.2.5 Docker 26.1.3准备工作 由于docker直接拉取运行了,所以需要提前准备配置文件 Index of /releases/ (redis.io) 下载后,把redis-7.2.5.tar.gz\redis-7.2.5.tar\redis-7.2.5\里的 redis.conf sentinel.conf 复制出来概览结构如上图所示,准备6个服务器。配…