四则运算出题java_java-四则运算,自动出题(3)

packagesum2;importjava.util.Scanner;//由于先前的实验固定了数据的个数,然而根据第二次试验的要求需要重新进行修改//所以决定重新建立一个新的项目//时间:2017 3 8//随风的叶子//加减乘除程序代码

public classsum2 {//记录运算符个数

static intm;//建立动态数组:操作数

static int[][]n1;//设置成运算式:数据源

static int[][]n2;//结果设置成int型的

static int[]S;//记录用算过程的数组

static int[]s;//运算符的选择

static String[]r1={"+","-","*","÷"};//运算符的操作:操作符

staticString[]R;//运算符的存储:数据源

staticString[]R1;//括号的存储

static char[]r2={'(',')'};static char[]r3;public static voidmain(String[] args) {//随机生成数组

System.out.println("功能1:请输入定制数量:");

Scanner scan1=newScanner(System.in);int sum2=scan1.nextInt();

System.out.println("功能2:请输入操作数个数:");

Scanner scan2=newScanner(System.in);int sum1=scan2.nextInt();

System.out.println("功能3:是否需要括号:0 是 1否");

Scanner scan3=newScanner(System.in);int sum3=scan3.nextInt();

n1=new int[sum2][sum1];

n2=new int[sum2][sum1];

S=new int[sum2];

s=new int[sum1];

R=newString[sum1];

R1=newString[sum1];

r3=new char[sum1*2];for(int i=0;i

{

r3[i]=' ';

}for(int i=0;i

{for(int j=0;j

{

n1[i][j]=(int)(1+Math.random()*100);

n2[i][j]=n1[i][j];

}

}for(int i=0;i

{int number=0;int num2=0;int num3=0;if(sum3==0)

{

num2=2 + 2*(int)(Math.random()*(sum1*2-6)/2);//2 4 6

num3=num2 +3 + 2*(int)(Math.random()*(sum1*2-2-num2)/2);//5 7 9

r3[num2]='(';

r3[num3]=')';

}int jishu=0;//设置运算符

for(int j1=0;j1

{int num=(int)(0 + Math.random()*4);//运算符的设置

R[j1]=newString(r1[num]);

R1[j1]=newString(r1[num]);

}//括号内的算法

num2=num2/2;//左括号的位置

num3=num3/2;//右括号的位置

m=sum1-1;//num2=num3时 括号消掉

while(num2

{//括号的乘除法

for(int k=num2;k

{if(R[k].equals("*"))

{

number=n1[i][k]*n1[i][k+1];

n1[i][k]=number;//System.out.print(number+" ");

for(int j1=k;j1

{

R[j1]=R[j1+1];

n1[i][j1+1]=n1[i][j1+2];

}

R[m-1]="+";

m--;

k--;

num3--;

}//乘法截至

else if(R[k].equals("÷"))

{

number=n1[i][k]/n1[i][k+1];

n1[i][k]=number;//处理括号内除数为0的情况

if(number==0)

{if(R[k-1].equals("÷"))

{

n1[i][k+1]=n2[i][k];

n2[i][k+1]=n1[i][k+1];

number=n1[i][k]/n1[i][k+1];

n1[i][k]=number;

}

}//System.out.print(number+" ");

for(int j1=k;j1

{

R[j1]=R[j1+1];

n1[i][j1+1]=n1[i][j1+2];

}

R[m-1]="+";

m--;

k--;

num3--;

}//除法截至

}//乘除循环截至//括号的加减法

for(int k=num2;k

{if(R[k].equals("+"))

{

number=n1[i][k]+n1[i][k+1];

n1[i][k]=number;//System.out.print(number+" ");

for(int j1=k;j1

{

R[j1]=R[j1+1];

n1[i][j1+1]=n1[i][j1+2];

}

R[m-1]="+";

m--;

k--;

num3--;

}//加法截至

else if(R[k].equals("-"))

{

number=n1[i][k]-n1[i][k+1];

n1[i][k]=number;//处理括号内减法为0的情况

if(number==0)

{if(R[k-1].equals("÷"))

{

n1[i][k+1]=n2[i][k]+(int)(1+Math.random()*5);

n2[i][k+1]=n1[i][k+1];

number=n1[i][k]/n1[i][k+1];

n1[i][k]=number;

}

}//System.out.print(number+" ");

for(int j1=k;j1

{

R[j1]=R[j1+1];

n1[i][j1+1]=n1[i][j1+2];

}

R[m-1]="+";

m--;

k--;

num3--;

}//减法截止//System.out.print(number+" ");

}//加减循环止

}//括号内算法循环止//乘除法的运算

for(int k=0;k

{//如果加入乘法//进行插入

if(R[k].equals("*"))

{

number=n1[i][k]*n1[i][k+1];

n1[i][k]=number;//System.out.print(number+" ");

for(int j1=k;j1

{

R[j1]=R[j1+1];

n1[i][j1+1]=n1[i][j1+2];

}

R[m-1]="+";

m--;

k--;

}else if(R[k].equals("÷"))

{

number=n1[i][k]/n1[i][k+1];

n1[i][k]=number;//System.out.print(number+" ");

for(int j1=k;j1

{

R[j1]=R[j1+1];

n1[i][j1+1]=n1[i][j1+2];

}

R[m-1]="+";

m--;

k--;

}

}//加减法的运算

for(int k=0;k

{if(R[k].equals("+"))

{

number=n1[i][k]+n1[i][k+1];

n1[i][k+1]=number;

}else if(R[k].equals("-"))

{

number=n1[i][k]-n1[i][k+1];

n1[i][k+1]=number;

}//System.out.print(number+" ");

}//运算式的输出

for(int j=0;j

{

System.out.print(r3[jishu]);

jishu++;

System.out.print(n2[i][j]);

System.out.print(r3[jishu]);

jishu++;if(j

{

System.out.print(R1[j]);

}elseSystem.out.print("=");

}//输出结果

System.out.print(number);

System.out.println();//清空括号

for(int i1=0;i1

{

r3[i1]=' ';

}

}//一行运算截至

}//main

}//class

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值