软件工程概论作业二

设计思想:这次代码主要实现括号的添加、除法是否有余、加减出现负数、有无乘除法等要求,在括号上实现一对括号的随意位置添加,实现时随机查找位置(满足至少括住两个运算数),加减负数是运算数可能出现负数的情况,将这几个条件写成函数,在if else判断语句中分别按照情况调用对应的函数即可,最后输出的时候,因为情况比较多,将show函数带上参数来反应是否有负数,是否有括号的问题,在分别写出对应的输出语句,最后在main函数中调用即可

程序源代码:

package Shi;

 

import java.util.*;

 

public class Shi {

 

 public static void main(String[] args) {

  Scanner input=new Scanner(System.in);

  System.out.println("输入范围");

  int fanwei=input.nextInt();

  System.out.println("输入个数");

  int ee=input.nextInt();

  System.out.println("输入式子运算数个数");

  int nn=input.nextInt();

  System.out.println("是否有乘除法:1、有2、没有");

  int e1=input.nextInt();

  System.out.println("是否有括号:1、有2、没有");

  int e2=input.nextInt();

  System.out.println("是否有加减负数:1、有2、没有");

  int e3=input.nextInt();

  Zhengshu aa[]=new Zhengshu[ee];

  if(e1==2){

   for(int i=0;i<ee;i++){

    aa[i]=new Zhengshu();

    aa[i].setn(nn);

    aa[i].setfan(fanwei);

    aa[i].wuchengchu();

    aa[i].show(e3,e2);

  }

 }

  else{

   for(int i=0;i<ee;i++){

    aa[i]=new Zhengshu();

    aa[i].setn(nn);

    aa[i].setfan(fanwei);

    aa[i].youchengchu(2);

    aa[i].show(e3,e2);

   }

 }

  input.close();

 }

}

class Zhengshu{

  int f[];

  int a[];

  int n;

  int fan;

  public Zhengshu(){}

  public void setfan(int aa){fan=aa;}

  public void setn(int aa){n=aa;a=new int[n];f=new int[n-1];}

  public void wuchengchu(){

  for(int i=0;i<n;i++){

    a[i]=(int)(Math.random()*fan);

  }

  for(int i=0;i<n-1;i++){

    f[i]=(int)(Math.random()*2+1);

  }

 }

 public void youchengchu(int a1){

  for(int i=0;i<n;i++){

    a[i]=(int)(Math.random()*fan);

  }

  for(int i=0;i<n-1;i++){

    f[i]=(int)(Math.random()*4+1);

  }

  if(a1==2){

  for(int i=0;i<n-1;i++){

  while(a[i+1]==0){

    a[i+1]=(int)(Math.random()*fan);

  }

  if(f[i]==4&&(a[i]%a[i+1])!=0)

    youchengchu(a1);}

  }

 }

 public void suiji(int n1,int n2){

  n1=(int)(Math.random()*(n-1));

  n2=(int)(Math.random()*(n-1)+2); 

  while(n2<n1+2){

    n2=(int)(Math.random()*(n-1)+2);

  }

 }

 public int fuhao(){

  int w1=(int)(Math.random()*(n-1));

  while((w1==0&&(f[0]==3||f[0]==4))||

  (w1==n-2&&(f[n-2]==3||f[n-2]==4))

  // ||

  // ((w1!=0||w1!=n-2)&&

  // (!((f[w1-1]==1||f[w1-1]==2))&&(f[w1]==1||f[w1]==2)))

  )

    {w1=(int)(Math.random()*(n-1));}

    return w1;

  }

 public void daifuhao(){

  int n=fuhao();

  a[n]=-a[n];

 }

 public String zhuan(int a){

  if(a==1){return "+";}

  else if(a==2){return "-";}

  else if(a==3){return "*";}

  else {return "/";}

 }

 public void show(int a2,int a3){

  if(a2==1&&a3==1){

  daifuhao();

  int m1=0,m2=0;

  this.suiji(m1,m2);

  m1=(int)(Math.random()*(n-1));

  m2=(int)(Math.random()*(n-1)+2);

  while(m2<m1+2){

    m2=(int)(Math.random()*(n-1)+2);

  }

  for(int i=0;i<m1;i++){

    System.out.print(a[i]+zhuan(f[i]));

  }

   System.out.print("(");

  for(int i=m1;i<m2-1;i++){

    System.out.print(a[i]+zhuan(f[i]));

  }

  System.out.print(a[m2-1]);

  System.out.print(")");

  if(m2-1<n-1)System.out.print(zhuan(f[m2-1]));

  for(int i=m2;i<n-1;i++){

    System.out.print(a[i]+zhuan(f[i]));

  }

  if(m2!=n)System.out.print(a[n-1]);

  }

  else if(a2==1&&a3==2){

    daifuhao();

  for(int i=0;i<n-1;i++){

    System.out.print(a[i]+zhuan(f[i]));

  }

  System.out.print(a[n-1]);

  }

  else if(a2==2&&a3==1){

  int m1=0,m2=0;

  this.suiji(m1,m2);

  m1=(int)(Math.random()*(n-1));

  m2=(int)(Math.random()*(n-1)+2);

  while(m2<m1+2){

    m2=(int)(Math.random()*(n-1)+2);

  }

  for(int i=0;i<m1;i++){

    System.out.print(a[i]+zhuan(f[i]));

  }

  System.out.print("(");

  for(int i=m1;i<m2-1;i++){

    System.out.print(a[i]+zhuan(f[i]));

  }

  System.out.print(a[m2-1]);

  System.out.print(")");

  if(m2-1<n-1)System.out.print(zhuan(f[m2-1]));

  for(int i=m2;i<n-1;i++){

    System.out.print(a[i]+zhuan(f[i]));

  }

  if(m2!=n)System.out.print(a[n-1]);

  }

  else{

  for(int i=0;i<n-1;i++){

    System.out.print(a[i]+zhuan(f[i]));

  }

  System.out.print(a[n-1]);

  }

  System.out.println("=");

  }

}

结果截图:

posted @ 2017-03-10 18:32  Z鳴  阅读(156)  评论(0编辑  收藏  举报