Coding.net原码仓库地址:https://git.coding.net/gemyty/personal.git
1.需求分析
(1)、程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。
(2)、每个练习题至少要包含2种运算符,并且练习题在运算过程中不得出现负数与非整数。
2.功能设计
(1)、基本功能:
①程序接收参数n,并对n的合法性作出判断,若出现错误则提示。
②程序能自动生成n个四则运算式,并计算出结果。
③运算式会展现在txt中。
3.设计实现
(1)、calculation()实现构造一个运算式,实现3至6个运算符的要求
(2)、 exact()实现整除,防止小数生成
(3)、positive()实现正数运算,防止负数生成
(4)、main()负责接收参数num,判断参数num的合法性,调用函数产生合格的四则运算式,计算运算式结果并将式子+结果通过打印输出流输出到文件中的功能。
4.算法详解
用calculation()方法生成算式;
用exact实现整除,并防止负数生成。
/* 实现整除 */ public static int decide(int a, int b) { if (a % b != 0) { b = new Random().nextInt(100) + 1; return decide(a, b); } return b; } /* 使减号前面的数大于后面的,不出现负数 */ public static int decide2(int a, int b) { if (a - b < 0) { b = new Random().nextInt(100) + 1; return decide2(a, b); } return b; }
5.测试运行
你的程序必须是可运行的,请展示程序的运行截图,包括题目要求实现功能对应的运行截图。这些截图说明你的程序确实完成了项目需求,如果程序实现了扩展需求,也请大方秀出来。
6.粘贴自己觉得比较独特的或满意的代码片段
得到结果
/* 生成结果 */ int result = 0; for (int i = 1; i < str.length; i++) { if (str[i] == "*" || str[i] == "÷") { if (str[i] == "*") { result = Integer.parseInt(str[i - 1]) * Integer.parseInt(str[i + 1]); str[i - 1] = String.valueOf(result); str[i + 1] = String.valueOf(result); } else { result = Integer.parseInt(str[i - 1]) / Integer.parseInt(str[i + 1]); str[i - 1] = String.valueOf(result); str[i + 1] = String.valueOf(result); } } } for (int i = 1; i < str.length; i++) { if (str[i] == "+" || str[i] == "-") { if (str[i] == "+") { result = Integer.parseInt(str[i - 1]) + Integer.parseInt(str[i + 1]); str[i - 1] = String.valueOf(result); str[i + 1] = String.valueOf(result); } else { result = Integer.parseInt(str[i - 1]) - Integer.parseInt(str[i + 1]); str[i - 1] = String.valueOf(result); str[i + 1] = String.valueOf(result); } } } if (result > 100 || result < 0) { return null; } else { for (int i = 0; i < str2.length - 1; i++) { } str2[str.length - 1] = String.valueOf(result); String str3 = str2[0]; for (int i = 1; i < str2.length; i++) { str3 += str2[i]; } return str3; } }
/* 使减号前面的数大于后面的,不出现负数 */
public static int positive(int a, int b) { if (a - b < 0) { b = new Random().nextInt(100) + 1; return positive(a, b); } return b; }
7.总结
因为自己的能力不足,所以做这个项目的时候有非常多的困难,在这个过程中也收获了许多,做的时候开始非常迷茫不知从哪里开始,后来看了些资料例子博客什么的,有了一点思绪,然后清理了思路,开始写,写的时候有很多错误,一直在修修改改,有时候觉得写对了,但还是有报错,有时候查了些资料解决了,有的还是不知怎么弄得只有重新写过。经过这次,实际感受到了做计划的重要性,一定要有清晰思路后再着手,然后java必须要自己私下加速努力了,有想法但是写不出来更是恼火。
8.展示PSP
代码编写用了许多时间,修改更是用了许多许多时间, 只有反思自己的代码能力,非常有待加强。然后计划也应清晰。
---恢复内容结束---