20175120彭宇辰 结对编程项目第一阶段总结
结对编程第一阶段
结对对象:20175120王泽龙
一、题目要求
1.自动生成小学四则运算题目
-支持整数
-支持多运算符
-支持真分数
2.统计正确率
二、需求分析
1.自动生成表达式(包含多运算符,随机数为整数)
2.计算自动生成的表达式的结果
3.判断用户输入的答案是否和正确答案相符
4.计算正确率
PS:拓展需求
-根据用户的需求生成运算符数量不同的表达式
三、设计思路
1.自动生成表达式
-将5个运算符存放在数组里
-用random创建对象,生成随机数
-根据用户对难度的需求,用switch函数将表达式分为5级,输入不同的数进入不同的难度
-第n级用for循环随机产生n+1个数和n个运算符
2.中缀转后缀
-利用stack
-首先栈为空,从左到右扫描原式。
-如果遇到操作数直接输出,并且输出一个空格作为两个操作数的分隔符;
-如果遇到运算符,先判断与之前运算符的优先级。
PS:与栈顶相比,比栈顶级别高就进栈,否则就退出栈顶元素并输出,然后输出一个空格做分隔符。并且在入栈之前,要先创造一个二维数组定义运算符的优先级。
3.计算后缀表达式
-设置一个操作数栈,开始栈为空,从左开始扫描。
-遇操作数进栈,若遇运算符,就从栈里退出两个元素,先退出的放右边,后退出的放左边,运算后进栈,直到扫描完毕最后那个元素就是结果
4.判断用户结果是否正确&计算正确率
-在jisuan类中算出正确结果,再与用户结果对比
-相同输出true,不同输出false
-用正确题数除以总题数得到正确率
四、UML图
五、运行结果截图
六、代码托管地址
https://gitee.com/pyc-1751/
七、遇到的困难及解决办法
在自动生成表达式时,switch在main方法里编译不通过
-单独创建一个类,实现表达式的分级生成
八、PSP
预估耗时(分钟) | 实际耗时(分钟) | |
Planning 计划 | 120 | 60 |
Development 开发 | 900 | 600 |
Analysis 需求分析 (包括学习新技术) | 150 | 200 |
Coding Standard 代码规范 | 30 | 50 |
Design UML 设计项目UML类图 | 30 | 40 |
Coding 具体编码 | 300 | 200 |
Code Review 代码复审 | 70 | 60 |
Test 测试 | 150 | 120 |
Size Measurement 计算工作量 | 120 | 250 |