[BUAA OO]第一次博客作业
第一次作业
第一次进行面向对象的编程,不论是针对数据设计类还是对方法进行合适的归于不同类中,都不是很熟悉。所写出来的程序还是面向过程+有函数的类(虽然现在很大程度上感觉起来也是这样)。索性作业难度并不算高,完成的也算马马虎虎。公测都通过了,但是互测的时候被发现了一处笔误,少写了一个0,导致6位的测试样例无法正常读入。并且由于我的检测输入的实现并不是通过正则表达式,而是通过简单粗暴的有限状态机,故而第一周并没有完整学习正则表达式。虽然有限状态机的设计并没有出错,但是没有尽早学习正则表达式也给我后面的作业留下了隐患。


第二次作业
第二次作业对于电梯的设计要求并不高,除了一个需要排除同质请求的要求外,基本上跟遛狗一样,哪里有需求就去哪里。对于这样的设计要求,我设计了一个nextTime数组来存贮下一次这一条指令允许被点亮的时间开始点。在设计请求队列的时候,我设计的方法是与前项的请求时间比较,但是我忘记了对即时项数减一,故而导致对于时间逆序的判断恒为正。导致公测有两个测试点没有通过。由于我上次作业并没有按照正则表达式进行设计,我这次的正则表达式实际上是第一次设计。虽然没有出现录入时的爆栈,但是在字符转换为整形变量的时候没有用try-catch进行设计,从而导致转换的时候出现爆栈。真的让我很心痛…这让我明白按照公测树针对性的进行测试输入样例的重要性,debug的时候一定要覆盖到所有细枝末节,不能通过看和想来分析。


第三次作业
这次的作业险些血崩。由于要进行指令的捎带,也就意味着我上一次所设计的nextTime数组要做很大程度上的修改,不仅next的时间要随着指令的完成而变化,对于同质的判断也要随之而改变。这让我真的头疼不已。我之前了解到了第二次作业有的同学使用了模拟时间的办法进行设计。我认为这种想法真的挺好,我当时认为可以通过设计按钮(通过按钮的点亮情况指导电梯的移动、通过其亮暗的情况判断同质),来把复杂的对于指令的判断交给所涉及的模拟来进行。但是,这种初期看似美丽的想法往往会变得很坑。随着设计的进行,我发现,这种模拟实际上就是在设计一种有限状态机,不仅需要根据指导书中所提及的情况来进行完整的cover,而且对于主指令以及捎带指令的判断是无法避免的。因为指导书中要求对于不同的指令类型做不同的行为(再次务必要强烈吐槽一下,为什么一次开门不能解决所有问题…)故而,实际上,不论做哪种实现,对于主指令和捎带指令的判断和刷新是永远无法避免的。于是,我就经历了每天中午美滋滋的以为自己做完了,下午看客服群&再读指导书,发现了我的程序有无数个没有正确实现的点,然后debug到一点钟。这样连续了两三天…不过,这真的让我明白了老老实实按照指导书所要求的进行实现是多么重要。


对于大一的时候并没有参加6系魔幻课程数据结构的高工学生来说,面向对象编程是我们第一门大量码代码的科目。相比已经经历过洗礼的6系同学来说,我们的压力确实不小。不过,我想,学习是一个过程,纵使我们起步慢,我们也可以追。对于程序的设计和维护也是一步步进行的,希望我再接下来的无数个作业中能做的更好。
[BUAA OO]第一次博客作业的更多相关文章
- OO第一次博客作业
OO第一次博客作业 一.三次作业的bug反省 1.自己发现别人的问题 (1)输入处理的问题,比如第一次作业,主要就是处理输入的字符串,然后有同学的正则表达式有问题,则对于一些错误输入就不能正确判断. ...
- oo 第一次博客作业
oo 第一次博客作业 早在大一就听说了oo的各种传奇故事,大二下学期终于也开始了我的oo之旅. 基于度量来分析自己的程序结构 第一次作业 类图分析 耦合度分析 可以看出在第一次作业中,我的耦合度非常高 ...
- OO第一次博客作业--第一单元总结
OO第一单元总结 面向对象设计与构造的第一单元,对“面向对象”的概念还根本不理解不熟悉,只觉得需要“分模块”,但不知道怎么分,分多少模块,怎么根据需要的模块的功能建立类.学习的进度又太慢,根本跟不上出 ...
- OO第一次博客作业总结反思
使用了masteruml插件来生成类图和metrics插件分析代码 第一次作业 1.UML类图 >在第一次作业中,使用了两个类,代码中有没有使用的变量与函数,为平衡两个类的内容,我将输出函数放在 ...
- OO第一次博客作业(第一单元总结)
Q:菜是绿的,鸡是黄的,那菜鸡是什么颜色的? A:红的,强测全WA了,能不红么. 菜不菜的问题先不说了,认真研究一下这次的题目,以及WA的原因吧. 程序结构简析 三次实验的核心结构都是差不多 第一次的 ...
- [BUAA软工]第一次博客作业---阅读《构建之法》
[BUAA软工]第一次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...
- Java第一次博客作业
第一次博客作业 目录 三次作业题目详情 作业中的错误分析 感想与心得 题目详情 题目1:第一次作业: 类图: 题目2 类图: 题目3 类图: 题目4 题目5 题目6 类图: 题目7 类图: 题目8 第 ...
- BUAA软件工程个人博客作业
软件工程个人博客作业 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标 团队完成好的软件,并对自己作出规划 这个作 ...
- OO第一次博客总结
虽然早在开学之前就已耳闻过OO这门课的威力,也在寒假自学了一些java的语法,但在真正面对OO这样的工程训练时才发现寒假所学的那点语法简直不值一提,也深刻的感受到在这个过程中自己的提升确实很快,毕竟d ...
随机推荐
- 图片在线处理 webp!
之前处理图片的方式是,小图标通过gulp配置的spritesmith雪碧图方式,.png会先用ps工具转成.jpg,然后jpg太大则用在线压缩工具来进行压缩(另外gulp系列的gulp-imagemi ...
- Animate.css介绍
Animate.css简介 animate.css 动画库,预设了抖动(shake).闪烁(flash).弹跳(bounce).翻转(flip).旋转(rotateIn/rotateOut).淡入淡出 ...
- 【OC底层】Category、+load方法、+initialize方法原理
Category原理 - Category编译之后的底层结构是 struct categroy_t,里面存储着分类对象方法.属性.协议信息- 当程序运行时,通过runtime动态的将分类的方法.属性. ...
- SceneKit下关于修改SCNNode 的Shader展示自定义图形
由于某些需求,需要在苹果OS x系统下展示一组点云,准备使用苹果官方的三维显示控件来完成这一功能.场景点云作为离散的点, 如果每个点以SCNnode的形式加入场景中,则回造成过大的内存消耗,笔者电脑下 ...
- phpqrcode生成动态二维码简单实例
这是一个利用phpqrcode生成动态二维码简单实例,比微信官方提供的接口还要好用.二维码是动态的,不用生成图片,可自定义二维码大小,间隙,跳转地址等. 参数设置: include_once 'php ...
- Delphi泛型动态数组的扩展--转贴
此文章转载于http://www.raysoftware.cn/?p=278&tdsourcetag=s_pcqq_aiomsg的博客 从Delphi支持泛型的第一天起就有了一种新的动态数组类 ...
- C语言常用知识点
C语言条件预处理命令 /* 格式: #ifdef 标识符 程序1 #else 程序2 #endif 标识符已经定义时,程序段1才参加编译 应用:如调试版本,发行版本,便于调试 */ #include ...
- WPF实现MDI窗体的方法
原文:WPF实现MDI窗体的方法 第一:新建一个类(Class) Win32Native.cs 代码如下: using System; using System.Collections.Generi ...
- WPF 访问资源中的Storyboard
原文:WPF 访问资源中的Storyboard <UserControl.Resources> <Storyboard x:Key="testStoryboard" ...
- JMeter入门教程
转自 http://blog.csdn.net/w565911788/article/details/7629787 1.Jmeter 概要描叙 jmeter 是一款专门用于功能测试和压力测试的轻量级 ...