代码:
package demo;
import java.util.Scanner;
public class yunsuan {
static int j;
static int a,b,c,d,min,max;
static String aa,bb;
static char []ch=new char[4];
public static void zhengshu(){
Scanner in=new Scanner(System.in);
System.out.println("1.有乘除法 2.无乘除法:");
int xx=in.nextInt();
System.out.println("请输入题目页数:");
int x=in.nextInt();
System.out.println("请输入题目个数:");
int x1=in.nextInt();
System.out.println("请输入变量个数:");
int z=in.nextInt();
System.out.print("请输入数值范围:");
min=in.nextInt();
max=in.nextInt();
System.out.println("1.有括号 2.无括号:");
int t=in.nextInt();
int a1,b1;
int []M=new int[10];
String []N=new String[10];
String []A1=new String[x1];
for(int ii=1;ii<=x;ii++)
{
for(int i=0;i<x1;i++)
{
a1=(int)(Math.random()*(z-1)+1);
b1=a1+1;
A1[i]="";
for(int o=0;o<z;o++)
{
M[o]=(int)(Math.random()*max+min);
if(t==1)
{
if(o==a1-1||o==b1-1)
{
if(o==a1-1)
N[o]="("+M[o];
else
N[o]=M[o]+")";
}
else
N[o]=""+M[o];
}
else
N[o]=""+M[o];
if(xx==1)
j=(int)(Math.random()*4+1);
else
j=(int)(Math.random()*2+1);
if(o==z-1)
A1[i]=A1[i]+N[o]+" =";
else
A1[i]=A1[i]+N[o]+" "+ch[j-1];
}
for(int k=0;k<i;k++)
{
if(A1[i].equals(A1[k]))
{
i--;
break;
}
}
}
for(int i=0;i<x1;i++)
{
System.out.println((i+1)+". "+A1[i]);
}
System.out.println("-"+ii+"-");
}
}
public static void fenshu(){
String []B=new String[3];
for(int i=0;i<3;i++)
{
a=(int)(Math.random()*100+1);
b=(int)(Math.random()*100+1);
if(a>b)
aa=b+"/"+a;
else if(a<b)
aa=a+"/"+b;
else
aa="1";
c=(int)(Math.random()*100+1);
d=(int)(Math.random()*100+1);
if(c>d)
bb=d+"/"+c;
else if(c<d)
bb=c+"/"+d;
else
bb="1";
j=(int)(Math.random()*4+1);
B[i]=aa+" "+ch[j-1]+" "+bb+"=";
for(int k=i+1;k<3;k++)
{
if(B[i].equals(B[k]))
{
a=(int)(Math.random()*10+1);
b=(int)(Math.random()*10+1);
j=(int)(Math.random()*4+1);
B[k]=aa+" "+ch[j-1]+" "+bb+"=";
k--;
}
}
System.out.println((i+1)+". "+B[i]);
}
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("1.整数运算");
System.out.println("2.分数运算");
ch[0]='+';
ch[1]='-';
ch[2]='*';
ch[3]='/';
int t=in.nextInt();
if(t==1)
{
zhengshu();
System.out.println();
}
else if(t==2)
{
fenshu();
System.out.println();
}
else
return;
}
}
截图:
总结:这次代码实现了上次未实现的括号的添加,而且在此次编写过程中了解到了单元测试的重要性,将复杂的问题简单化,由繁到简,只是这次编写还未实现真分数的操作,下次努力。