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父类,以供所有因子继承,还有可以添加乘法和加法接口,这样可以直接调用此接口来做乘法和加法运算,不用在每个类中再写加法方法和乘法方法。
OO-第一单元总结的更多相关文章
- OO第一单元作业总结
oo第一单元的作业是对多项式的求导.下面就是对三次作业分别进行分析. 第一次作业 分析 第一次作业相对来讲比较简单,甚至不用面向对象的思想都能十分轻松的完成(实际上自己就没有使用),包含的内容只有常数 ...
- OO第一单元总结
OO第一单元作业总结 一.前言 开学四周,不知不觉已经做了三次OO作业.事实上,每一次作业对我来说都是很大的挑战,需要花费大量的时间和精力来学习. 虽然学得很艰苦,但最后还是连滚带爬地完成了.(好惨一 ...
- OO第一单元优化博客
OO第一单元优化博客 第一次作业: 合并同类项+提正系数项+优化系数指数0/1=满分 第二次作业: 初始想法 一开始是想以\(sin(x)\)和\(cos(x)\)的指数作为坐标,在图上画出来就可 ...
- 【OO学习】OO第一单元作业总结
OO第一单元作业总结 在第一单元作业中,我们只做了一件事情:求导,对多项式求导,对带三角函数的表达式求导,对有括号嵌套的表达式求导.作业难度依次递增,让我们熟悉面向对象编程方法,开始从面向过程向面向对 ...
- OO第一单元(求导)单元总结
OO第一单元(求导)单元总结 这是我们oo课程的第一个单元,也是意在让我们接触了解掌握oo思想的一个单元,这个单元的作业以求导为主题,从一开始的加减多项式求导再到最后的嵌套多项式求导,难度逐渐提高,编 ...
- 【作业1.0】OO第一单元作业总结
OO第一单元作业已全部完成,为了使这一单元的作业能够收获更多一点,我回忆起我曾经在计算机组成课设中,经常我们会写一些实验报告,经常以此对实验内容反思总结.在我们开始下一单元的作业之前,我在此对OO第一 ...
- OO第一单元(前四周)作业总结
OO第一单元(前四周)作业总结 OO第一单元(前四周)作业总结要求(第四次作业) 0.前言 本次博客针对的是本人学习Java的第一阶段的三次作业的作业总结 第一次作业的内容是:7-1 计算税率 (20 ...
- 北航OO第一单元作业总结(1.1~1.3)
经过了三次作业之后,OO第一单元告一段落,作为一个蒟蒻,我初步了解了面向对象的编程思想,并将所学内容用于实践. 一.第一次作业 1.架构分析 本次作业需要完成的任务为简单多项式导函数的求解.表达式仅支 ...
- OO第一单元总结与反思
OO第一单元总结与反思 目录 OO第一单元总结与反思 摘要 第一次作业 本次作业UML类图 本次作业度量分析 第二次作业 本次作业的UML类图 本次作业的度量分析 第三次作业 本次作业的UML类图: ...
- 2020 OO 第一单元总结 表达式求导
title: BUAA-OO 第一单元总结 date: 2020-03-19 20:53:41 tags: OO categories: 学习 OO第一单元通过三次递进式的作业让我们实现表达式求导,在 ...
随机推荐
- Oracle 中 编写 function 和 procedure 的注意事项
create or replace function sum_pro( v_a number, v_b number ) return number is -- v_result number(10) ...
- 微信公众平台开发教程(三)_OAuth2.0认证
一.微信授权认证 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权的两种scope的区别说明 1.以snsapi_base为s ...
- 百度API经纬度和地址互相查询
/** * 获取地址对应的坐标 * @param $address * @return array */ function getAddressPoint($address){ $lng = 0; $ ...
- caffe常用
1. 关闭模型froward信息 os.environ[' #注意要在improt caffe之前 2. 学习率 step: 配合stepsize,迭代次数达到stepsize的整数倍改变一次, ba ...
- MyBatis 处理sql中的 大于,小于,大于等于,小于等于
Mybatis中的sql语句中的 “<” 和 “>” 号要用转义字符 “<” 和 ”>“ ,否则会报错! 如查找年龄大于等于指定年龄的用户信息: SELEC ...
- 【.NET】 HTTP协议之webrequest
零——简介 一.GET 二.POST emmm在post这里在了很多跟头,记忆很深刻. 2.1 传json的Post:简单粗暴的两个参数 一个是网址(接口),一个是json数据 分为了六个步骤 : ...
- Django的安装和一些操作
1.安装 (1) 命令行: pip install django==1.11.18 pip install django==1.11.18 -i 源 (2) pycharm setting —> ...
- mongo 修改器
[$inc] 作用:修改器$inc可以对文档的某个值为数字型(只能为满足要求的数字)的键进行增减的操作. Example: db.b.update({"uid" : "2 ...
- Q语言-[帝王三国送将辅助]
纯属自己写的, 玩同一个游戏的朋友,需要送将的, 把需要送的将改名为送, 然后启动辅助即可 本辅助只支持1024x576 191dpi 附上源码 //本源码初始化分辨率1024x576[夏天] Dim ...
- 问题:Linux报swap空间占用过高,但物理内存还有空余
报错 收到报警,swap空间占用过高,登录到系统查看内存使用详情,看到物理内存还有很多未使用 问题分析 Swap配置对性能的影响分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错 ...