四则运算题目生成程序(基于控制台)

时间:2022-10-03 21:55:32

一、需求分析

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

2、通过参数控制生成的数字最大值;

3、将题目及答案分别存入文件subject.txt和文件answer.txt

4、用户在答题文件中进行答题,完成后与answer.txt的答案进行比较最后在控制台输出答题结果;

5、程序支持最多生产10000道题目;

二、功能实现

1、生成数学表达式:通过随机数对生成的数字最大值的参数进行取模控制数字的范围,照样通过随机数得到0~3的一个数分别对应“+”,“-”,“*”,“/”四个操作符,再随机操作符的个数。将两个操作数和一个操作符组成一个字符串随机判断是否给这个字符串加上括号,若操作符的个数大于0小于等于2则将所有操作符的个数控制在3个之内,此时可以随机一个操作符和操作数与前一个字符串组成一个新的字符串,再随机判断是否加上括号,依次反复。

2、计算数学表达式:将数学表达式分解转换成逆波兰式,通过逆波兰式计算结果。

3、通过文件io流将数学表达式及其结果分别存入文件subject.txt和文件answer.txt中。

4、将在答题文件中的内容和answer.txt从文件中读取出来进行比较来对答题结果进行一个输出。

三、代码实现

https://git.coding.net/qq1145163692/New-four-arithmetic-operations.git

四、功能演示

1、生成10000道题目

四则运算题目生成程序(基于控制台)

2、功能流程

(1)输入参数得到的数学表达式

四则运算题目生成程序(基于控制台)

(2)subject.txt

四则运算题目生成程序(基于控制台)

(3)answer.txt

四则运算题目生成程序(基于控制台)

(4)1.txt

四则运算题目生成程序(基于控制台)

(5)在1.txt中输入答案

四则运算题目生成程序(基于控制台)

(6) 答题结果

四则运算题目生成程序(基于控制台)

五、PSP表格

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 计划 10 12
• Estimate 估计这个任务需要多少时间 10 12
Development 开发 600 200
• Analysis 需求分析 (包括学习新技术) 5 5
• Design Spec 生成设计文档 20 0
• Design Review 设计复审 20 0
• Coding Standard 代码规范 30 0
• Design 具体设计 20 30
• Coding 具体编码 300 435
• Code Review 代码复审 20 10
• Test 测试(自我测试,修改代码,提交修改) 500 705
Reporting 报告 20 30
测试报告 15 5
计算工作量 5 3
并提出过程改进计划 30 10

六、总结

通过这次作业我深刻体会到了自己的不足之处,许多很简单的小问题自己却经常忽视,例如数据类型的转换和溢出导致自己消磨了太多的时间,同时在测试方面也花费了大量的时间,导致了效率非常低,和周围的同学相比更是太慢了。最后不得不通宵完成作业,好在基本功能都实现了,唯一查重功能由于时间问题不得已放弃还是有些遗憾,而且自己的代码也很简单,就这样提交有点尴尬。不过也让我打了一针强心剂:今后一定要做好计划!