小学四则运算练习软件项目报告
GitHub项目地址:https://github.com/sanjinzi/test
一、需求分析
使用
- 为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。
- 练习题生成好后,将你的学号
- 当程序接收的参数为4时,以下为输出文件示例。
二、功能设计
当提示输入练习题个数后输入题目计算个数n,之后随机产生n道练习题并且将n道练习题及其对应的正确答案
三、设计实现
由主函数读入练习题数目;
产生随机数和运算符并将其组合放入数组中;
将数组中的随机数和运算符组合后放入动态数组中;
调用JavaScript中的eval函数计算练习题答案;
将结果输入到文件
四、测试运行
在eclipse中测试运行:
在cmd中测试运行:
五、核心代码
将数组中的随机数和运算符组合后放入动态数组中:
ArrayList<String> expression = new ArrayList<String>(); for(int i = 0; i < num; i++){ int n = random.nextInt(3) + 2; int[] number = new int[n + 1]; String nexpression = new String(); for (int j = 0; j <= n; j++) { number[j] = random.nextInt(100) + 1; } for (int j = 0; j < n; j++) { int fuhao = random.nextInt(4); nexpression += String.valueOf(number[j]) + String.valueOf(operator[fuhao]); if (fuhao == 3) { number[j + 1] = division(number[j], number[j + 1]); } } nexpression += String.valueOf(number[n]); expression.add(nexpression); }
调用JavaScript中的eval函数计算练习题:
static ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript"); private static ArrayList<String> calculate(ArrayList<String> arrayList) { ArrayList<String> suanshi = new ArrayList<String>(); for (String ax : arrayList) { try { ax = ax + "=" + jse.eval(ax); System.out.println(ax); suanshi.add(ax); } catch (ScriptException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
六、总结
由于java是在大二学的,后面也没有对其进行适量的联系,所以现在对于java还不够熟悉,请教和参考了身边许多同学才勉强完成作业。在作业完成方面,还有一些不尽如人意的地方,希望以后能够改进自己的不足,多向身边的大神同学学习,争取下次作业能够完成的更好。
七、展示PSP
PSP | 任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
计划 | 20 | 30 | |
Estimate | g估计任务时间 | 30 | 30 |
Analysis | 需求分析 | 10 | 10 |
Design Spec | 设计 | 20 | 30 |
Design Review | 设计复审 | 10 | 10 |
Design | 具体设计 | 30 | 60 |
Coding | 具体编码 | 40 | 90 |
Code Review | 代码复审,查找语法错误 | 10 | 20 |
Test | 测试报告 | 10 | 20 |
Test Report | 测试,程序编译正确,运行结果正确 | 5 | 5 |
Size Measurement | 计算工作量 | 5 | 10 |
Postmortem |
事后总结,并提出过程改进计划 |
5 | 5 |