第一次码java感想及前三次作业总结
写在前面
嗯,首先是java,这学期第一次oo作业布置下来的周末才开始看的,第一次作业因此写得有些手忙脚乱。不过大概看了一遍后发现比c好用,入门更简单吧,好多操作直接import一下就能用了,码代码的时候只需大概想想实现思路就好了,还是蛮好用的。
第一次作业
Metric的度量
程序的类图
分析
第一次写得一般般,然后我出的bug是把ERROR复制的时候复制成了ERRO,跪了一个公测点,(我再也不乱复制不检查了)。不过发现别人正则表达式写错了。这些都是些小的细节,注意一点就好。(一定好好检查)我自己写的时候面向对象的思维还不太成熟,只是像之前写函数一样分成了几个class,没完全把多项式封装好。然后通过第一次互测发现测试数据一般找不出什么bug,仔细阅读他人的代码才是最好的方法。。。
第二次作业
Metric的度量
程序类图
分析
第二次作业结合第三次作业来说,没有太好的考虑程序后续的可延展性?就是在做第三次作业的时候发现这次作业不太好进行调度策略的修改。第二次作业我采用的是离散的通过逻辑判断同质请求,因为写着比较快,并未采用时间的模拟。这次作业没出什么大的问题,但电梯类的作用没有体现出来。主要的操作还是在controler里实现的,可以将电梯的状态进行封装,但因为这次电梯的状态的重要性并不能体现出来,而且还是开始的设计不太好,所以做成了这个样子。然后就是为了避免crash和简单的判断error,学了学try catch,嗯,确实挺好用。
第三次作业
Metric的度量
程序类图
分析
这次作业确实吃了很多亏。首先是发现上一次作业的设计思路难以延展,就得重新进行设计。最后我选择了进行时间的模拟,这样的话,程序比较直观。但编写过程中因为对指导书的理解问题,进行了茫茫多的debu和修改才弄出来。稍微有点赶,所以忘了点东西,比如大数输出的处理。其实第二次作业我就做好了,后面写着写着就忘了,直接把时间强制转换成了int,没用printf结果就被找了个bug。还有就是因为和上次比较相似,readme就是大概改了一下,没认真写好。然后就被别人找了INVALID和SAME后输出的request的格式问题(只是把指令处理好了输出,readme没写清楚应该是什么格式。。。)嗯,以后一定认真对待的。还有就是以前一直认为readme是限制测试者的,其实通过别人给我找的一个没有有效输入的情况的bug。我认识到了readme应该写成给一个什么都不明白的人教他使用程序的这种感觉。这次测试起来也确实比较难想数据。除了测试树外,特殊的情况太多了,还是和别人讨论了下可能的情况才弄出的测试数据。经过量化分析,这次的调度类的嵌套太多,以后应该注意。
总结
在写代码前一定得好好的考虑设计的问题,第三次作业就是在实现的时候发现考虑掉了很多的问题,在已经完成的程序中嵌套添加了太多的内容,导致其变得复杂。然后每个项目最好还是有工程化的思维吧,就想第二次和第三次作业,虽然第二次写得很容易,但只能单一的解决特定的问题,到了第三次作业就特别不好修改代码,只能重写大量的方法,修改思路。一定不要立刻上手编码,先好好想想再说吧。。。
第一次码java感想及前三次作业总结的更多相关文章
- OO前三次作业思考(第一次OO——Blog)
OO前三次作业总结 基于度量分析程序结构 由于三次作业较多,决定分析内容.功能最为复杂的第三次作业. 上图为第三次作业的类图.我使用了一个抽象类Factor,写了五个因子继承Factor,然后又单独开 ...
- Blog总结(前三次作业总结)
前三次作业总结 1.前言 (1)第一次题目集共有8道题目,难度较为简单,知识点为JAVA的一些编程基础知识点,如输入输出,选择,循环,一维数组等. (2)第二次题目集共有5道题目,难度较第一次题目集有 ...
- OO前三次作业总结
一.第一次作业 1.程序设计分析  图1 第一次作业类图 : 未分类 1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化 ...
- oo前三次作业博客总结
第一次作业 实现多项式的加减运算,主要问题是解决输入格式的判断问题. 输入实例: {(3,0), (2,2), (12,3)} + {(3,1), (-5,3)} – {(-199,2), (29,3 ...
- OO前三次作业简单总结
随着几周的进行,OO课堂已经经历过三次课下作业.在这三次作业中,我被扣了一些分数,也发现了自己几次作业中一些存在的共同的问题. 首先以第三次作业为例分析,我程序的类图如下 一共九个类,其中Als_sc ...
- 201621123062《java程序设计》第三周作业总结
1.本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用 将这些碎片化的概念.知识点组织起来.请使用工具画出本周学习到的知识点及知识点之间的联系.步骤如下: 1.1写出你认为本周学 ...
随机推荐
- 有用的linux指令(资料转载)
对 Linux 新手非常有用的20个命令 你打算从Windows换 ...
- 润乾报表html代码填报
由于html和富文本类型的单元格,不能进行可写操作,如果要想填报时填入html代码并且提交后更新就要换了一个方法,通过数据回填的方法. 比如在C3单元格设置html事件(也可以通过一个按钮来触发 ...
- Android微信支付—注意事项
坑点一:PayReq的参数 sign的生成 PayReq对象有个参数为packageValue 而sign生成时要用到packageValue,但是对应的Key是package,这里的key容易弄错 ...
- Eclipse Ctrl + H 搜索文件不覆盖已打开文件解决办法
1.windows------->preferences
- python学习手册中的一些易忘的点(第4部分)
1.python函数高聚合低耦合1)对于输入使用参数并且对于输出使用return2)只有在真正必要的情况下使用全局变量3)不要改变可变类型的参数,除非调用者希望这样做4)每个函数都应该有一个单一的.统 ...
- Eigen学习之简单线性方程与矩阵分解
Eigen提供了解线性方程的计算方法,包括LU分解法,QR分解法,SVD(奇异值分解).特征值分解等.对于一般形式如下的线性系统: 解决上述方程的方式一般是将矩阵A进行分解,当然最基本的方法是高斯消元 ...
- Coroutine及其实现
线程是内核对外提供的服务,应用程序可以通过系统调用让内核启动线程,由内核来负责线程调度和切换.线程在等待IO操作时线程变为unrunnable状态会触发上下文切换.现代操作系统一般都采用抢占式调度,上 ...
- 关于sys CPU usage 100%问题的分析
最近一个客户抱怨他的核心EBS数据库出现性能问题.这是一个10.2.0.3的数据库,运行在Red Hat Enterprise Linux Server release 5.5 (Linux x86- ...
- 用UIScrollView产生视差效果
用UIScrollView产生视差效果 效果: 高级效果: 源码: MoreInfoView.h + MoreInfoView.m // // MoreInfoView.h // YXCell / ...
- HTTP 头 Connection:close 作用
有的网站会在服务器运行一段时间后down掉,有很多原因可能造成这种现象:比如tomcat堆和非堆内存设置不足,程序没能释放内存空间造成内存溢出,或者某些进程一直运行没能释放,造成cup资源大量消耗. ...