面向对象OO第5-7次作业总结

面向对象OO第5-7次作业总结

学习OO七周了,深切的感受到了这门课程的不友好。前三次作业能够算是勉强地通过了,但是从第五次作业开始就完全GG了。这三次作业,从多线程电梯开始,然后文件监控,然后到出租车,都没有写出来有效的作业。所以就不按照给定的基于度量来分析自己的程序结构了。

第五次作业 多线程电梯


这次作业是根据第三次作业改写而来的,自认为前两个电梯写的还不错,只是电梯捎带功能上少了几个判断的条件,以为这次能够加入多线程完美运行。但是实际写起来却并不如意,各个线程本身写出来了,但是在各个线程的互相配合上出了很严重的问题。读入线程很完美,通过了所有的测试,但是这个电梯实际运行起来陷入了死循环,后来查一下是控制系统向电梯分配指令和电梯完成任务后去除指令出了问题。

*********************************************************************分割线******************************************************************************

第六次作业 文件监控


本次作业线程个人认为掌握了不少,主要的问题就是关于文件树的构造,在这方面完全没有想法,上网查了一个关于扫描文件生成哈希树的代码,然后被判了抄袭,GG。

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||分割线|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

第七次作业 出租车

发现后两次作业都不是线程的问题,确实电梯写完之后自己好好补了补这方面的知识,这次作业躺在了如何计算最短路径的问题,没有看到群里关于这方面函数的讨论,有了上一次惨痛的经历,这一次也不敢用网上有的操作代码,花了很长时间写出来一个,但是实际运行在80*80的地图上要耗费很长的时间,完全不能满足程序的要求。

原文地址:https://www.cnblogs.com/bhlt1998/p/8971125.html

时间: 2024-08-25 09:59:50

面向对象OO第5-7次作业总结的相关文章

设计模式 之 面向对象(OO)思维

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] 面向对象(OO)思维: 1. 考虑类 名词 2. 考虑属性 不可脱离具体的应用环境 3. 考虑方法 4. 考虑类之间的关系 5. 考虑隐藏(封装) 降低耦合度 6. 考虑继承 耦合度强,应该谨慎使用 7. 考虑多态 核心中的核心,多态带来了可扩展性. 多态有三个特性:1继承:2重写:3 父类的引用指向子类的对象 面向对象设计时需注意的问题: 1. 设计没有绝对的对与错 2.

OO第5~7次作业总结

作业5--多线程电梯 设计框架--UML协作时序图 (想看大图的话  crtl+滚轮  比较方便) 我为什么不用UML协作图(Communication Diagram),而是用UML时序图(Sequence Diagram). 一方面,这样横平竖直的图更加直观美观.另一方面,使用Eclipse的plantUML插件能够比较方便地生成时序图.虽然从二者的区别上看: 时序图主要侧重于对象间消息传递在时间上的先后关系,而协作图表达对象间的交互过程及对象间的关联关系. 协作图似乎能够更好地描述线程之间

OO第二次博客作业(2018春)

写在前面 多线程 搞死人 第五次作业 类图: 这次作业的调度器(als_3_controller)继承了上一次的调度器(smart_controller),并且分解了之前的schduel方法,内容分布在run()和新建的类ELE_thread的isCarry()和run()里.在程序运行启动了类ELE_thread 的三个线程,分别代表三部电梯的控制系统,分别操作三部电梯. 度量分析: 问题都出在ELE_thread 的run()里,包括圈复杂度和嵌套深度.主要是因为把上一次的大部分代码都集中放

OO第二次博客作业

一.第五次作业--多线程电梯 (1)分析: 因为时间比较紧迫,所以采用了伪多线程的方式,即计算还是单线程,但是输出是三个多线程.不过最后被判无效了,GG. 现在分析一下觉得还是挺清晰的,电梯开三个线程,在分派任务的时候wait,notify一下就行了. 算法分析: 1.每个电梯有一个list队列,在新任务来的时候决定加入哪个list 2.有变动的list更新(用上一次的代码,从头算到尾,得到应该输出的真实时间) 3.三个线程死循环,遍历对应的list,如果有请求的应输出时间小于当前时间,输出,标

面向对象 ( OO ) 的程序设计——创建对象

为了避免大量重复代码产生,可采用以下方法创建对象 1 工厂模式 1 function createPerson(name,age,job){ 2 var o = new Object(); 3 o.name = name; 4 o.age = age; 5 o.job = job; 6 return o; 7 } 8 9 var person1 = createPerson("Bob",23,"Doctor"); 10 var person2 = createPer

面向对象 ( OO ) 的程序设计——理解对象

1 创建自定义对象 创建自定义对象的最简单方法为创建 Object 的实例,并添加属性方法,也可以使用对象字面量 2 访问器属性 访问器属性包括 getter 和 setter 函数,读取访问器属性时,调用 getter 函数,写入访问器属性时,调用 setter 属性 1 var people = { 2 _year: 1995, 3 age: 0 4 }; 5 6 Object.defineProperty(people, "year", { 7 get:function(){ 8

面向对象 ( OO ) 的程序设计——继承

仅支持实现继承,且主要依靠原型链来实现,不过一般会混合构造函数一起实现继承 1 原型链 继承使用原型链进行传递,类似指针一层层向上指向对应原型,构成链状 在使用原型链近似实现继承时,实例中的所有属性和方法都会被继承 1 // 第一个类型 2 function Func1(){ 3 this.property = true; 4 } 5 // 第一个类型的方法 6 Func1.prototype.getFunc1Value = function(){ 7 return this.property;

PHP学习 Object Oriented 面向对象 OO

定义类class class_name [extends partclass_name]{public private protected var property_name = value;public private protected function method_name (){}} 创建对象$Obj = new Employee(); //使用->访问对象成员 $Obj->Name = 'Flower';$Obj->ShowName(); Static 关键字 纯粹一般用途c

OO(object oriented面向对象)

面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP 一.OO - Object-Oriented(面向对象) 对象代表真实或抽象的事物,有一个名字(唯一标识),有明确的职责(well-defined responsibilities),展示良好的行为(well-defined behavior),接口清晰,并且尽可能简单.自相容,内聚,完备(self-consistent,coherent,and complete). 基于对象概念,以对象为中心,以类和继