-
BUAA_OO_2022_Unit_2_Summary
一、程序设计构架 第一次作业 需求简述: 模拟一个多线程实时电梯系统,各楼座有且仅有一台纵向电梯,处理已知起终点的同楼座乘客请求。 代码构架: |- Unit2:主类 |- InputHandler:输入线程 |- Controller:各楼座候乘表 |- Elevator:电梯线程 |- Outp -
OO2022第二单元作业总结
本文为OO2022第二单元总结。本次作业主要以电梯系统的设计为内容熟悉和熟练掌握线程方面的知识。主体思路上我才用了生产者消费者模式,在文章中分别阐述了三次作业中的主要思路,调度器设计与交互,同步代码块的设置与锁的选择。之后利用UML类图,与方法复杂度分析了本次作业架构的不完美之处,最后分享了自己在本次作业中关于层次化设计与线程安全的心得体会。如有错误,谢谢指正! -
面向对象2022-第二单元作业总结
面向对象2022-第二单元作业总结 第一次作业 本次作业是在单栋楼中设置一部电梯接送上下楼的乘客。 (1) 同步块设置&锁的选择 这次作业是多线程作业伊始,能否处理好锁与同步块之间的线程安全,让不同线程间可以共享数据并且保证安全,对多线程作业的发展具有重要意义。在对题干进行一番迅速却又不失严谨的推理 -
BUAA_OO_2022第二单元总结
1 概述 1.1 基本思想 让各个线程处于临界区的时间尽可能短,因此要让临界区操作尽可能简单,这样也有助于避免线程安全问题 电梯只负责乘客上下电梯与电梯的上下移动,电梯的控制工作交给调度器完成 在满足上述两个条件的前提下,代码实现要尽可能简单,即使有可能损失一些性能 注:该作业中没有使用UML类图与 -
面向对象第一单元个人总结
一、第一次作业 UML类图 第一次作业我依托训练的代码进行自己的构造,主要有三个部分:输入转换、表达式解析以及结果的计算与输出。其中,对于表达式的解析结果,我使用后缀表达式进行存储,以方便计算。此时,传入到最后一部分的就只有一串字符,满足低耦合的要求。整体上,使用training的语法分析模式,设计 -
OO第一单元总结
一、作业分析 第一次作业 思路 采用训练所提供的框架,并且具体实现依照强生同学在讨论区发的帖子。先是采用lexer对我们的输入表达式进行读取,把他们都读取成为一个一个“因子”,包括各种运算因子和计算符号还有小括号之类的。 然后我们用parse类来对已经读取出来的一个一个“因子”来解析。具体解析方式是 -
BUAA OO 第一单元总结
BUAA OO 第一次作业总结 第一次作业 任务介绍 第一次作业是简单的单变量多项式展开,括号嵌套最多一层,支持加,减,乘,乘方运算。 UML图与类结构 架构分析 整体程序分为三个部分,parser用于对输入进行解析同时建立表达式树,Expr和Factor作为实际维护数据的对象,Plus、Minus -
BUAA_OO_2022 Unit1 总结
BUAA_OO_2022 Unit1 总结 1.架构分析 1.1 总体需求分析 Unit1中的三次作业归根结底就是得到一个带括号的复杂表达式,对其进行去括号,化简,合并操作。 1.2 hw1 第一次作业的目标是实现对单变量多项式的括号展开。在训练已经给出递归下降解析的情况下,本次作业的难度是比较低的 -
OO_Unit1
第一单元作业总结博客 第一单元的作业总算是全部结束了,如果用一个词来形容我的三次作业,那就是“灾难”。我的oo学习历程从开始就很灾难,假期因为自己犯懒,只配置了工具链,看着群里的大佬们讨论的热火朝天,我也只是暗自愧疚了一秒钟几分钟。我第一次真正入手写java程序,就已经是2.27,也就是开学前一天了 -
OO第一单元作业总结
OO第一单元作业总结 一、作业梗概 OO第一单元作业的核心是表达式的处理及化简,三次作业不断迭代增添功能: 实现简单的(x的幂函数以及常数)的多项式括号展开 增添了对三角函数、sum求和函数以及自定义函数的需求,但有三角函数中只有常数因子或幂函数的限定 取消了第二次作业中的限定,要求可实现多项式