[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 ...
随机推荐
- Debian 8 安装 Qt5 和 go-qml
一.安装相关依赖 ~ ᐅ sudo apt-get install build-essential libgl1-mesa-dev ~ ᐅ sudo apt-get install qt5-defau ...
- echart 对双折线的使用
在使用echart的时候,我们会使用到双折线的情况.双折线不仅可以显示和隐藏,还可以根据实际的情况设置刻度的大小,比如Y坐标上的刻度大小.参考网址见:https://www.echartsjs.com ...
- c# 访问postgressql,使用pghelper访问pgsql
由于工作需要,数据库是postgressql的,本来以为很简单的,结果弄了一晚上,为了总结经验,现将C#连接PGSQL(postgres sql)的资料整理如下. 一.总体思路 1.通过第三方Npgs ...
- WPF的单位 屏幕 分辨率
原文:WPF的单位 屏幕 分辨率 WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DP ...
- jquery ajax异步提交表单数据
使用jquery的ajax方法可以异步提交表单,成功后后台返回json数据,回调函数处理,可以不用刷新页面,达到异步的目的: 处理表单的数据可以用serialize()方法进行序列化,而如果提交的数据 ...
- SP1716 GSS3 - Can you answer these queries III
题面 题解 相信大家写过的传统做法像这样:(这段代码蒯自Karry5307的题解) struct SegmentTree{ ll l,r,prefix,suffix,sum,maxn; }; //.. ...
- P2167 [SDOI2009]Bill的挑战
sb状压dp. 设f[i][j]表示字符串前i位和集合为j的串匹配的方案数. 枚举哪个字母直接转移就好了. (话说为啥这种水题都有紫色难度 #include<bits/stdc++.h> ...
- java 继承类之后,访问不到超类的属性的原因及解决方法
是因为超类里的属性没有加上public关键字 解决方法: 超类和超类里的属性或者方法如果想被其他包下的方法调用,就必须全部加上public权限,即设置为公开访问 例: @Controller publ ...
- js 删除url指定参数
/** * 删除当前url中指定参数 * @param names 数组或字符串 * @returns {string} */ function funcUrlDel(names) { if(type ...
- SSISDB3:Package的执行实例
SSISDB 系列随笔汇总: SSISDB1:使用SSISDB管理Package SSISDB2:SSIS工程的操作实例 SSISDB3:Package的执行实例 SSISDB4:当前正在运行的Pac ...