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,一经查实,立即删除!

相关文章

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

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

PAT L3-007 天梯地图

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

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

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

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

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

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

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

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

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

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

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

npm git 遇到的问题解决笔记

npm 报错 在无可奈何时可以试一试这个命令 npm cache clean --force commit 是如果报这样的错 删掉项目中.git/index.lock文件再commit即可解决问题 1.git config --global user.email xxx163.com 2.git config --global user.name xxx 3.ssh-keygen -t rsa -C xxx163.com(邮箱…

Docverter – 文本文件轻松转换为 PDF,Docx 和 ePub 文件

Docverter 让你无需建立自己的文档转换工具就能够进行文件转换。Docverter 包装了几个开源项目,使您的文档能够进行完美的转换。借助一个简单的 HTTP API ,把使用 HTML,Markdown, 或者 LaTeX 编写的纯文本文件转换为 DOCX,PDF&…

MoreUnit与MoreUnit

就在一年多以前,我写了一篇关于在Eclipse中使用JUnit的文章。 评论者之一推荐MoreUnit ,以进一步提高测试效率。 尝试一下让我感到很高兴,并且我的自主神经系统立即记住了该插件的键盘快捷键…… 另外,在使用MoreUnit一段时间后&…

js html 导出word 不用activexobject,javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第2/2页...

javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第2/2页更新时间:2008年06月21日 22:57:31 作者:由于时间比较紧,没多的时候去学习研究上述工具包,现在用javascript操作ActiveXObject控件&…

平时二十三测

昨日AK, 今日垫底, 我简直是在坐过山车; 以后记住有返回值的函数一定要写返回值,不然全部输出0 题解: 第一题:全是-1, 是2^(n-1)-1,不会证,样例很明显; 对于有X个跟班的人&#xff0…

20181103_C#线程初探, BeginInvoke_EndInvoke

在C#中学习多线程之前, 必须要深刻的理解委托; 基本上所有的多线程都在靠委托来完成 一. 进程和线程: a) 进程和线程都是计算机的概念, 跟程序语言没有任何关系 b) 进程和线程都属于计算机操作系统自身控制和调度, 程序语言只有使用的份, 最终的控制权还是得操作系统说了算, …

【完成发布】Lazy Line Painter – 非常有趣的 jQuery 路径动画插件

Lazy Line Painter 是基于 Raphal(一个用于在网页中绘制矢量图形的 Javascript 库)的 jQuery 路径动画插件,能够把线条图案转换为吸引眼球的路径动画模式。 您可能感兴趣的相关文章 60款非常酷的 jQuery 幻灯片演示和下载15个款优秀的 jQuer…

python构建矩阵 x y_生成Python函数一半没问题,当前最正统的代码生成是什么样的?...

机器之心原创参与:思源大家都说深度神经网络能力很强,那么从函数注释生成函数代码,以及从函数代码总结函数注释这种最基础的代码任务到底能不能行?像 Python、Java 这样的通用高级语言,到底在代码生成上能达到什么水平…

福大软工 · 第七次作业 - 需求分析报告(404 Note Found队)

目录 组队后的团队项目的整体计划安排项目logo及思维导图项目logo思维导图产品思维导图产品思维导图-引导产品思维导图-后端数据处理、存储产品思维导图-短信识别产品思维导图-智能分析产品思维导图-壁纸生成产品思维导图-注册界面产品思维导图-登录界面产品思维导图-使用1产品…

Web设计前沿:CSS3 在网页设计中的20个惊艳应用

作为 CSS 的下一个版本,CSS3 给 Web 开发带来了革命性的影响。例如,以前很多需要图片呈现的界面效果,现在使用 CSS3 结合 HTML 就可以实现,CSS3 甚至还可以实现需要 JavaScript 才能实现的复杂动画效果。下面向大家展示 CSS3 圆角…

Websockets与Spring 4

我将整个厨盆放入一个小型Web应用程序中,此应用程序是我在该帖子中开发的一部分-Spring Boot,Spring Integration,RabbitMQ,最后是该帖子的主题,Spring MVC与Spring 4中的Websocket支持。 实时地震清单应用 最终的应用…

计算机算力英语怎么说,MIT警告深度学习正逼近算力极限,突破瓶颈会让人类成为上帝?...

原标题:MIT警告深度学习正逼近算力极限,突破瓶颈会让人类成为上帝?摩尔定律提出的时候,人们从来没有想到过芯片的算力会有到达极限的一天,至少从来没有想到芯片算力极限会这么快到来。MIT发出警告:算力将探…

推荐40个简单的 jQuery 导航插件和教程【下篇】

在这篇文章中,我为大家收集了40款非常棒的 jQuery 导航插件和教程。导航作为网站重要的组成部分,能够帮助用户找到他们想要的内容,因此导航设计的好坏决定了用户能够在你的网站停留更长的时间,浏览更多的内容。在下面的集合中&…