软件构造总体报告
老师您好!,这篇报告主要是针对期末考察的算式案例的迭代版本介绍,如何去实现,设计思路,设计模式,怎么测试等等
本次考察的作业是使用Java实现的,如果需要观看效果,需要配置全局环境。
1.第一个版本(面向对象)
第一个版本采取面向对象的思想编写,简单易懂,方便进行重构拓展
文件目录如下
1.1算式类
首先就是对算式类的编写,用来产生各个算式
如图所示定义了加减法约束,左右操作数,操作符,运算结果,calculate算式的计算方法,检验结果方法checkingCalculation,及产生操作数方法generateBinaryOperatio,判断两个算式结果是否相等的equals方法等
1.2加法算式子类AdditionOperation
1.3减法算式子类SubstractOperation
1.3习题类Exercise
让Exercise类包含ArrayList,提供next()和hasNext()公共方法,能够遍历ArrayList里面的元素
产生加法算式习题
产生减法算式习题
产生加减法算式习题
及判断是否含有下一个算式
1.4习题类测试ExerciseSheet
首先定义格式化输出
接着产生算式
运行结果如下
2.第二个版本(算式基)
通过算式基提前生成好算式,到时候就可以通过下标获取到算式,这样就不用每次都去调用算式类生成,减少了性能消耗。
项目目录如下
2.1BinaryOperation
对BinaryOperation进行重构,进行直接插入算式
2.2AdditionOperation
对AdditionOperation重构,将加法约束分离
2.3AdditionConstraint加法
分离出的加法约束
这样使得代码更简洁,容易维护,分工更加明确,提高效率.
2.4SubstractConstraint方法
2.5减法约束
2.6 Constraints类
加减法约束继承Constraints约束类
2.7 GenerateBinaryOperation
对BinaryOperation类中的操作数方法进行重构
2.8BinaryOperationTest
对算式类BinaryOperation类进行测试的测试类BinaryOperationTest
运行结果如下:
2.9OperationBase
OperationBase算式基类
定义加减算式基,题目道术,文件储存位置文件名
以上完成了算式基的生成,存储读取
然后进行测试
2.10Judgement
校验算式结果类
首先创建一个存储空间,在进行判断算式类是否含有下一个算式,然后将结果获取,添加到存储空间里.
批改打印完成
将一个产生的算式题文件打开,则会批改显示正确率。
2.11 Exercise算式类
测试显示算式
设置答案并且判断对错
存储算式对象
将算式写入文件
2.12算式类测试类
ExerciseSheet测试代码
3.第三个版本(菜单界面)
将页面展示出来,让用户体验更好
较二版本之间,添加了两个类菜单类
将执行步骤全部存储在数组
采取了循环switch case进行选择执行步骤
利用递归的方法来判断用户是否退出,打印选择菜单,执行菜单等
利用递归判断是否输入的是数字,是则返回数字,不是则重新输入
测试成功,得到菜单返回
MenuText类测试类
与menu_mian一样采用递归的方式,看菜单选项输入是否正确,判断用户是否退出
继而使用while判断用户没有退出,接着使用switch循环输出下一个菜单供用户选择
填写生成算式的类型数量,每行多少个
调用算式基再使用switch循环生成习题,
最后从main方法中调用菜单,测试成功效果如下: