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

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

第一次作业

  

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

第二次作业

  

  在第二次作业中,我的思路与第一次一样,还是将多项式使用 +- 分解为单项式,并将单项式使用在 * 前添加空格的方法分解为因子,并且对因子进行求导。实际在单项式求导中使用的是数组,用来将各因子的幂次及系数存起来,最后相乘(由于没有嵌套因子这样做十分方便,且最终只会有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父类,以供所有因子继承,还有可以添加乘法和加法接口,这样可以直接调用此接口来做乘法和加法运算,不用在每个类中再写加法方法和乘法方法。

OO-第一单元总结的更多相关文章

  1. OO第一单元作业总结

    oo第一单元的作业是对多项式的求导.下面就是对三次作业分别进行分析. 第一次作业 分析 第一次作业相对来讲比较简单,甚至不用面向对象的思想都能十分轻松的完成(实际上自己就没有使用),包含的内容只有常数 ...

  2. OO第一单元总结

    OO第一单元作业总结 一.前言 开学四周,不知不觉已经做了三次OO作业.事实上,每一次作业对我来说都是很大的挑战,需要花费大量的时间和精力来学习. 虽然学得很艰苦,但最后还是连滚带爬地完成了.(好惨一 ...

  3. OO第一单元优化博客

    OO第一单元优化博客 第一次作业: 合并同类项+提正系数项+优化系数指数0/1=满分 第二次作业: 初始想法 一开始是想以\(sin(x)​\)和\(cos(x)​\)的指数作为坐标,在图上画出来就可 ...

  4. 【OO学习】OO第一单元作业总结

    OO第一单元作业总结 在第一单元作业中,我们只做了一件事情:求导,对多项式求导,对带三角函数的表达式求导,对有括号嵌套的表达式求导.作业难度依次递增,让我们熟悉面向对象编程方法,开始从面向过程向面向对 ...

  5. OO第一单元(求导)单元总结

    OO第一单元(求导)单元总结 这是我们oo课程的第一个单元,也是意在让我们接触了解掌握oo思想的一个单元,这个单元的作业以求导为主题,从一开始的加减多项式求导再到最后的嵌套多项式求导,难度逐渐提高,编 ...

  6. 【作业1.0】OO第一单元作业总结

    OO第一单元作业已全部完成,为了使这一单元的作业能够收获更多一点,我回忆起我曾经在计算机组成课设中,经常我们会写一些实验报告,经常以此对实验内容反思总结.在我们开始下一单元的作业之前,我在此对OO第一 ...

  7. OO第一单元(前四周)作业总结

    OO第一单元(前四周)作业总结 OO第一单元(前四周)作业总结要求(第四次作业) 0.前言 本次博客针对的是本人学习Java的第一阶段的三次作业的作业总结 第一次作业的内容是:7-1 计算税率 (20 ...

  8. 北航OO第一单元作业总结(1.1~1.3)

    经过了三次作业之后,OO第一单元告一段落,作为一个蒟蒻,我初步了解了面向对象的编程思想,并将所学内容用于实践. 一.第一次作业 1.架构分析 本次作业需要完成的任务为简单多项式导函数的求解.表达式仅支 ...

  9. OO第一单元总结与反思

    OO第一单元总结与反思 目录 OO第一单元总结与反思 摘要 第一次作业 本次作业UML类图 本次作业度量分析 第二次作业 本次作业的UML类图 本次作业的度量分析 第三次作业 本次作业的UML类图: ...

  10. 2020 OO 第一单元总结 表达式求导

    title: BUAA-OO 第一单元总结 date: 2020-03-19 20:53:41 tags: OO categories: 学习 OO第一单元通过三次递进式的作业让我们实现表达式求导,在 ...

随机推荐

  1. 我与C++的初识

    Q1:学习<C++语言程序设计>课程之前,你知道什么是编程吗?谈谈上这门课之前你对编程的理解,以及你对自己编程能力的评估. A1:在学习<C++语言程序设计>课程之前,我其实对 ...

  2. python解析FreeMind思维导图

    记录瞬间 在实际工作中,通常需要使用思维导图进行一些分析和设计,但是,在设计好之后,想要把思维导图的内容转化成文字进行输出怎么做呢? 使用python(当然可以使用其他的语言进行处理)可以很好的解决这 ...

  3. [CentOS] rsync同步目录进行备份文件

    操作不难,网上一堆.这里列几个 CentOS7 参考地址: https://www.server-world.info/en/note?os=CentOS_7&p=rsync Copy fil ...

  4. Javascript基础语法(一)

    一.Javascript简介 1. 定义 基于事件和对象驱动,并具有安全性能的脚本语言. 2. 出现背景 上世纪90年代,在美国有出现,当时有上网的环境,并且有网站服务在运行. 注册服务 上图涉及的问 ...

  5. 读取FTP 图片文件,并显示,非下载

    关于FTP,先从怎么创建开始说起,很简单,步骤就两个 ① 电脑-右键管理--本地用户组--添加用户名,密码(用于FTP的用户名.密码) ② IIS 新建FTP站点,命名,指定端口号.FTP文件路径 接 ...

  6. FileOutputSream文件字节输出流

    1.FileOutputSream文件字节输出流:  输入--写出--使用:  输出--写入--存储: 写出写入是对硬盘而言: 其中,OutputStream为所有类型的字节输出流的超类: FileO ...

  7. 20175208『Java程序设计』课程 结对编程练习_四则运算

    20175208 结对编程练习_四则运算(第一周) 结对成员:20175208张家华,20175202葛旭阳 一.需求分析: 实现一个命令行程序,要求: (1)自动生成指定数量的小学四则运算题目(加. ...

  8. textarea如何实现高度自适应?

    今天需要些一个回复评论的页面,设计师给的初始界面就是一个只有一行的框.然后当时就想这个交互该怎么实现比较好,然后想起了新浪微博的做法:点击评论,默认显示一行,当输入的文字超过一行或者输入Enter时, ...

  9. maven 项目连接mysql8.0版本时的注意事项

    MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以前的maven项目,要注意依赖的注入 查看pom. ...

  10. oracle传输表空间相关

    1.convert tablespaceconvert tablespace源端库执行:convert tablespace 'TPS_DATA' to platform 'AIX-Based Sys ...