OO第四次作业-对前三次作业总结
第一次作业由于直接没怎么学过java,全靠一星期速成,前几天看了java的语法,但是因为光看没有打代码,学习效果并不是特别好。由面向过程转向面向对象,不是特别清楚该怎么办,虽然写的是两个类,但实际上是one-for-all的方法,所有的计算和输入输出全写在一个类里面导致一个main方法里嵌套多层判断,层次非常乱。输入根据指导书提示学习使用正则表达式来匹配。由于刚开始学习,所以第一次作业只能匹配出正确形式的输入。因为时间安排不合理,最后剩余debug的时间不多,导致没赶上提交的时间。第一次作业暴露了很多的问题,时间投入不够,面向对象思想的转变,正则表达式的学习,以及debug。
第二次作业是写傻瓜式电梯,和第一次笔比较,这次作业更具体,根据指导书提供的设计框架,让人更容易设计。因为这次作业的电梯调度比较简单,所以,这次主要是的问题是电梯调度类和请求类,请求队列类的关系。这次因为设计原因,把处理同质请求和计算时间都放在了调度类,统一输入,统一处理。仅在请求类里对不合理请求处理。在最后的debug环节里,发现自己的程序没有输出,最后de了半天才发现,之前用与存请求队列的数组是自己设定的定长数组,导致后来数组越界,改完bug后终于能过测试树的点了。在这次作业中,因为自己设计的原因基本没用上电梯类和楼层类,代码比例很不平衡。到第三次作业才意识到这会对我的代码产生很严重的影响。
第三次作业是对第二次的傻瓜式电梯做一些改进,主要是调度方法的改变,增加一个对捎带请求的处理。这次作业是对第二次作业的延伸,需要用到接口的实现和继承父类,以及对父类方法的重写。这时,第二次作业中调度类过于冗余的问题就体现出来了,电梯类和楼层类过于简单,导致重写捎带请求和重新处理同质方法时改变代码太麻烦,重写之后不能运行,再debug后只能处理非同质的请求,同质请求后的正常捎带请求无法处理。 这时我对自己第二次作业不均衡的代码分布感到很烦恼,对调度类debug的过程让人很难受。这些问题本都可以很好的避免,因为读指导书的不认真,导致设计的随意,以致一步步对代码产生越来越严重的bug,不仅是语法上的错误,更是设计逻辑上的问题。
总结:
三周的学习,让我知道写程序时设计合理的重要性,以及投入足够时间的必要性。debug也只是按照公测的结果来找bug,或者在设计之初就分好自己的校对树,但一般都没公测来的全面。经过这三次作业,能明显感觉到每周都在提升,这个过程确实比较吃力,可能学习方法上有不合适的地方,更多的可能是时间投入的不够。会在之后的作业改正,提升设计的能力。
OO第四次作业-对前三次作业总结的更多相关文章
- OO前三次作业总结
一.第一次作业 1.程序设计分析 ![img](s1.ax1x.com/2018/04/02/CSgoSU.png) 图1 第一次作业类图 ![name](https://images2018.cnb ...
- OO前三次作业思考(第一次OO——Blog)
OO前三次作业总结 基于度量分析程序结构 由于三次作业较多,决定分析内容.功能最为复杂的第三次作业. 上图为第三次作业的类图.我使用了一个抽象类Factor,写了五个因子继承Factor,然后又单独开 ...
- 第一次码java感想及前三次作业总结
写在前面 嗯,首先是java,这学期第一次oo作业布置下来的周末才开始看的,第一次作业因此写得有些手忙脚乱.不过大概看了一遍后发现比c好用,入门更简单吧,好多操作直接import一下就能用了,码代码的 ...
- Blog总结(前三次作业总结)
前三次作业总结 1.前言 (1)第一次题目集共有8道题目,难度较为简单,知识点为JAVA的一些编程基础知识点,如输入输出,选择,循环,一维数组等. (2)第二次题目集共有5道题目,难度较第一次题目集有 ...
- OO前三次作业分析
一,第一次作业分析 度量分析: 第一次的oo作业按照常理来说是不应该有这么多的圈复杂度,但是由于第一次写的时候,完全不了解java的相关知识,按照c语言的方式来写,完全的根据指导书的逻辑,先写好了正确 ...
- OO前三次作业简单总结
随着几周的进行,OO课堂已经经历过三次课下作业.在这三次作业中,我被扣了一些分数,也发现了自己几次作业中一些存在的共同的问题. 首先以第三次作业为例分析,我程序的类图如下 一共九个类,其中Als_sc ...
- oo前三次作业博客总结
第一次作业 实现多项式的加减运算,主要问题是解决输入格式的判断问题. 输入实例: {(3,0), (2,2), (12,3)} + {(3,1), (-5,3)} – {(-199,2), (29,3 ...
- 前三次OO作业总结
一.作业总结 前三次的任务都是表达式求导.这是我在高中就思考过的问题,但是很久都没有付诸实践,直到学习了"类"这个强大的工具.还有正则表达式,如果能适当使用,则不失为一个字符串格式 ...
- 前三次OO作业小结
I used to be enamored of object-oriented programming. I'm now finding myself leaning toward believin ...
随机推荐
- 《Mysql必知必会》笔记
两年前买的书,因为种种原因一直没看,零碎抽点时间看一遍,感觉对自己有用的就顺手记录下.之后转身就把这本书甩了,因为这本书的内容大多是增删改查语句,不实操只看的话,没有什么意义.而且作为一个测试,其实在 ...
- Bootloader的结构和启动过程
CPU上电后,会在某个地址开始执行,比如MIPS结构的CPU会从0xBFC00000取第一条指令,而ARM结构的CPU则从0x00000000开始,嵌入式开发板中,需要把存储器件ROM或Flash等映 ...
- koa2学习笔记02 - 给koa2添加系统日志 —— node日志管理模块log4js
前言 没有日志系统的后台应用是没有灵魂的, 平时工作中每次我们遇到接口报错的时候, 都会叫后台的童鞋看下怎么回事, 这时后台的童鞋都会不慌不忙的打开一个骚骚的黑窗口. 一串噼里啪啦的命令输进去, 哐哐 ...
- Vmware 下安装linux虚拟机
由于想自己玩玩linux系统,就想着装一个linux的虚拟机,虚拟机vmware很好找,也很好用,但是linux镜像安装老是出问题,然后就找了很多版本的,最后实验成功一种,在这里分享给大家. 一.安装 ...
- 易语言中锐浪报表绿色发布指南(免COM组件DLL注册)
第一步 打开易语言开发环境(注要求易语言版本 v5.5及以上版本,如果版本太低,请更新到新版本),点击[工具]菜单,进入系统配置界面: 第二步 切换选择夹到[存根]项目,选中"使用用户自定义 ...
- 筑基期—C语言
1.1 环境: 在ANSIC的任何一种是实现中,存在两种不同的环境.第一种是翻译环境,第二种是执行环境.标准明确说明这两种环境不必在同一台机器上,交叉编译器就是在一台机器上运行,但它所产生的可执行代码 ...
- json keyname map
var obj = { fname:'zhao', lname:'yao', parents:{ father:'zhao' }, children:[ { dname:'zhaoyiyi' } ] ...
- OSG选取点云坐标不准的解决办法
一.默认的相机和所有模型求交的方式 1.1 传统的模型与屏幕点求交的方法如下: osgViewer::View* viewer = dynamic_cast<osgViewer::View*&g ...
- 17-[模块]-time&datetime
1.表示时间time方式 在Python中,用三种方式来表示时间,分别是时间戳.格式化时间字符串和结构化时间 1.时间戳(timestamp):也就是1970年1月1日之后的秒, 例如15063882 ...
- CentOS 7 安装 caffe
1.安装CUDA,很简单,傻瓜式安装 2.http://caffe.berkeleyvision.org/install_yum.html 按照里面安装 3.遇到的问题: LD -o .build_r ...