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

一、需求分析

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、对表达式查重:暂时的思路是通过对比运算式的有序表达式是否相同
三、代码实现
四、功能演示
1、生成10000道运算式

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

五、PSP表格

 
 

 

PSP2.1 Personal Software Process Stages Time Senior Student Time  
Planning 计划 10 6  
· Estimate 估计这个任务需要多少时间 10 6  
Development 开发 635 88  
· Analysis 需求分析 (包括学习新技术) 10 10  
· Design Spec 生成设计文档 15 20  
· Design Review 设计复审 10 10  
· Coding Standard 代码规范 30 50  
· Design 具体设计 30 40  
· Coding 具体编码 480 800  
· Code Review 代码复审 20 20  
· Test 测试(自我测试,修改代码,提交修改) 40 30  
Reporting 报告 60 90  
· 测试报告 30 60  
· 计算工作量 5 10  
· 并提出过程改进计划 25 20  
 
六、总结 

一开始因为对编译原理的掌握不是很好所以逆波兰式并不是很熟悉,所以花费了大量的时间先研究逆波兰式,然后用的又是自己不熟悉的C语言进行编码,对文件的操作也不熟悉,在文件读写也踩了非常多的坑,查重的功能还没来得及实现
posted @ 2017-09-24 00:20  Z.P.HE  阅读(233)  评论(6编辑  收藏  举报