• 软件工程概论作业二


    设计思想:这次代码主要实现括号的添加、除法是否有余、加减出现负数、有无乘除法等要求,在括号上实现一对括号的随意位置添加,实现时随机查找位置(满足至少括住两个运算数),加减负数是运算数可能出现负数的情况,将这几个条件写成函数,在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("=");

      }

    }

    结果截图:

  • 相关阅读:
    大文件断点续传webupload插件
    大文件断点续传插件webupload插件
    大文件上传插件webupload插件
    局域网大附件上传,支持断点续传
    网页大附件上传,支持断点续传
    B/S大附件上传,支持断点续传
    jsp大附件上传,支持断点续传
    php大附件上传,支持断点续传
    windows7 配置 python开发环境
    TMS320F28335项目开发记录6_28335之cmd文件具体解释
  • 原文地址:https://www.cnblogs.com/zhaoziming/p/6532590.html
Copyright © 2020-2023  润新知