OO-第一单元总结

经过了前三次作业和两次实验的引导,我的编程思路在逐步从面向过程转向面向对象。也对面向对象有了初步的理解。虽然第一次实验由于自己没有及时完成导致没有提交过有些遗憾,但是第二次实验还是提交了几次的(虽然由于时间原因并没有做好本地测试)。在三次作业中,总是有一些本可避免的小问题。在以后的学习中应该尽量避免犯这种错误。还有一些错误是由于自己改了后面的没有再次测试之前的数据引起的,以后在提交之前要尽量自己多做测试。

·基于度量分析自己的程序结构

第一次作业

  

  在第一次作业中我的思路主要是使用在 + - 符号前添加空格,将多项式分解为单项式进行求导。(并没有用到面向对象的思想

第二次作业

  

  在第二次作业中,我的思路与第一次一样,还是将多项式使用 +- 分解为单项式,并将单项式使用在 * 前添加空格的方法分解为因子,并且对因子进行求导。实际在单项式求导中使用的是数组,用来将各因子的幂次及系数存起来,最后相乘(由于没有嵌套因子这样做十分方便,且最终只会有4个因子,即常数,sin(x),cos(x),x),但这种结构在第三次作业中无法很好的复用。

第三次作业

  

  在第三次作业中,我的思路还是将表达式先分解成单项式,再将单项式分解为因子,然后判断此因子是什么类型,如果是简单因子则直接求导;如果是嵌套因子则传入嵌套因子类中,在嵌套因子类中去掉一层,保留求导后结果并将剩余部分传入表达式类,新形成新的表达式并求导;如果是表达式因子则去掉一层括号,并传入表达式类中。本次本意是要使用继承关系的,但是由于使用不熟练,并且想不清楚哪些属性,哪些方法需要继承,最终放弃。

·分析自己程序的bug

  在第三次作业的过程中,发现了static不能乱用。。。之前的作业中,每个类里面写为static并无影响。但是第三次,如果类中private变量写为了static,则会引起递归无法进行下去,"被static修饰的变量或者方法是独立于该类的任何对象,也就是说,这些变量和方法不属于任何一个实例对象,而是被类的实例对象所共享。" 

  第一次作业中,有两个bug,分别是长度判断错误(>=1000 错判断为>1000)和未注意trim(),误以为trim只会删去首尾空格(实际上会删去首尾小于空格的所有空白字符);

第二次作业中,也有两个bug,第一个是判断是否要在 - 号后面添加1,第二个是在合并同类项 sin(x)^2 + cos(x)^2  时引起的,没有判断两者的cos(x) 项和sin(x)项是否次数为0;

第三次作业中,错误主要是由于使用 +- 号分开多项式跳过*与^后的+-号条件错误,并且判断嵌套因子时里面是表达式因子的情况没有考虑完全。

  总而言之,大部分错误是自己没有进行充分测试引起的,以后会尽量避免这种问题。

·分析自己发现别人程序bug所采用的策略

  由于还没有学习对拍。发现别人bug主要是依靠将自己错误过的,编写程序时写出的样例在别人的程序中进行测试。还有少部分bug通过读别人的代码发现。

·总结

  在三周的学习过程中,虽然紧张,但使我收获颇丰。特别是在互测阶段,(虽然被刀了很多同质bug...)但是可以看到互测屋中大佬的代码,可以学习他们写的好的地方。在以后的学习中,会加强自己的本地测试,尽量避免出现低级错误。如果进行第三次作业的重构的话我认为我的程序可以从添加一个factor父类,以供所有因子继承,还有可以添加乘法和加法接口,这样可以直接调用此接口来做乘法和加法运算,不用在每个类中再写加法方法和乘法方法。

转载于:https://www.cnblogs.com/saluki/p/10597944.html

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

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

相关文章

kafka数据 落盘_Kafka数据可靠性保证三板斧-ACK/ISR/HW

点击上方蓝色字体,选择“设为星标”回复”资源“获取更多资源点击右侧关注,大数据开发领域最强公众号!点击右侧关注,暴走大数据!为保证producer发送的数据,能可靠的发送到指定的topic,topic的每…

2013年五大主流浏览器 HTML5 和 CSS3 兼容性大比拼

转眼又已过去了一年,在这一年里,Firefox 和 Chrome 在拼升级,版本号不断飙升;IE10 随着 Windows 8 在去年10月底正式发布,在 JavaScript 性能和对 HTML5 和 CSS3 的支持方面让人眼前一亮。这篇文章给大家带来《五大主流…

一句话引发的思考 - synchronized/super

https://blog.csdn.net/cool__wang/article/details/52459380#commentBox 转载于:https://www.cnblogs.com/rainydayfmb/p/9883864.html

计算机科学方向的会议或期刊,计算机顶会和顶刊_计算机顶会_顶会

《计算机应用研究》正刊和增刊什么区别,是不是增刊不是正规的核心期刊,求...展开全部《计算机应用研究》是核心期刊,其增刊一年只出版一或两期,和月刊一样具有相同复的正式出版刊号。正刊和增刊的区别如下:1、目的用途…

PAT L3-007 天梯地图

https://pintia.cn/problem-sets/994805046380707840/problems/994805051153825792 本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线…

JavaFX中的塔防(4)

好的,到目前为止,我们已经创建了一个TileMap,将其显示在屏幕上,并使其在第一部分中可编辑。 在第二部分中,我们使用A *算法实现了攻击路径的计算,并使敌人跟随该路径。 在第三部分中,我们创建了…

Two.js – 为现代浏览器而生的 2D 绘图 API

Two.js 是面向现代 Web 浏览器的一个二维绘图 API。Two.js 可以用于多个场合:SVG,Canvas 和 WebGL,旨在使平面形状和动画的创建更方便,更简洁。 Two.js 有一个内置的动画循环,可搭配其他动画库。Two.js 包含可伸缩矢量…

apache arm 交叉编译_MacOS 下交叉编译的折腾笔记

这是这个系列 “折腾笔记” 的第一篇,希望能用更直白的方式去展现交叉编译的时候做了些什么。因此,这个教程并不是最佳实践,但是可以让小伙伴们有一个更直白的理解。之后,我会把笔记的重点放在 bazel 上交叉编译的最佳实践&#x…

python - 使用traceback获取详细的异常信息

try: 1/0except Exception,e: print e 输出结果是integer division or modulo by zero,只知道是报了这个错,但是却不知道在哪个文件哪个函数哪一行报的错。下面使用traceback模块 import tracebacktry: 1/0except Exception,e: traceback.print_exc() 输…

计算机科学研究生规划,2019计算机考研备考:计算机科学与技术研究方向及复习规划...

考研之路永远都不是轻松着度过的,想要在这条道路上稳稳妥妥的走完,并到达设立在远处的目标,了解目标专业的各项考研备考信息是第一步。新东方在线为大家整理了2019计算机考研备考:计算机科学与技术研究方向及复习规划,…

快速的远程服务测试

测试与远程服务交互的代码通常很困难。 有很多折衷因素会影响您可以编写哪些测试以及要编写的测试数量。 在大多数情况下,您对从服务中获取的数据的控制为零,这使得断言至少很难说。 不久前,我使用VCR库针对远程服务编写了一些Ruby测试。 VC…

树-二叉树、满二叉树和完全二叉树

树-二叉树、满二叉树和完全二叉树 二叉树的定义: (1)当n0时,为空树; (2)当n>0时,是由一个根结点和称为根结点的左、右子树构成,并且两颗子树互不相交。 满二叉树&…

Codrops 优秀教程:基于 CSS3 的全屏网页过渡特效

向大家分享一个来自 Codrops 的基于 CSS3 实现的全屏网页过渡特效。页面初始布局是四个盒子,点击其中一个会扩张到全屏,其它的会淡出隐藏;关闭当前视图的时候又恢复到初始状态。 您可能感兴趣的相关文章-prefix-free:帮你从 CSS 前…

上海职称英语计算机取消,小编简析2017年职称英语考试是否取消

近日出台的《关于深化人才发展体制机制改革的意见》(以下简称《意见》)直接提出了我国将改革职称制度和职业资格制度,对职称外语和计算机应用能力考试不作统一要求;探索高层次人才等职称直聘办法。《意见》出台的是2016年职称英语考试前几天,…

elasticsearch 条件去重_elasticsearch 笔记四 之聚合查询之去重计数、基础统计、百分位、字符串统计...

这一节笔记还是聚合查询,以下是本节目录:去重统计 cardinality基础统计 stats百分位 percentiles字符串统计 string_stats1、去重统计 cardinality去重统计,就是统计某个字段的值,去重后的数量。先导入如下数据:PUT /e…

openstack基础环境

主机环境: centos7.5 ip:192.168.2.11 修改主机名,修改后主机名不得再更改 yum install chrony -y (控制节点和计算节点都要装)编辑 vi /etc/chrony.conf 文件,按照你环境的要求,对下面的键进行添加&#x…

Java内存模型又回来了

Java内存模型已经被遗忘了九年多了,但是大多数开放源代码Java支持者都希望对其进行现代化,并专注于并发,因为Java内存模型中引入的过程仅朝现代化迈出了一步 。 一个JEP(JDK增强建议),编号188 &#xff0c…

Redis缓存设计模式与失效策略

大家好,我是升仔 引言 Redis作为一个灵活的键值数据库,广泛用于实现高性能缓存解决方案。理解其缓存设计模式和失效策略对于开发高效、可靠的应用程序至关重要。 缓存设计模式 缓存 aside(旁路缓存): 基本原理:应用…

【Python 19】BMR计算器3.0(字符串分割与格式化输出)

1.案例描述 基础代谢率(BMR):我们安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上。 计算公式: BMR(男) (13.7*体重kg&#xff0…

经典案例:2012年最佳25个响应式网站设计作品《下篇》

2012年,响应式网站设计成为主流,这个概念由著名网页设计师 Ethan Marcotte 在2010年5月份提出,其目标是要让设计的网站能够响应用户的行为,根据不同终端设备自动调整尺寸。 响应式设计不再只是一个概念,众多大公司也把…