四则运算作业02
import javax.swing.JOptionPane;
import java.util.Random;
import java.util.Scanner;
public class Arithmetic {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int c;//选择
int c1,c4,c5,c6,c7,c8;
int a,b,d1;//二位数运算
int c2,c3;
int e=0;//运算符
String s="";
double d=0.0;//2位数的结果,用户
double f=0.0,g=0.0;//2位数结果,系统,多位数结果,系统
int flag=0;//判断是否输出
int m=0;//题数
Random rand = new Random();
for(int i=0;i<100000000;i++)
{
System.out.println("请输入选择:1、2位数运算 2、多位数运算 3、退出");
Scanner input=new Scanner(System.in) ;
c=input.nextInt();
if(c==1)
{
System.out.println("请输入选择:1 、有乘除法 2、无乘除法");
Scanner input1=new Scanner(System.in) ;
c1=input1.nextInt();
System.out.println("请输入数值范围的前域 ");
Scanner input2=new Scanner(System.in) ;
c2=input2.nextInt();
System.out.println("请输入数值范围的后域");
Scanner input3=new Scanner(System.in) ;
c3=input3.nextInt();
System.out.println("请输入选择:1、加减有负数 2、加减无负数");
Scanner input4=new Scanner(System.in) ;
c4=input4.nextInt();
System.out.println("请输入选择:1、除法有余数 2、除法无余数");
Scanner input5=new Scanner(System.in) ;
c5=input5.nextInt();
System.out.println("请输入出题数量");
Scanner input6=new Scanner(System.in) ;
c6=input6.nextInt();
System.out.println("请输入在一行中输出几列运算式?");
Scanner input7=new Scanner(System.in) ;
c7=input7.nextInt();
String []Repeat=new String[2*c6];
for(int w=0;w<c6;w++)
{
int w1;
w1=w;
//有无乘除法
if(c1==1)
{
e=rand.nextInt(4);
}
if(c1==2)
{
e=rand.nextInt(2);
}
//数值范围
a=rand.nextInt(c3)%(c3-c2+1)+c2;
b=rand.nextInt(c3)%(c3-c2+1)+c2;
//加减有无负数
if(c4==1)//有负数
{
flag=0;
}
if(c4==2)
{
if(e==0)
{
if((a+b)>=0)
{
flag=0;
}
else
{
flag=1;
}
}
if(e==1)
{
if((a-b)>=0)
{
flag=0;
}
else
{
flag=1;
}
}
}
//符号
if(e==0)
{
s="+";
}
if(e==1)
{
s="-";
}
if(e==2)
{
s="*";
}
if(e==3)
{
if(b!=0)
{
if(c5==1)
{
s="/";
}
if(c5==2)
{
if(a%b==0)
{
s="/";
}
if(a%b!=0)
{
flag=1;
}
}
}
}
//判断重复
if(a<0.0&&b>=0.0)
{
Repeat[w]="("+a+")"+s+b;
}
if(a>=0.0&&b<0.0)
{
Repeat[w]=a+s+"("+b+")";
}
if(a<0.0&&b<0.0)
{
Repeat[w]="("+a+")"+s+"("+b+")";
}
if(a>=0.0&&b>=0.0)
{
Repeat[w]=a+s+b;
}
for(int w2=0;w2<w1;w2++)
{
if(Repeat[w].equals(Repeat[w2]))
{
flag =1;
}
else
{flag =0;}
}
//打印
if(flag==0)
{
if((w+1)%c7==0)
{
System.out.println(Repeat[w]+"= ");
}
else
{
System.out.print(Repeat[w]+"= ");
}
}
if(flag==1)
{
c6++;
}
}
}
if(c==2)
{
int y1,y2,y3,y;
System.out.println("请输入选择:1 、有乘除法 2、无乘除法");
Scanner input1=new Scanner(System.in) ;
c1=input1.nextInt();
System.out.println("请输入数值范围的前域 ");
Scanner input2=new Scanner(System.in) ;
c2=input2.nextInt();
System.out.println("请输入数值范围的后域");
Scanner input3=new Scanner(System.in) ;
c3=input3.nextInt();
System.out.println("请输入选择:1、加减有负数 2、加减无负数");
Scanner input4=new Scanner(System.in) ;
c4=input4.nextInt();
System.out.println("请输入选择:1、除法有余数 2、除法无余数");
Scanner input5=new Scanner(System.in) ;
c5=input5.nextInt();
System.out.println("请输入出题数量");
Scanner input6=new Scanner(System.in) ;
c6=input6.nextInt();
System.out.println("请输入在一行中输出几列运算式?");
Scanner input7=new Scanner(System.in) ;
c7=input7.nextInt();
System.out.println("请输入选择: 1、有括号 2、无括号");
Scanner input8=new Scanner(System.in) ;
c8=input8.nextInt();
//定义数组
String []Repeat=new String[2*c6];
/*设置出题多少的循环*/
for(int w=0;w<c6;w++)
{
int w1;
w1=w;
// w4++;//用于换行的变量
//有无乘除法
if(c1==1)
{
e=rand.nextInt(4);
}
else if(c1==2)
{
e=rand.nextInt(2);
}
//数值范围
a=rand.nextInt(c3)%(c3-c2+1)+c2;
b=rand.nextInt(c3)%(c3-c2+1)+c2;
//加减有无负数
if(c4==1)//有负数
{
flag=0;
}
if(c4==2)//无负数
{
y1=a+b;
y2=a-b;
if(e==0)
{
if(y1<0)
{
flag=1;
}
}
else if(e==1)
{
if(y2<0)
{
flag=1;
}
}
}
//除法有无余数
if(c5==1)
{
flag=0;
}
if(c5==2)
{
y3=a%b;
if(y3!=0)
{
flag=1;
}
}
//符号
if(e==0)
{
s="+";
}
if(e==1)
{
s="-";
}
if(e==2)
{
s="*";
}
if(e==3)
{
if(d==0)
{flag=1;}
if(d!=0)
{
s="/";
}
}
Repeat[w]=a+s+b;
//有无括号
y=rand.nextInt(8);
int p;//随机出数,选择在原来的式子之前加数还是之后
if(c8==1)
{
for(int r=0;r<(y-2);r++)
{
c=rand.nextInt(c3)%(c3-c2+1)+c2;
d=rand.nextInt(c3)%(c3-c2+1)+c2;
if(c1==1)
{
e=rand.nextInt(4);
}
else if(c1==2)
{
e=rand.nextInt(2);
}
//符号
if(e==0)
{
s="+";
}
if(e==1)
{
s="-";
}
if(e==2)
{
s="*";
}
if(e==3)
{
if(d==0)
{flag=1;}
if(d!=0)
{
s="/";
}
}
p=rand.nextInt(2);
if(p==0)
{
Repeat[w]=c+s+"("+Repeat[w]+")";
}
if(p==1)
{
Repeat[w]="("+Repeat[w]+")"+s+d;
}
}
}
if(c8==2)
{
for(int r=0;r<(y-2);r++)
{
c=rand.nextInt(c3)%(c3-c2+1)+c2;
d=rand.nextInt(c3)%(c3-c3+1)+c3;
if(c1==1)
{
e=rand.nextInt(4);
}
else if(c1==2)
{
e=rand.nextInt(2);
}
//符号
if(e==0)
{
s="+";
}
if(e==1)
{
s="-";
}
if(e==2)
{
s="*";
}
if(e==3)
{
if(d==0)
{flag=1;}
if(d!=0)
{
s="/";
}
}
p=rand.nextInt(1);
if(p==0)
{
Repeat[w]=c+s+Repeat[w];
}
if(p==1)
{
Repeat[w]=Repeat[w]+s+d;
}
}
}
//判断重复
for(int w2=0;w2<w1;w2++)
{
if(Repeat[w].equals(Repeat[w2]))
{
flag =1;
}
else
{flag =0;}
}
if(flag==0)
{
if((w+1)%c7==0)
{
System.out.println(Repeat[w]+"=");
}
else
{
System.out.print(Repeat[w]+"= ");
}
}
else if(flag==1)
{c6++;}
}//for
}
if(c==3)
{break;}
}
}
}
截图: