第一次作业

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

第二次作业

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

第三次作业

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

对于大一的时候并没有参加6系魔幻课程数据结构的高工学生来说,面向对象编程是我们第一门大量码代码的科目。相比已经经历过洗礼的6系同学来说,我们的压力确实不小。不过,我想,学习是一个过程,纵使我们起步慢,我们也可以追。对于程序的设计和维护也是一步步进行的,希望我再接下来的无数个作业中能做的更好。

[BUAA OO]第一次博客作业的更多相关文章

  1. OO第一次博客作业

    OO第一次博客作业 一.三次作业的bug反省 1.自己发现别人的问题 (1)输入处理的问题,比如第一次作业,主要就是处理输入的字符串,然后有同学的正则表达式有问题,则对于一些错误输入就不能正确判断. ...

  2. oo 第一次博客作业

    oo 第一次博客作业 早在大一就听说了oo的各种传奇故事,大二下学期终于也开始了我的oo之旅. 基于度量来分析自己的程序结构 第一次作业 类图分析 耦合度分析 可以看出在第一次作业中,我的耦合度非常高 ...

  3. OO第一次博客作业--第一单元总结

    OO第一单元总结 面向对象设计与构造的第一单元,对“面向对象”的概念还根本不理解不熟悉,只觉得需要“分模块”,但不知道怎么分,分多少模块,怎么根据需要的模块的功能建立类.学习的进度又太慢,根本跟不上出 ...

  4. OO第一次博客作业总结反思

    使用了masteruml插件来生成类图和metrics插件分析代码 第一次作业 1.UML类图 >在第一次作业中,使用了两个类,代码中有没有使用的变量与函数,为平衡两个类的内容,我将输出函数放在 ...

  5. OO第一次博客作业(第一单元总结)

    Q:菜是绿的,鸡是黄的,那菜鸡是什么颜色的? A:红的,强测全WA了,能不红么. 菜不菜的问题先不说了,认真研究一下这次的题目,以及WA的原因吧. 程序结构简析 三次实验的核心结构都是差不多 第一次的 ...

  6. [BUAA软工]第一次博客作业---阅读《构建之法》

    [BUAA软工]第一次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...

  7. Java第一次博客作业

    第一次博客作业 目录 三次作业题目详情 作业中的错误分析 感想与心得 题目详情 题目1:第一次作业: 类图: 题目2 类图: 题目3 类图: 题目4 题目5 题目6 类图: 题目7 类图: 题目8 第 ...

  8. BUAA软件工程个人博客作业

    软件工程个人博客作业 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标 团队完成好的软件,并对自己作出规划 这个作 ...

  9. OO第一次博客总结

    虽然早在开学之前就已耳闻过OO这门课的威力,也在寒假自学了一些java的语法,但在真正面对OO这样的工程训练时才发现寒假所学的那点语法简直不值一提,也深刻的感受到在这个过程中自己的提升确实很快,毕竟d ...

随机推荐

  1. P1796 汤姆斯的天堂梦

    题目描述 汤姆斯生活在一个等级为0的星球上.那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍.他向往着等级为N的星球上天堂般的生活. 有一些航班将人从低等级的星球送上高一级的星球,有时需 ...

  2. 删除iptables nat 规则

    删除FORWARD 规则: iptables -nL FORWARD --line-numberiptables -D FORWARD 1 删除一条nat 规则  删除SNAT规则 iptables ...

  3. spark机制理解(一)

    一  基本术语 Application:  基于Spark的用用户程序,包含了Driver程序和集群上的Executor. Driver Program: 运行行main函数并且新建SparkCont ...

  4. OpenGL ES天空盒子效果

    一.理解 利用GLKBaseEffect,自定义顶点着色器和片元着色器,结合天空盒子,展示效果 二.技术代码 CCSkyBoxEffect:天空盒子效果类: CCSkyboxShader.vsh:顶点 ...

  5. js实现弹出框的拖拽

    //HTML部分 <div class="wrap"></div> <div class="popUpBox"> <d ...

  6. mysql 跑存储过程没有权限的问题

    1.赋予权限 GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; 2.刷新权限 FLUS ...

  7. ThinkPHP5.1中数据查询使用field方法数组参数起别名时遇到的问题

    首先数据库基本查询是没有问题的 <?php namespace app\index\controller; use think\Db; class Demo5 { //1.单条查询 public ...

  8. sqlplus 中 各列对齐设定

    设置列标题的对齐方式 JUSTFIFY  {L[EFT]|C[ENTER]|R[IGHT]} SQL> col ename justify center SQL> /

  9. 33 -FTP文件传输

    1.需求 2.流程图 3.自己的版本 4.老师评语 5.修改后的代码 6.修改后版本

  10. AGC 015 E - Mr.Aoki Incubator

    E - Mr.Aoki Incubator 链接 题意: 数轴上有N个黑点,每个点都有一个方向向右的正速度v.当两个点在同一个位置上重合时,若其中一个是红色,另一个也变成红色.保证没有相同速度或初始坐 ...