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

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

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

总结:

三周的学习,让我知道写程序时设计合理的重要性,以及投入足够时间的必要性。debug也只是按照公测的结果来找bug,或者在设计之初就分好自己的校对树,但一般都没公测来的全面。经过这三次作业,能明显感觉到每周都在提升,这个过程确实比较吃力,可能学习方法上有不合适的地方,更多的可能是时间投入的不够。会在之后的作业改正,提升设计的能力。

最新文章

  1. #array_parents #parents的区别
  2. C# 鼠标悬停在datagridview的某单元格,显示悬浮框效果
  3. 基于jQuery标题有打字效果的焦点图
  4. OnItemClickListener 的参数详解(转)
  5. XML解析之PULL
  6. 如何在JS中获取Request方法
  7. 借鉴网上的winform模仿QQ窗口停靠功能稍作改动
  8. U盘安装centos 6.4教程(总算是弄好了
  9. ZOJ 3822 Domination(概率dp)
  10. Shell脚本:判断用户和用户组是否已经存在/创建用户和用户组
  11. 2013第46周四xml作为WS两端中间测试文件
  12. [转]用apache反向代理解决单外网ip对应内网多个web主机的问题
  13. vim calendar插件配置
  14. 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
  15. Vbox创建COM对象失败
  16. 老李分享:jvm结构简介 2
  17. 转:java获得当前文件路径
  18. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)
  19. MYSQL GROUP BY Optimization
  20. Docker mongodb 3.4 分片 一主 一副 一仲 鉴权集群部署.

热门文章

  1. C语言程序设计I—第八周教学
  2. vlc源码分析(七) 调试学习HLS协议
  3. Linux开机自启动脚本
  4. [转]Docker 生产环境之配置容器 - 限制容器资源
  5. import require
  6. Openstack入门篇(十)之nova服务(计算节点)的部署与测试
  7. Masonry的简单使用(一)
  8. SQL Server 查询请求
  9. linux下的静态库与动态库
  10. (2017)你最不建议使用的Python Web框架?