OO第四次作业-对前三次作业总结
第一次作业由于直接没怎么学过java,全靠一星期速成,前几天看了java的语法,但是因为光看没有打代码,学习效果并不是特别好。由面向过程转向面向对象,不是特别清楚该怎么办,虽然写的是两个类,但实际上是one-for-all的方法,所有的计算和输入输出全写在一个类里面导致一个main方法里嵌套多层判断,层次非常乱。输入根据指导书提示学习使用正则表达式来匹配。由于刚开始学习,所以第一次作业只能匹配出正确形式的输入。因为时间安排不合理,最后剩余debug的时间不多,导致没赶上提交的时间。第一次作业暴露了很多的问题,时间投入不够,面向对象思想的转变,正则表达式的学习,以及debug。


第二次作业是写傻瓜式电梯,和第一次笔比较,这次作业更具体,根据指导书提供的设计框架,让人更容易设计。因为这次作业的电梯调度比较简单,所以,这次主要是的问题是电梯调度类和请求类,请求队列类的关系。这次因为设计原因,把处理同质请求和计算时间都放在了调度类,统一输入,统一处理。仅在请求类里对不合理请求处理。在最后的debug环节里,发现自己的程序没有输出,最后de了半天才发现,之前用与存请求队列的数组是自己设定的定长数组,导致后来数组越界,改完bug后终于能过测试树的点了。在这次作业中,因为自己设计的原因基本没用上电梯类和楼层类,代码比例很不平衡。到第三次作业才意识到这会对我的代码产生很严重的影响。


第三次作业是对第二次的傻瓜式电梯做一些改进,主要是调度方法的改变,增加一个对捎带请求的处理。这次作业是对第二次作业的延伸,需要用到接口的实现和继承父类,以及对父类方法的重写。这时,第二次作业中调度类过于冗余的问题就体现出来了,电梯类和楼层类过于简单,导致重写捎带请求和重新处理同质方法时改变代码太麻烦,重写之后不能运行,再debug后只能处理非同质的请求,同质请求后的正常捎带请求无法处理。 这时我对自己第二次作业不均衡的代码分布感到很烦恼,对调度类debug的过程让人很难受。这些问题本都可以很好的避免,因为读指导书的不认真,导致设计的随意,以致一步步对代码产生越来越严重的bug,不仅是语法上的错误,更是设计逻辑上的问题。


总结:
三周的学习,让我知道写程序时设计合理的重要性,以及投入足够时间的必要性。debug也只是按照公测的结果来找bug,或者在设计之初就分好自己的校对树,但一般都没公测来的全面。经过这三次作业,能明显感觉到每周都在提升,这个过程确实比较吃力,可能学习方法上有不合适的地方,更多的可能是时间投入的不够。会在之后的作业改正,提升设计的能力。
OO第四次作业-对前三次作业总结的更多相关文章
- OO前三次作业总结
一.第一次作业 1.程序设计分析  图1 第一次作业类图 
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 ...
随机推荐
- 【题解】洛谷P1070 道路游戏(线性DP)
次元传送门:洛谷P1070 思路 一开始以为要用什么玄学优化 没想到O3就可以过了 我们只需要设f[i]为到时间i时的最多金币 需要倒着推回去 即当前值可以从某个点来 那么状态转移方程为: f[i]= ...
- ASP.NET MVC中Section、Partial View 和 Child Action(转载)
概括的讲,View中的内容可以分为静态和动态两部分.静态内容一般是html元素,而动态内容指的是在应用程序运行的时候动态创建的内容.给View添加动态内容的方式可归纳为下面几种: Inline cod ...
- Log4J日志配置与Juit测试
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器).Appenders(输出源)和Layouts(布局). 这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- 面向对象之this关键字
方法之间调用,可以通过方法名进行调用.但构造方法,无法通过构造方法名来相互调用. 构造方法之间的调用,可以通过this关键字来完成. l 构造方法调用格式: this(参数列表); l 构造方法的 ...
- L2-025 分而治之(图)
(这不会是我最后一天写算法题的博客吧...有点感伤...) 题目: 分而治之,各个击破是兵家常用的策略之一.在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破.为 ...
- mysql获取随机题目、排序
mysql排序问题(对字符串类型数据进行排序)对普通数字字符串字段排序:select * from qq ORDER BY score*1 DESC,time*1 ASC 一.在mysql操作中我们经 ...
- SceneKit下关于修改SCNNode 的Shader展示自定义图形
由于某些需求,需要在苹果OS x系统下展示一组点云,准备使用苹果官方的三维显示控件来完成这一功能.场景点云作为离散的点, 如果每个点以SCNnode的形式加入场景中,则回造成过大的内存消耗,笔者电脑下 ...
- 【10.14】Bug Bounty Write-up总结
我很喜欢今天的看到的write-up,因为作者是针对他对一个网站整体进行漏洞挖掘的过程写的,内容包括几个不同的漏洞,从中能够学习到怎样系统性的挖掘漏洞. write-up地址:[Bug bounty ...
- PostgreSQL的 PITR实战---运用 recovery_target_time
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页 看了很多的例子,没有发现具体讲 recove ...
- [arc072F]Dam-[单调队列]
Description 传送门 Solution 首先我们肯定不能那么耿直地直接把水混合起来吧..不然分分钟完球. 那么怎么找到最优解呢?假如我们把水的体积和温度按顺序插入队列,这时我们插入第i天的水 ...