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


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

至于作业三,虽然吸取了前两次作业的教训,一早就准备好开始写第三次的作业,电脑却不幸地坏了……更不幸的是,在借了同学的闲置的电脑之后没用几个小时也坏了……于是在我去到维修中心弄清楚是硬盘坏了并换上了一个新的之后,我只剩不到30个小时从0开始……于是这次作业没交上。
但我还是想分析一下我这次作业的问题,在上一次作业中我设计的思路是逐条读取指令,并判断读取时电梯的运行状态,因此我的时间是跳跃前进的,而在第三次作业中改成了0.5秒0.5秒刷新电梯状态并读取指令,对我的程度来说这样拟真成都比较高的设计思路逻辑比较清晰直观,然而在实际写的过程中难免出bug,在debug的过程中不断的进行大幅改动又没有备份改动前的版本是我这次作业没能完成的两大直接原因,因此也学到了一个新的教训:对自己程序中的bug要有比较清楚的认知和分析后再着手改动,且进行大的改动前最好保留一次备份,以防万一。
分析自己程序的bug
几次作业导致bug的有一个很大的原因都是没有足够仔细的研读指导书,指导书里面许多非常细节的要求,方方面面都要考虑到,当你缺少了哪一个部分或者是理解有偏差,很容易一片江山满地红的。再者就是很多在编写过程中出现的各种大大小小的bug,不仅拖慢编写速度,还会混肴自己的逻辑,这种现象主要来源于自己着手写之前没有进行足够的思考,我认为正确的方式应该是先通读仔细理解指导书,再根据指导书思考程序的架构,想清楚逻辑,把它们写下来,然后再开始着手写代码,写的时候还要时时再看自己写的思路,才不会写着写着变成一团乱麻。
发现别人程序bug所采用的策略
第一次作业主要使用的是阅读对方代码,了解对方的思路再针对性的找bug的方法,但这个方法再第二次作业就行不通了,因为对方的代码非常冗杂,很难理解对方的思路,想了几种测试样例,也测不出来除公测错误之外的错误。
心得体会
虽然OO一直以来都是怨声载道的一门课,我自己也被折磨的不清,常常写不出来挫败感很大(虽然大部分是自己作死),但是每一次折磨过后成长是显而易见的,而且不得不承认在面向对象的编程过程中我还是能感受到乐趣的,虽然一直表现的不好,但我相信坚持改掉缺点,往进步的方向再挪动一点点,到这门课结课的时候一定有很大的改变。与各位同学们共勉吧。
第一次OO阶段性总结的更多相关文章
- 第一次OO总结
作业1——多项式加减法 看到这个名字就开始瑟瑟发抖了,毕竟一年前用C语言让我写这么一个程序都很头疼,什么堆栈啊还有结构都稀里糊涂的,更别说用一个完全没接触过的语言来完成最简单的一次作业.像我这样越老心 ...
- OO前三次作业思考(第一次OO——Blog)
OO前三次作业总结 基于度量分析程序结构 由于三次作业较多,决定分析内容.功能最为复杂的第三次作业. 上图为第三次作业的类图.我使用了一个抽象类Factor,写了五个因子继承Factor,然后又单独开 ...
- 第一次oo博客作业--表达式求导
(1)说实话我这部分真的不知道写些什么,因为我只有第三次作业写了两个类,前两次都是一个类,一个类的好处可能也就是写起来比较方便(不用抽象什么共性了,直接c语言莽过去),缺点很多,架构不清晰,可读性不高 ...
- OO第一次总结作业
第一次OO博客作业 前言 面向对象课程已经经过了4周的时间.前三次作业全部是关于多项式求导的相关内容,内容由易到难,同时我也开始逐渐深入感受学习面向对象的各项特征,逐渐将自己的编程风格从C向真正的面向 ...
- OO第一阶段纪实
$ 0 写在前面 在DDL一次次的推动下,历经三个周期的更迭,一个月的时光匆匆而过.谨撰此博文,以记录这一段见证成长的心路历程. $ 0-0 JAVA“一天速成”没有修习过传说中的“OO先导课”,在学 ...
- oo作业总结(四)
测试与正确性论证 测试是通过构造一系列测试数据,通过对比程序的实际运行结果和预期输出结果来判断程序是否有bug的一种手段.同时,在测试的时候是默认看不到程序的具体实现的,即进行黑盒测试,例如每次OO作 ...
- 第一次码java感想及前三次作业总结
写在前面 嗯,首先是java,这学期第一次oo作业布置下来的周末才开始看的,第一次作业因此写得有些手忙脚乱.不过大概看了一遍后发现比c好用,入门更简单吧,好多操作直接import一下就能用了,码代码的 ...
- BUAA-OO-第四单元总结——终章
面向对象第四单元博客总结--终章 第四单元作业设计 第13次作业设计 类和对应方法属性设计 类设计如下图所示 本次作业主要涉及六个类,其中包括主类 Main ,通用Map类 UmlElementIdM ...
- 面向对象第一单元总结:Java实现表达式求导
面向对象第一单元总结:Java实现表达式求导 题目要求 输入一个表达式:包含x,x**2,sin(),cos(),等形式,对x求导并输出结果 例:\(x+x**2+-2*x**2*(sin(x**2+ ...
随机推荐
- Linux动态库生成与使用指南
相关阅读: Linux静态库生成指南 Linux下动态库文件的文件名形如 libxxx.so,其中so是 Shared Object 的缩写,即可以共享的目标文件. 在链接动态库生成可执行文件时,并不 ...
- 设计模式五: 原型模式(Prototype)
简介 原型模式是属于创建型模式的一种,是通过拷贝原型对象来创建新的对象. 万能的Java超类Object提供了clone()方法来实现对象的拷贝. 可以在以下场景中使用原型模式: 构造函数创建对象成本 ...
- Lua中的类型与值
[基础介绍] Lua是一种动态类型的语言.在语言中没有类型定义的语法,每个值都带有其自身的类型信息.在Lua中有8中基本类型,分别是: nil(空)类型 boolean(布尔)类型 number(数字 ...
- Linux下安装VMware Tools(使虚拟机支持文件拖拽)
如图点击虚拟机找到安装VMware Tools选项,点击后会在虚拟机桌面显示一个光盘,双击进入如下页面: 选择压缩包将其复制放入Home中不带中文的文件夹: 打开终端,输入cd命令进入文件夹,将压缩包 ...
- mysql收集统计信息
一.手动 执行Analyze table innodb和myisam存储引擎都可以通过执行“Analyze table tablename”来收集表的统计信息,除非执行计划不准确,否则不要轻易执行该 ...
- vue-cli 3.0
安装 vue-cli 3.0 时报错 vue-cli3安装遇到的问题,卸载不掉旧版本,导致更新不了 vue-cli 2.9.6 版本卸载不了 作者:Runner_leaf链接:https://www. ...
- HTML5全屏浏览器兼容方案
最近一个项目有页面全屏的的需求,搜索了下有HTML5的全屏API可用,不过各浏览器的支持不一样. 标准 webkit Firefox IE Element.requestFullscreen() ...
- Eigen::Matrix与array数据转换
1. 数组转化为Eigen::Matrix ]; cout << "colMajor matrix = \n" << Map<Matrix3i> ...
- Spark缓存策略
当对同一个rdd多次执行action时,如果在磁盘上则每次执行action都会从磁盘将数据加载,如果将其缓存到内存中会提高再次action的读取速度,Spark缓存主要有cache()和persist ...
- jdbc和odbc
JDBC简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,它是Java十三个规范之一.可以为多种关系数据库提供统一 ...