oop前三次作业总结oop前三次作业总结

news/2024/10/9 0:44:50

<# oop前三次作业总结oop前三次作业总结 ## 一、前言 本次的大作业是关于家庭电路设计的,总体难度较大,需要对各种类以及多态的运用熟练,在做题过程中也是遇到了诸多问题,查阅了很多资料,对面向对象的概念有了很大的提升。在这三次题目集中,7-1题目通常作为每个题目集的最后一题,旨在检验我们对前一阶段知识的综合应用能力。从知识点上看,7-1题目涉及了从基础的数据结构、算法到面向对象编程的多个方面。题量上,每个7-1题目都是综合性的大题,需要我们编写较多的代码来实现。难度上,由于7-1题目通常融合了多个知识点,因此相对较难,但这也激发了我们去挑战和解决问题的动力。 ## 二、设计与分析二、设计与分析 该题目要求我们设计一个家庭电路模拟系统,这涉及到面向对象编程中类的设计、继承、多态等概念。 按题目要求我定义了一个electricical(电器)这个父类以及诸多子类,各种设备电路皆继承于电器父类, 在源码中以多态方式实现各部分功能,多态的优势在这一过程中得到了极大的体现,代码的复用性得到了很大的改善。 ### 题目集1分析 题目集1是上次大作业的最后一次迭代,基本功能在前面的几次迭代中基本完成了,而这次迭代只是在原基础上多了些特别格式的处理,虽然工作量比前面几次的迭代少了很多,但还是因为没搞明白测试点的提示信息,到截至的时候仍有几个测试点没过,但是绝大部分的功能都能够通过。 image 这里应该是对多选题的处理还没处理恰当,导致怎么改都还是没通过。 ### 题目集2分析 题目集2的是新的大作业了,题目是关于家庭电路设计的,因为是第一次迭代,只包含最基本的串联情况,而且电路异常以及电器的限制也没有加上,所以还算是轻松解决了,不过因为题目比较特殊,只涉及串联,所以当时就只写了这个功能,导致后面的工作量就大了很多,而且当时一时大意,疏忽了调档变速器的挡位限制,还在后来及时改正了,赶在题目截至前通过了。 image 还好第一次迭代难度没设太高,也是全过了一次。 ### 题目集3分析 这次迭代加入的东西就很多了,新增了输入格式并联电路以及电阻,这就导致要修改的地方就很多了,电路的整体处理也麻烦不少,最关键的是将电路整体信息传递给每个电器元件并要更新元件的状态,这个计算就有些让人头疼,但经过思路整理后,发现将所有电路都看做是串联电路,然后再在电路内部做特定处理,这样就能解决大部分问题了。可惜这次的所有测试点都没有提升,所以一直都不知道自己错在哪里了,而且给的测试用例只有三个,还都没什么代表性,导致在调试的过程中就很头大了。 image 测试点19.20当时考虑了很多种特殊情况,但是都没有对上,所以也是很可惜到截至的时候还是没有通过,不过大部分的测试点都通过了也是心满意足了。 image image image 父类以及部分子类设计如上,这次作业对多态的考核还是蛮多的,实际操作下来对多态的掌握确实是提高了不少,果然看得再多还是不如上手做一遍。 ## 三、踩坑心得 在源码的提交过程中,我遇到了一系列问题和挑战,其中正则表达式的编写错误尤为突出。正则表达式,这个看似简单却实则深奥的工具,时常让我在编写时陷入困境。有时,我会因为对正则表达式的语法细节不够熟悉,或者对某些高级特性的理解不够深入,导致写出的表达式与预期不符,进而影响了整个程序的运行结果。 为了解决这个问题,我付出了大量的时间和精力。我不断地查阅相关资料和文档,深入学习正则表达式的各种语法规则和特性。同时,我也学会了利用在线的正则表达式测试工具,通过实际测试来验证我编写的表达式的正确性。这个过程虽然繁琐,但却让我对正则表达式的理解更加深入,也让我逐渐掌握了编写正确表达式的技巧。 除了正则表达式的编写错误外,我还遇到了性能方面的问题。在处理大量文本或复杂模式时,如果正则表达式的写法不够优化,就会导致程序运行缓慢,甚至出现崩溃的情况。这对我来说是一个全新的挑战,因为我之前并没有太多关注这方面的问题。 在使用多态性的过程中,我遇到了几个主要的问题: 接口定义不明确:最初,我在Device类中定义的方法过于简单,没有充分考虑到各种设备的不同需求。这导致在后续的开发过程中,我需要不断地修改和扩展Device类的方法,增加了代码的复杂性和维护成本。为了避免这个问题,我意识到在定义接口时应该尽可能地明确和全面,考虑到所有可能的设备类型和操作。 类型转换错误:在编写代码时,我曾经试图通过类型转换来直接操作插入的设备。然而,这种做法存在很大的风险,因为如果插入的设备类型与期望的类型不匹配,就会导致程序崩溃。为了避免这个问题,我改用了多态性的做法,通过调用接口的方法来操作设备,从而避免了类型转换错误的风险。 多态性使用不当:在初版代码中,我没有充分利用多态性的优势来简化代码结构。我为每个设备类型都编写了一个专门的处理函数,这导致代码冗余且难以维护。后来,我意识到可以通过让设备类实现统一的接口,并在插座类中调用这些接口的方法来简化代码结构。这种做法不仅提高了代码的可读性和可维护性,还降低了代码的复杂性。 此外,在编写代码的过程中,我还发现了一些容易忽略的问题。比如,对于输入数据的格式和边界条件的处理,我之前并没有给予足够的重视。这导致在一些特殊情况下,我的程序会出现错误或异常。为了解决这个问题,我开始更加细心和严谨地编写代码,充分考虑各种可能的情况和边界条件。我也学会了利用一些测试工具和方法来验证我的代码的正确性,确保它在各种情况下都能正常工作。 回顾这段时间的学习和实践过程,我深感自己在程序设计方面还有许多欠缺,需要多进行实践,不断提高自己的编程水平。同时,我也希望能够在课程、作业和实验的组织方面得到更多的指导和建议,以便更好地发挥自己的潜力和实现自己的目标。 ## 四、改进建议四、改进建议 针对我在完成题目集过程中遇到的问题和挑战,我提出以下具体的改进建议: 首先,加强正则表达式的学习是至关重要的。正则表达式是一门博大精深的学问,其语法和特性繁多,因此我需要进一步深入学习,掌握更多的高级特性和技巧。这包括学习正则表达式中的元字符、转义字符、分组、选择、重复等概念,并理解它们之间的逻辑关系。同时,我也应该多做一些实践练习,通过解决实际问题来巩固和加深对正则表达式的理解。 其次,优化代码性能是我在未来学习和实践中需要注重的方面。在处理大量文本或复杂模式时,正则表达式的性能往往成为关键因素。为了提高代码的运行效率,我需要学习和掌握正则表达式的优化技巧,如使用非贪婪匹配、减少回溯次数等。此外,我还可以考虑使用其他算法或数据结构来辅助处理文本数据,如使用哈希表来存储匹配结果,或使用字符串分割和拼接等操作来简化处理过程。 另外,注意细节和边界条件也是我在编写代码时需要特别关注的问题。在正则表达式的编写过程中,很容易因为忽略了一些细节或边界条件而导致匹配结果不符合预期。因此,我需要在编写代码时更加细心和严谨,充分考虑各种可能的情况和边界条件。特别是对于输入数据的格式和有效性验证等方面,我需要加强检查和处理,确保输入数据的准确性和可靠性。 最后,在题目设计方面,我建议增加一些实际应用场景的题目。通过模拟真实场景中的文本处理问题,可以让学生更深入地理解正则表达式的应用和价值。同时,也可以设置一些更具挑战性的题目,激发学生的创新思维和解决问题的能力。这些题目可以涉及到复杂模式的匹配、多条件组合匹配、嵌套结构的处理等方面,让学生在实践中不断挑战自己,提高自己的正则表达式应用能力。 综上所述,通过加强学习、优化性能、注意细节和边界条件以及增加实际应用场景的题目设计,我相信我能够更好地应对未来在正则表达式应用方面遇到的挑战和问题,提高自己的编程水平和解决问题的能力。 ## 五、总结 通过这三次题目集的深入练习,我对面向对象的理解和应用能力得到了显著提升。每次的练习都为我提供了宝贵的实践机会,使我在掌握各种基本语法和用法的同时,也学会了如何将其灵活运用到实际问题中。 在练习过程中,我逐渐认识到多态的强大之处。它能够极大的提高代码的复用性,使得代码不会显得那么冗杂,在拥有相同属性的类中,各个变量可以不用多次定义,多态是编程中不可或缺的重要工具,若没有多态,那么冗杂的代码会使阅读效率极大地降低,思路也很难理清,工程的完成时间也会被延迟。 然而,在练习过程中,我也发现了自己在正则表达式应用方面的一些不足。有时,我会因为对正则表达式的语法细节不够熟悉而写出错误的表达式,导致匹配结果不符合预期。此外,在处理一些复杂模式时,我也曾遇到性能问题,需要进一步优化正则表达式的写法以提高运行效率。 针对这些不足,我计划在未来的学习和实践中采取一些改进措施。首先,我将继续加强对正则表达式语法和多态的学习和理解,通过查阅相关资料和文档,不断巩固自己的基础知识。其次,我将积极参与更多的实践项目,通过实际问题的解决来提升自己的应用能力和技巧。同时,我也会注意总结自己在练习过程中的经验和教训,避免犯同样的错误。 除了个人努力外,我也希望能够在课程、作业和实验的组织方面得到更多的指导和建议。我相信,通过老师的悉心指导和同学们的相互帮助,我能够更好地发挥自己的潜力,实现自己的目标。 总之,这三次题目集的练习让我对程序设计有了更深入的理解和实践,也为我未来的学习和工作奠定了坚实的基础。我将继续努力提高自己的程序设计能力和编程水平,为未来的挑战做好准备。

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

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

相关文章

彻底搞懂网络地址、广播地址、主机地址、网关、子网掩码、网络号、主机号

1 网络地址、广播地址、主机地址名词解释 1.1 网络地址网络地址是指仅包含网络号而不包含主机号的IP地址。它用于唯一标识一个网络。在网络通信中,网络地址用于路由和寻址。例如,一个IP地址为192.168.0.0,IP掩码为255.255.255.0,那么它的网络地址就是192.168.0.0。 它是指一…

PTA第二阶段三次作业总结

前言 第二阶段的三次大作业明显对设计的要求进一步提高了。我三次作业一共得到了196分,答题判断程序-4有两个测试点未通过,其他两次作业均通过所有测试点,但程序仍有许多不足,下面开始逐题分析。 7-1 答题判题程序-4 答题判断程序-4增加的多选题,填空题,本质是考察了字符…

HarmonyOS ArkTS组件 | Flex 以弹性方式布局子组件的容器组件 学习记录

HarmonyOS ArkTS组件 | Flex 以弹性方式布局子组件的容器组件 学习记录 前言:最近需要用到弹性布局,记录一下。(忽略图片水印QAQ) 说明:Flex组件在渲染时存在二次布局过程,因此在对性能有严格要求的场景下建议使用Column、Row代替。 Flex组件主轴默认不设置时撑满父容器,…

