题目:








程序设计思想:
1:要求1控制题目数量前面程序已实现。
2:要求2控制题目数值范围也是基本实现,只需要稍作更改:对用户的范围输入进行判断,若为空则程序报错并给出提示,让用户重新输入正确数值。
3:至于要求3题目的计算过程不能产生负数,只需要对在计算过程中产生的每一个子结果进行判断,但凡出现负数就舍弃正在生成的题目,重新生成。
4:要求4题目中存在星形如e1÷e2的子表达式时其结果应是真分数,对子表达式为e1÷e2的进行核查,若不是真分数则舍弃,重新出题。
5:用随机数控制运算符个数。
6:此次要求的题目不能重复是指逻辑层面的了,即两道题目不能是经过有限次等价左右交换后完全一模一样的。这个我想到的是,应该在表达式的运算过程中来进行核对,而光看表达式来进行排重的话我还没想到有效的解决方法。运算过程中逐步核查即:首先,先对运算数个数进行对比,运算数个数不样的题目跳过,拿下一个题目继续对比。其次,运算数个数一样时,开始进行表达式的运算(这里拿没有括号时来讲,有括号的还没想好),两道题目同步进行运算,对每一步都进行对比,若为等价的则进行下一步运算,直到出现不等价的一步,则题目排重结束,两道题目是不一样的,继续下一道题目排重。或直到计算完毕,排重也结束,两道题目是一样的,应重新出题。
7:结果保持真分数形式可以通过以下步骤来保证:
int x = 分子;
int y = 分母;
System.out.println(x/y+"'"+x%y+"/"+y);
8:真分数在数据库的存储类型用String类型。
源程序代码:
待定
运行结果截图:
待定
浙公网安备 33010602011771号