软件工程个人作业02
四则运算作业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
;}
}
}
}
截图: