一.
1、定义参数控制生成题目的个数。 例如,参数n=10;则将生成10个题目。 2、定义参数控制题目中数值(自然数、真分数和真分数分母)的范围。 例如参数r= 10,将生成10以内(不包括10)的四则运算题目。该参数可以设置为1或其他自然数。 该参数必须给定,否则程序报错并给出帮助信息。3.程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目 例如,23 + 45 = 和45 + 23 = 是重复的题目,6 × 8 = 和8 × 6 = 也是重复的题目。3+(2+1)和1+2+3这两个题目是重复的,由于+是左结合的,1+2+3等价于(1+2)+3,也就是3+(1+2),也就是3+(2+1)。但是1+2+3和3+2+1是不重复的两道题,因为1+2+3等价于(1+2)+3,而3+2+1等价于(3+2)+1,它们之间不能通过有限次交换变成同一个题目。4.
二.
我重新将程序写了一遍,为了将自己的思路理的更加清晰一些。前面不变利用while循环,在进行选项之后,引用后面的方法。在整数方法中,定义了一个d1,d1是式子运行的结果,然后在后面定义一个值z,当z与d1进行比较之后,如果值一样就会输出结果正确,如果结果错误,在输出结果错误语句之后,同时会输出正确答案,对于分数的方法,我定义了一个值Z和M,分别代表分数同分过后的分子和分母,剩下的基本和整数的方法一样。
三.
import java.util.Scanner;public class suanshu3 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int m=0; while(m==0) { System.out.println("1、整数计算式,2、真分数计算式"); int a1 = input.nextInt(); if(a1==1) { zhengshu(a1); } else { fenshu(a1); } } } public static void fenshu(int a1) { int x,y,i,a2,C;//a代表计算类型,x代表题目数量,y代表数值的范围,i为循环变量,d代表是否有乘除法 int M,Z; int h = 0; String d = null; System.out.println("请输入题目的数量"); Scanner input2=new Scanner(System.in); x=input2.nextInt(); String daan[]=new String [x]; int x1,x2,B,m1,m2; System.out.println("请输入分母数值的范围"); B=input2.nextInt(); System.out.println("是否有乘除法?(是输入1,否则输入0)"); C=input2.nextInt(); if(C==1){ for(i=0;i
四.