2024计算机组成原理复习——第一章

计算机组成原理复习——第一章一、计算机系统概括 本笔记不用于商业用途,内容参考《2025年计算机组成原理——考研复习指导》以及其对应的b站免费视频课(图文信息主要来自于此) (一)计算机系统结构层次 1. 计算机系统的基本组成硬件:有形的物理设备,计算机系统中实际物理…

[转帖]Linux Kernel 6.6 确认成为 LTS 版本

https://www.kernel.org/category/releases.html Greg Kroah-Hartman 已经宣布 Linux Kernel 6.6 版本为长期支持 (LTS) 版本;支持期限到 2026 年 12 月。 Linux Kernel 6.6 于 10 月 29 日正式发布,是一次包含了新功能、硬件支持、安全增强和性能改进的重大更新。具体包括有…

第4-6次大作业BLOG

目录前言第四次大作业blog设计与分析踩坑心得改进建议总结第五次大作业设计与分析踩坑心得改进建议总结第六次大作业设计与分析踩坑心得改进建议 前言 第四次作业考察了我们list和map的使用,以及对正则表达式的掌握情况,类的设计与方法的使用,第五次作业和第六次作业是电路模…

第二阶段PTA总结

前言 本阶段面向对象程序设计又进行了三次PTA训练,第一次(总第四次)还是接续上轮训练的试卷判分系统的程序设计,后两次都是新的电路设计训练题目。相对来说,第二次电路设计的第一次练习最为简单,第一次和第三次相对复杂。在这个阶段,我已经适应了PTA训练的题量和训练模式…