概述

和前三次作业相比,这几次作业最大的不同是难度的飞跃。遗憾的是在这难度的变化面前,我自己却没有做好充分的准备,错误的低估了作业难度导致给自己带来了很多不必要麻烦和损失。接下来我将对它们进行说明(度量图工具出了故障一直无法生成请原谅)。

设计简介

第五次作业

这是oo课程第一次多线程作业,我自己也体会到了它的难度。我的设计思路是首先够早一个调度器类(以上类图的scheduler类),负责管理各种实时输入的指令,然后是有三部电梯在各自独立的运行着,每当有新的指令输入时,首先判断是否是同质指令,然后在三部电梯中按照指导书中的说明来寻找可以处理该指令的电梯,如果没有找到可以处理该指令的电梯则将该指令加入请求队列等待执行;和第二次第三次作业不同之处在于本次作业的输入同质判断可以在输入的时候就可以判断完成;另外难点在于合理处理时间,因为每次处理都是需要消耗时间的,这样就会造成最终的输出可能并不满足相邻楼层时间差为0.5;这是本次作业的难点;

这次作业也使我对多线程有了更清晰的认识;

第六次作业

由于一些特殊原因,本次作业完成了但并没有提交;这次作业一个很大的特点在于思路很清晰,但工作量大,这次作业自己也是煞费苦心(熬了两天夜),无奈最终电脑出了故障导致没有提交(难过);设计思路是分为两类,对监控对象是目录和文件进行了分类,如果是文件则非常简单,只需要对其进行相应的处理即可;麻烦的是监控对象时目录的情况,这就需要对整个目录进行扫描且处理的细节比较多;处理的大致过程如下:为每个监控对象开一个线程(以上类图中的monitor类,本次作业最傻的设计,没有之一),时刻扫描有没有发生变化,如果发生变化则报告这条指令的Scheduler线程以此判断是否需要触发操作;

第七次作业

MapInfo类是地图处理和输入类,Main类则是主要线程类。有了前两次多线程作业的预热,本次作业完成的得相对顺利些(其实主要是自己开始写得早);设计思路是有一个调度器类负责调度指令,一旦有指令输入则对其开一个长度为3s的监控线程(Monitor类)来监控是否有出租车抢单以及在三秒的监控线程结束之后来决定由哪辆出租车来处理该指令;

测试分析

第五次作业

公测:错了三个点,三个段都是因为时间误差

互测:对方没有bug,自己被找了四个点,申述了三个,目前通过两个,还有一个还没结果。错误也主要是各种时间误差。不过就算被找出了bug,自己还是没能解决如果消除时间误差。

第六次作业

未提交

第七次作业

公测:格式正确

互测:没被找出bug。对方程序bug蛮多,懒得仔细去查,报了四个incomplete。

总结

最大的收获是使自己了解了自己的实力。由于前三次作业积攒起来的对oo作业的不重视也一散为空,取而代之的是熬夜熬夜又熬夜。关于测程序是如何测的还是和以前一样,有些东大家都懂,只是说也只有那么少数人才能规范的完成,以及在大量的分数诱惑面前,测程序过程中发生的不愉快也逐渐多了起来,最大的希望是自己在学完oo后不要丧失人与人之间的真诚与信任。

oo作业总结(二)的更多相关文章

  1. 第十二次oo作业

    作业十二 规格化设计简介 规格化设计的发展历史 1950年代,第一次分离,主程序与子程序的分离结构是树状模型,子程序可先于主程序编写.通过使用库函数来简化编程,实现最初的代码重用.产生基本的软件开发过 ...

  2. 第十五次oo作业

    作业十五 测试与正确性论证的效果差异 程序的测试需要通过输入特定数据等方式,检查程序是否和预期相同,因为测试不可能穷举,导致了不穷举的测试不可能验证程序是完全正确的,只能验证程序在测试时没有发生错误, ...

  3. oo作业总结(一)

    概述 经历了三次oo作业的洗礼,让我对java语言的强大以及面向对象编程有了初步的理解(当然,我是小白).本文接下来就将对自己这三次作业的代码进行分析以及分享自己的心路历程. 基础知识点考核 针对前三 ...

  4. oo作业总结报告

    oo第一次博客 以前从未真正的写过Java代码,接触Java也只是寒假的时候简单的看了看语法,不懂该如何面向对象,但没事,心里不惧,想着什么都是可以学的(直到真正开始写工程的时候,才发现自己还是太天真 ...

  5. 北航oo作业第一单元小结

    前言 在经过了三次艰辛的oo作业后,oo课程的第一单元告一段落,这一单元,我作为一个oo小白,开始了解oo的编程思想,也有了自己的一点心得体会.把笔粗成字,不当之处,还请各位大佬多多指教. 一.分析程 ...

  6. 北航oo作业第四单元小结

    1.总结本单元两次作业的架构设计 在我动手开始总结我的设计之前,我看了其他同学已经提交在班级群里的博客,不禁汗颜,我是真的偷懒.其他同学大多使用了新建一个类,用以储存每一个UMLelemet元素的具体 ...

  7. oo作业总结(四)

    测试与正确性论证 测试是通过构造一系列测试数据,通过对比程序的实际运行结果和预期输出结果来判断程序是否有bug的一种手段.同时,在测试的时候是默认看不到程序的具体实现的,即进行黑盒测试,例如每次OO作 ...

  8. 团队作业(二):ASB

    团队作业(二):团队选题 题目四:基于Android的文件加密系统 系统名称:ASB 一.引言 1.1编写目的 (1)学习并熟悉掌握AES/DES加密算法的原理以及算法 (2)学习并熟悉Android ...

  9. OO第十二次作业

    规格设计的发展历史 随着计算机软硬件的发展,代码的复杂程度也在不短增加,随着计算机软件规模日渐庞大,结构化程序设计方法开始无法满足用户的需求,面向对象程序设计产生.面向对象程序设计是一场重大的革命,提 ...

随机推荐

  1. vue 里面引入高德地图

    效果图: 实现: 一:引入 高德,web-sdk (两种方式) 1:在html 中引入(我用的这一种) <script type="text/javascript" src= ...

  2. Python全栈开发-Day5-常用模块学习

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil shelve xml处理 pyyaml处理 configparser hashlib re正则 ...

  3. ado.net常用操作

    目录 一.ADO.NET概要 二.ADO.NET的组成 三.Connection连接对象 3.1.连接字符串 3.1.1.SQL Server连接字符串 3.1.2.Access连接字符串 3.1.3 ...

  4. 雷林鹏分享:XML 树结构

    XML 树结构 XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶". 一个 XML 文档实例 XML 文档使用简单的具有自我描述性的语法: To ...

  5. Sparksql的内置函数的使用以及案例

    开发环境:spark:2.2.0 工具:IDEA OS:Windows 数据文件: 001E8CB5AB11,ASUSTek,2018-07-12 14:00:57,2018-07-12 14:00: ...

  6. 【WPF】Silverlight中的Action与Trigger

    最近做的Silverlight项目上用到了大量的拖拽,自动跟随等功能,由于赶时间,加上对Silverlight半生不熟,用的是最简单也是最不好维护的方法.项目忙完了闲下来,想重构一下代码,想起了Tri ...

  7. 在mk/rte.app.mk 256行加echo $(O_TO_EXE_DO)查看GCC参数

    在mk/rte.app.mk 256行加echo $(O_TO_EXE_DO)查看GCC参数,如:

  8. 『TensorFlow』分布式训练_其一_逻辑梳理

    1,PS-worker架构 将模型维护和训练计算解耦合,将模型训练分为两个作业(job): 模型相关作业,模型参数存储.分发.汇总.更新,有由PS执行 训练相关作业,包含推理计算.梯度计算(正向/反向 ...

  9. String类——StringBuilder类的源码及内存分析(java)

    相同:底层均采用字符数组value来保存字符串 区别:String类的value数组有final 修饰,指向不可改,同时private 未提供修改value数组的方法.StringBuilder类的v ...

  10. python-django rest framework框架之分页

    1. 以前django做的分页组件当数据量特别大的时候,性能不是很高,有以下三种方式处理:        a. 记录当前访问页的最后一条数据id,往后取多少条        b. 最多显示120页   ...