无题

211606356 陈宇 211606333温志铭

1.单元测试

1.为了使以后代码出错方便找出错误,要对每个方法的方方面面进行单元测试,以保证他的准确性
2.使用Junit插件对对代码进行单元测试
3.对每个传入的参数进行测试,测试每种可能的情况,并让预期值等于实际值
4.单元测试代码

@Test
void testParseSuffixExpression() {
// 测试中序转后续
List < String > test=new ArrayList < String > ();
test.add("1");
test.add("+");
test.add("2");
test.add("-");
test.add("3");
test.add("×");
test.add("4");
test.add("÷");
test.add("5");
List < String > answer=new ArrayList < String > ();
answer.add("1");
answer.add("2");
answer.add("+");
answer.add("3");
answer.add("4");
answer.add("×");
answer.add("5");
answer.add("÷");
answer.add("-");
assertEquals(answer, MathExam6356.parseSuffixExpression(test));
}// 模拟生成一个1+2—3×4÷5的中序表达式,经过ParseSuffixExpression()方法生成12+34×5÷-的后序表达式

5.测试覆盖率截图

2.结构优化(重构)

1.重构了init().方法,原先的init()方法太过复杂,重构后只对gread 和 n 进行初始化。
2.让gradeone();greadtwo();方法支持逆波兰,未重构前答案直接计算,重构后使用answer()方法计算答案,方便单元测试减少不必要的数组。
3.UML类图



4.运行流程图

3.性能调优

1优化前截图

2.优化瓶颈
对于simpleDateFormat,由于智商有限无法优化,只能优化字符串匹配
3.优化后截图

总结

这次作业个人感觉难点在于代码重构后出现的错误,和工具的使用,认识到自己的动手学习能力不足,面对全是英文的工具显得无所适从。很多同学都在deadline前通宵完成,但是!通宵请不要影响他人,特别是昨天大声喧哗,大力关门的人。