作业一

在第一次作业发布的时候对这次作业比较掉以轻心,因为之前在暑假的时候上过先导课,对面向对象的编程思想和java的语法都比较熟悉,加上有其他的事物分心,所以到了最后一天才开始着手写代码,轻视作业的结果自然是惨不忍睹,仅仅能勉强完成一个能运行、不crash的程序。

作业二&三

  我比上一次留了更多的时间来完成作业二,但这仍然不是很够,虽然完成了基本的功能要求,但是却因为是赶着写完的,完全忘了写最基础的输入格式的判断,导致输入报错功能缺失很多。

  至于作业三,虽然吸取了前两次作业的教训,一早就准备好开始写第三次的作业,电脑却不幸地坏了……更不幸的是,在借了同学的闲置的电脑之后没用几个小时也坏了……于是在我去到维修中心弄清楚是硬盘坏了并换上了一个新的之后,我只剩不到30个小时从0开始……于是这次作业没交上。

但我还是想分析一下我这次作业的问题,在上一次作业中我设计的思路是逐条读取指令,并判断读取时电梯的运行状态,因此我的时间是跳跃前进的,而在第三次作业中改成了0.5秒0.5秒刷新电梯状态并读取指令,对我的程度来说这样拟真成都比较高的设计思路逻辑比较清晰直观,然而在实际写的过程中难免出bug,在debug的过程中不断的进行大幅改动又没有备份改动前的版本是我这次作业没能完成的两大直接原因,因此也学到了一个新的教训:对自己程序中的bug要有比较清楚的认知和分析后再着手改动,且进行大的改动前最好保留一次备份,以防万一。

分析自己程序的bug

几次作业导致bug的有一个很大的原因都是没有足够仔细的研读指导书,指导书里面许多非常细节的要求,方方面面都要考虑到,当你缺少了哪一个部分或者是理解有偏差,很容易一片江山满地红的。再者就是很多在编写过程中出现的各种大大小小的bug,不仅拖慢编写速度,还会混肴自己的逻辑,这种现象主要来源于自己着手写之前没有进行足够的思考,我认为正确的方式应该是先通读仔细理解指导书,再根据指导书思考程序的架构,想清楚逻辑,把它们写下来,然后再开始着手写代码,写的时候还要时时再看自己写的思路,才不会写着写着变成一团乱麻。

发现别人程序bug所采用的策略

第一次作业主要使用的是阅读对方代码,了解对方的思路再针对性的找bug的方法,但这个方法再第二次作业就行不通了,因为对方的代码非常冗杂,很难理解对方的思路,想了几种测试样例,也测不出来除公测错误之外的错误。

心得体会

虽然OO一直以来都是怨声载道的一门课,我自己也被折磨的不清,常常写不出来挫败感很大(虽然大部分是自己作死),但是每一次折磨过后成长是显而易见的,而且不得不承认在面向对象的编程过程中我还是能感受到乐趣的,虽然一直表现的不好,但我相信坚持改掉缺点,往进步的方向再挪动一点点,到这门课结课的时候一定有很大的改变。与各位同学们共勉吧。

第一次OO阶段性总结的更多相关文章

  1. 第一次OO总结

    作业1——多项式加减法 看到这个名字就开始瑟瑟发抖了,毕竟一年前用C语言让我写这么一个程序都很头疼,什么堆栈啊还有结构都稀里糊涂的,更别说用一个完全没接触过的语言来完成最简单的一次作业.像我这样越老心 ...

  2. OO前三次作业思考(第一次OO——Blog)

    OO前三次作业总结 基于度量分析程序结构 由于三次作业较多,决定分析内容.功能最为复杂的第三次作业. 上图为第三次作业的类图.我使用了一个抽象类Factor,写了五个因子继承Factor,然后又单独开 ...

  3. 第一次oo博客作业--表达式求导

    (1)说实话我这部分真的不知道写些什么,因为我只有第三次作业写了两个类,前两次都是一个类,一个类的好处可能也就是写起来比较方便(不用抽象什么共性了,直接c语言莽过去),缺点很多,架构不清晰,可读性不高 ...

  4. OO第一次总结作业

    第一次OO博客作业 前言 面向对象课程已经经过了4周的时间.前三次作业全部是关于多项式求导的相关内容,内容由易到难,同时我也开始逐渐深入感受学习面向对象的各项特征,逐渐将自己的编程风格从C向真正的面向 ...

  5. OO第一阶段纪实

    $ 0 写在前面 在DDL一次次的推动下,历经三个周期的更迭,一个月的时光匆匆而过.谨撰此博文,以记录这一段见证成长的心路历程. $ 0-0 JAVA“一天速成”没有修习过传说中的“OO先导课”,在学 ...

  6. oo作业总结(四)

    测试与正确性论证 测试是通过构造一系列测试数据,通过对比程序的实际运行结果和预期输出结果来判断程序是否有bug的一种手段.同时,在测试的时候是默认看不到程序的具体实现的,即进行黑盒测试,例如每次OO作 ...

  7. 第一次码java感想及前三次作业总结

    写在前面 嗯,首先是java,这学期第一次oo作业布置下来的周末才开始看的,第一次作业因此写得有些手忙脚乱.不过大概看了一遍后发现比c好用,入门更简单吧,好多操作直接import一下就能用了,码代码的 ...

  8. BUAA-OO-第四单元总结——终章

    面向对象第四单元博客总结--终章 第四单元作业设计 第13次作业设计 类和对应方法属性设计 类设计如下图所示 本次作业主要涉及六个类,其中包括主类 Main ,通用Map类 UmlElementIdM ...

  9. 面向对象第一单元总结:Java实现表达式求导

    面向对象第一单元总结:Java实现表达式求导 题目要求 输入一个表达式:包含x,x**2,sin(),cos(),等形式,对x求导并输出结果 例:\(x+x**2+-2*x**2*(sin(x**2+ ...

随机推荐

  1. unet

    使用unet 直接训练 显著性目标检测数据集,不能得到较好的效果. 在一些情况下(边缘对比较强的情况),分割效果还行.由于没有在ImageNet上得到预训练模型,所以不能得到较好的语义分割的效果

  2. Kotlin 检查空类型

    Kotlin 会检查你定义的非空类型 如果运行过程中被赋空值了  会直接crash

  3. localhost和127.0.0.1的区别

    localhost(local)是不经网卡传输,它不受网络防火墙和网卡相关的的限制. 127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制. ::1     是IPv6中的12 ...

  4. 万维网WWW详解

    万维网WWW(World Wide Web)并非某种特殊的计算机网络,万维网是一个个大规模的.联机式的信息储藏所,英文简称Web. 万维网使用链接的方式能非常方便地从英特网上的一个站点访问到一个站点, ...

  5. tmux 后台训练

    参考链接:https://blog.csdn.net/u014381600/article/details/54588531

  6. Innodb和Myisam数据恢复

    (转自)https://www.cnblogs.com/DwyaneTalk/p/4113829.html 背景 这次恢复oracle和sqlserver,想想也不能把mysql落下了吧.三剑合一.都 ...

  7. 【原创】大叔问题定位分享(14)Kylin频繁OOM问题

    公司一个kylin集群,每到周二下午就会逐个节点OOM退出,非常有规律,kylin集群5个节点,每个节点分配的内存已经不断增加到70多G,但是问题依旧: 经排查发现,每周二下午kylin集群的请求量确 ...

  8. mybatis 保存对象 参数类型

    简单介绍:保存单个对象 ,参数类型的设置,正常的话应该设置成对应的pojo,我想起了以前,不懂事时候的一个做法,其实那时候刚接触到mabatis,做新增的时候,直接就是把需要插入表中的值,放到map里 ...

  9. Mac新系统常用设置

    一.MAC OS整个系统的隐藏文件显示可见,在终端下输入以下命令defaults write com.apple.finder AppleShowAllFiles -bool true 二. 在MAC ...

  10. 等待activity出现(android特有的wait_activity)

    前言 在启动app的时候,如果直接做下一步点击操作,经常会报错,于是我们会在启动完成的时候加sleep.那么问题来了,这个sleep时间到底设置多少合适呢?设置长了,就浪费时间,设置短了,就会找不到元 ...