摘要: BUAA_Unit4 一、第四单元架构设计 本单元任务为实现一个JML解析器,三次作业分别实现对类图的解析、对顺序图与状态图的解析以及模型的有效性检查,难度适中,多次运用了图的深度优先、广度优先遍历算法。 第一次作业 第一次作业实现对类图的解析,为了防止UmlElement解析顺序不一致带来的错误, 阅读全文
posted @ 2022-06-24 17:14 FYQS 阅读(26) 评论(0) 推荐(1) 编辑
摘要: BUAA_OO_UNIT3 1.测试数据的准备 本单元的测试数据准备时,需要满足各个指令的前置条件,方法是自动生成并与他人对拍,关键是指令要覆盖全面,尽可能多。本人在对拍过程中发现一些很诡异的bug,例如有些bug体现在复杂度较高的方法输出有异常,但方法的逻辑并未出现问题,而是由于本人误用==比较两 阅读全文
posted @ 2022-06-01 19:31 FYQS 阅读(32) 评论(0) 推荐(0) 编辑
摘要: CPP A better C 重载 同名函数不同参数 //overloading,支持重载,同名函数,不同参数 void print(int i){} void print(char *str){} 但是,同名同参不同返回值是不允许的 默认参数 void fun(int i, int j, int 阅读全文
posted @ 2022-05-14 09:46 FYQS 阅读(27) 评论(0) 推荐(2) 编辑
摘要: 同步块与锁 在3次作业中,我只使用了同步块(synchronized),原因是同步块就完全可以解决共享数据安全问题,并且语法简单、固定并且性能也不差。而锁(lock)虽然更加灵活,但是在作业中并不必要,而且容易出错。 在3次作业中,存在共享数据安全问题的代码主要在"生产者—消费者"模式下的 一级托盘 阅读全文
posted @ 2022-04-29 10:57 FYQS 阅读(26) 评论(0) 推荐(0) 编辑
摘要: BUAA OO 第一单元作业总结 第一次作业 作业构思 第一次作业要求实现对单变量因子的表达式进行括号展开、合并、化简,本人考虑到后续迭代的要求,选择了递归下降的方式解析表达式,单独建一个Lexer类和Parse类,分别负责提取表达式的各部分和解析,同时建立了三层表达式树,具体如下: |- Main 阅读全文
posted @ 2022-03-23 18:29 FYQS 阅读(42) 评论(1) 推荐(2) 编辑