你的位置:首页 > 软件开发 > Java > 现代软件工程_第一周练习_第1题_万世想

现代软件工程_第一周练习_第1题_万世想

发布时间:2016-09-09 21:00:15
第一题是要求实现一个自动生成小学生加减乘除四则运算题目的程序。后面可以将它扩展为网站或安卓应用或IOS应用或win10应用。 我的思路比较简单。环境是Java JDK1.8;IDE为Intellij社区版。首先,我们不考虑有括号的情形,那么符号只有+、-、*、/四种;涉及到的 ...

现代软件工程_第一周练习_第1题_万世想

第一题是要求实现一个自动生成小学生加减乘除四则运算题目的程序。后面可以将它扩展为网站或安卓应用或IOS应用或win10应用。

 

我的思路比较简单。环境是Java JDK1.8;IDE为Intellij社区版。

首先,我们不考虑有括号的情形,那么符号只有+、-、*、/四种;涉及到的数包含两种:整数或分数。

1. 我们注意到,一个运算式中,总有“数的个数比运算符多1”的规则。于是,我们自然地想到创建一个固定长度为n的数组number存放数字,每个数都能随机生成,通过maxOfNumber变量控制式子中出现的最大数字。创建一个长度为n-1的数组character存放运算符号。

2. 接下来需要初始化数组number和character。number数组每个元素靠maxOfNumber控制最大数、minOfNumber控制最小数、hasFraction控制是否出现分数随机生成;character数组每个元素靠type变量控制只有加减、只有乘除、加减乘除都有的3种类型随机生成。

例如:n为5,minOfNumber为0,maxOfNumber为10,hasFraction为出现分数,type为只有加减的类型:5/7+8/7-1/7-2/7

3. 接下来就是结果的计算。对于纯整数,计算结果是简单的。通过查找资料,我发现纯整数字符串的计算依靠ScriptEngine类即可完成。函数使用示例如下:

 1   //整型表达式的正确计算结果 2   public String calIntResult() { 3     ScriptEngine se = new ScriptEngineManager().getEngineByName("JavaScript"); 4     try { 5       Double result = (Double) se.eval(formular); 6       return String.valueOf(result.doubleValue()); 7     } catch (ScriptException e) { 8       e.printStackTrace(); 9     }10     return null;11   }

原标题:现代软件工程_第一周练习_第1题_万世想

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录