需求分析(描述自己对需求的理解,以及后续扩展的可能性)
1.代码要满足加减乘除的运算,包含括号,支持真分数
2.对象选择生成四则运算题目的数量
3.手动输入结果
4.题目要可以验证结果正确与否并统计正确率
5.要输出文件
6.可以支持多运算符
设计思路
1.先将代码的结构构建好,即先写输出题目的数量
2.通过for循环设计随机出现的题型,包括真分数题型
3.编写不同类型的题型并检验
5.考虑如何输入文件和避免重复题目的方法
6.测试
实现过程中的关键代码解释
1.String answer88 = String.valueOf(answer8);
在完成真分数的设计时,由于分数类型带/
符号,不能使用int
来表示,只能用String
类型,而且对于分数我加了一个分数类Fraction
,所以需要将分数类的结果转为String
,才能使输入值和正确答案的类型相同,从而进行比较。


测试方法
通过输入数量决定生成题目的数量,并且题型随机,最后统计正确率。
运行过程截图

遇到的困难及解决方法
1.真分数如何表示?
解决方法:在网上找了一个分数类`Fraction`,里面有分数加减乘除法则。于是我们编写了一个测试类来尝试如何调用该类,测试成功后将其使用于四则运算上来进行表示分数。例如:

public class FractionTest {
public static void main(String[] args) {
Fraction f1 = new Fraction(1, 2);
Fraction f2 = new Fraction(2, 4);
System.out.println(f1);
System.out.println(f2);
System.out.println(f2.simplify());
System.out.println(f1.add(f2));
}
}
2.如何写入文件?
解决方法:此问题为下周任务。
对结对的小伙伴做出评价(重点指出需要改进的地方)
我的搭档是齐力锋同学,他负责顶层设计,我负责代码的编写。编码过程中,我们通常采用坐在一起,一起讨论,边讨论,边动手,我们进行了深刻的讨论,提出了如何不使用栈来写四则运算,极大程度上减少了脑力活动但是,在接下来的一周里我们会继续讨论如何使用栈来编写类。希望他能够花更多时间来进行复杂代码的实践。以免生疏。
PSP记录
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
计划 |
120 |
120 |
估计这个任务需要多少时间 |
360 |
360 |
生成设计文档 |
0 |
0 |
设计复审 (和同事审核设计文档) |
0 |
0 |
开发 |
30 |
10 |
需求分析 |
60 |
30 |
具体编码 |
240 |
300 |
测试 |
20 |
30 |
测试报告 |
60 |
120 |
事后总结, 并提出过程改进计划 |
20 |
20 |