OO 第五、六、七次作业总结
第五次作业
算法与实现
这次的电梯因为要使用系统时间进行模拟,所以又是推倒了之前的重写的。最后采用三个电梯线程,一个调度线程,一个输入线程的方式。
源码分析图示
类图

方法分析

类分析

由上图看,由于第一次写多线程,单一线程的复杂度过高,任务分配不够平均。
BUG分析
这次被人测了一个ctrl+z导致的scanner的空指针错误,我对此印象深刻。之前一直没考虑到过读入时的判断问题。然后就是调度偶尔会产生不捎带的问题,与调度的算法不当有关。
第六次作业
算法与实现
这次作业主要的难点是第一次接触文件操作,以及如何递归访问文件夹,经过讨论后,我决定使用hashmap存储文件信息,这样比较好在递归访问时比对。线程较少,未出现安全的问题。
源码分析图示
类图

方法分析

类分析

BUG分析
暂无
第七次作业
算法与实现
这次作业相比于电梯其实更简单,大致的框架仍参考了电梯的架构,使用读入线程,分配线程,以及出租车线程,先将指令读入到队列中,再分配给合适的出租车。
源码分析图示
类图

方法分析

类分析

BUG分析
暂无,但在互测时发现对方忘记处理map的信息,直接进行读入,还有就是搜索最短路径时,bfs的速度比较慢,在之后应该会对其进行改进。
心得与体会
这三次作业我的这种设计架构并未出现太多线程的安全问题,这也导致我对锁的理解不够清晰,后来在课上实验才理解到这些东西。
OO 第五、六、七次作业总结的更多相关文章
- 2017-2018-1 我爱学Java 第六七周 作业
团队六七周作业 完善版需求规格说明书 制定团队编码规范 数据库设计 后端架构设计 TODOList 参考资料 完善版需求规格说明书 <需求规格说明书>初稿不足之处: 1.开发工具写错 2. ...
- Linux系统管理第五六七章 权限及归属管理 磁盘管理 文件系统与lvm
第五六七章 alias 查看系统别名 67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...
- 2017-2018-1 Java演绎法 第六七周 作业
团队任务:修改完善<需求规格说明书>等 团队组长:袁逸灏 本次编辑:刘伟康 修改完善上周提交的需求规格说明书 [markdown 链接] [pdf 链接] 不足之处:仅就现在的问题来看,结 ...
- Linux学习-预习第五六七章节关于用户权限管理以及磁盘文件系统
- 2017-2018-1 JaWorld 第六、七周作业
2017-2018-1 JaWorld 第六.七周作业 修改需求规格说明书 上次的<需求规格说明书>初稿有哪些不足? 王译潇同学回答: 1. 引言和目的性考虑的不是很周全. 2. ...
- 2017-2018-1 JAVA实验站 第六、七周作业
2017-2018-1 JAVA实验站 第六.七周作业 详情请见团队博客
- 2016福州大学软件工程第五、六次团队作业-Alpha阶段成绩汇总
1.本次作业成绩统计结果: 本次Alpha阶段团队作业公布如下: 表格说明: PE:贡献百分比 YS:演示评分(满分15分) BK:博客评分(满分15分) SH:事后诸葛亮环节(满分5分) P:个人分 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第六—七周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第六—七周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu- ...
- 201871010128-杨丽霞《面向对象程序设计(java)》第六-七周学习总结
201871010128-杨丽霞<面向对象程序设计(java)>第六-七周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
随机推荐
- MPU/SoC/Application Processor/Embedded OS
Everything has its principles and mechanisms which are designed by its creator and followed by its u ...
- Monitorix:一款面向Linux的轻型系统和网络监测工具
Monitorix是一款功能非常强大的免费开源轻型工具,目的在于监测Linux中的系统和网络资源.它可以定期收集系统和网络数据,并使用自己的Web界面,通过图形显示相关信息.Monitorix让用户可 ...
- 从零学React Native之04自定义对话框
本篇主要介绍: 1. 自定义组件 2. Alert 对话框 自定义对话框 之前的我都是利用React Native提供的基础组件对它们进行排列组合, 其实自定义也很简单, 我们还是拿上一篇文章的例子进 ...
- Gitlab installtation
环境:Centos7 安装配置(安装开启http和sshd): 1 yum -y install curl openssh-server postfix 2 systemctl enable sshd ...
- SQLServer2008或SQLServer2008 R2没有智能提示解决方法
如果没有智能提示,需要安装SqlcompletefreeSQL Server智能提示
- configparser logging collections 模块
configparser 模块: 这是一个写入的模块就是把你的信息给写入的模块 #这是一个把信息写入example文件内import configparserconfig = configparser ...
- 支持xcode6的缓动函数Easing以及使用示例
支持xcode6的缓动函数Easing以及使用示例 用xcode6新建工程后,直接导致不支持之前的Easing缓动函数的代码,经过修改后就可以正常使用了,虽然比不上POP高大上的动画,但用缓动函数的动 ...
- 阿里云Quick BI——让人人都成为分析师
在3月29日深圳云栖大会的数据分析与可视化专场中,阿里云产品专家潘炎峰(陌停)对大数据智能分析产品 Quick BI 进行了深入的剖析.大会现场的精彩分享也赢得观众们的一直认可和热烈的反响. Quic ...
- 【MyBatis】 MyBatis入门
1.MyBatis简介 MyBatis是这个框架现在的名字,而此框架最早的名字是IBatis,其名字的含义是“internet”.“abatis”两个单词的组合,是在2002年的时候开始的一个开源项目 ...
- zabbix监控服务器时间问题
zabbix中有自带对linux服务器时间进行监控的模板,用的key是system.localtime返回当前的系统时间,而配置tigger报警时是用的fuzzytime(N)方法,该方法是将返回的系 ...