您的位置:首页 > 其它

四则运算生成器(基于控制台)

2017-09-24 00:20 190 查看
一、需求分析

1、通过参数控制生成题目的个数;

2、通过参数控制生成该题目的数值的最大值;

3、题目运行一次生成的题目不能重复,生成的题目存到项目目录里的Exercise.txt中;

5、计算题目答案存在项目目录下的Answer.txt中;

6、程序支持10000道题目生成;

统计结果输出到文件Grade.txt,格式如下:

Correct: 5 (1, 3, 5, 7, 9)
Wrong: 5 (2, 4, 6, 8, 10)
Repeat:2
RepeatDetail:
(1) 2,45+32 Repeat 3,32+45
(2) 5,3+(2+1) Repeat 7,1+2+3

解释:
Correct: 5 ----5道题目正确,正确的题号 1,3,5,7,9
Wrong:5 -----5道题目错误,错误的题号 2,4,6,8,10
Repeat:2 2---组题目重复
(1) 第一组 题号2,题目 45+32 与题号3的题目重复,题号3为 32+45
(2)第二组 题号5,题目 3+(2+1) 与题号7的题目重复,题号7为 1+2+3

二、功能实现
1、运算式的生成:1)通过用户输入来控制生成式子个数和进行运算的数值最大值来生成随机个数的随机运算符;
         2)根据生成的运算符个数来确定所需的操作数个数并生成随机的操作数;

         3)将生成的运算符和操作数进行随机的组合并在组合后生成的操作数中随机加入括号;

2、运算式的计算:通过逆波兰式把中序表达式转为右序表达式最后通过栈来计算
3、对表达式查重:暂时的思路是通过对比运算式的有序表达式是否相同
三、代码实现
https://git.coding.net/hzp2018/task1.git
四、功能演示
1、生成10000道运算式





2、对运算式进行计算(没有将小数替换成分数)



五、PSP表格

PSP2.1Personal Software Process StagesTime Senior StudentTime
Planning计划106
· Estimate估计这个任务需要多少时间106
Development开发63588
· Analysis需求分析 (包括学习新技术)1010
· Design Spec生成设计文档1520
· Design Review设计复审1010
· Coding Standard代码规范3050
· Design具体设计3040
· Coding具体编码480800
· Code Review代码复审2020
· Test测试(自我测试,修改代码,提交修改)4030
Reporting报告6090
·测试报告3060
·计算工作量510
·并提出过程改进计划2520
六、总结
一开始因为对编译原理的掌握不是很好所以逆波兰式并不是很熟悉,所以花费了大量的时间先研究逆波兰式,然后用的又是自己不熟悉的C语言进行编码,对文件的操作也不熟悉,在文件读写也踩了非常多的坑,查重的功能还没来得及实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: