作业一

在第一次作业发布的时候对这次作业比较掉以轻心,因为之前在暑假的时候上过先导课,对面向对象的编程思想和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. SQL Server安全

    第一篇 SQL Server安全概述 第二篇 SQL Server安全验证 第三篇 SQL Server安全主体和安全对象 第四篇 SQL Server安全权限 第五篇 SQL Server安全架构和 ...

  2. TestNg和spring3测试报错:Failed to read candidate component class-遁地龙卷风

    java.lang.IllegalStateException:Failed to load ApplicationContext Caused by: org.springframework.bea ...

  3. Kotlin 的优缺点

    从Android 7.0开始,谷歌使用的API从Oracle JDK切换到了open JDK,这对于谷歌来说是一个艰难的决定.对于开发者来说,却倍感兴奋,这意味着长期的官司问题也许就此结束,Andro ...

  4. 设计模式一: 单例模式(Singleton)

    简介 单例模式是属于创建型模式的一种(另外两种分别是结构型模式,行为型模式).是设计模式中最为简单的一种. 英文单词Singleton的数学含义是"有且仅有一个元素的集合". 从实 ...

  5. webservice访问的几种方式

    今天在对接的客户用到了webservice,最终采用wsimport生成本地代理方式以SDK的形式对接,但是想的完整的总结一下ws的几种调用方式. 发布服务的IP地址是:192.168.125.116 ...

  6. Spring Cloud 2-Feign 声明式服务调用(三)

    Spring Cloud Feign  1. pom.xml 2. application.yml 3. Application.java 4. Client.java 简化RestTemplate调 ...

  7. Machine Schedule poj1325

    Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17454   Accepted: 7327 ...

  8. Jedis

    需要把jedis依赖的jar包添加到工程中 连接单机版 // 第一步:创建一个Jedis对象.需要指定服务端的ip及端口. Jedis jedis = new Jedis("192.168. ...

  9. 随机获取min和max之间的一个整数

    // 随机获取min和max之间的一个整数 const randomNum = (Min, Max) => { let Range = Max - Min; let Rand = Math.ra ...

  10. 【python】随机数用法

    全文拷贝自:Python随机数用法 random.seed(int) 给随机数对象一个种子值,用于产生随机序列. 对于同一个种子值的输入,之后产生的随机数序列也一样. 通常是把时间秒数等变化值作为种子 ...