zoukankan      html  css  js  c++  java
  • 软件工程个人作业01

    源代码:

    package Shi;
    import java.lang.*;
    import java.util.*;
    public class Shi2 {

     public static Boolean chachong1(Zhengshu x,Zhengshu y){
      if(x.a==y.a&&x.b==y.b&&x.c==y.c){
       return true;
      }
      else if(x.b==y.b&&(x.b==1||x.b==3)){
       if(x.a==y.c&&x.c==y.a) return true;
       else return false;
      }
      else{return false;}
     }
     public static Boolean chachong2(Fenshu x,Fenshu y){
      Fenshu xx=new Fenshu();
      Fenshu yy=new Fenshu();
      yy=yue(y);
      xx=yue(x);
      if(x.b==y.b){
       if(x.b==1||x.b==3){
        if(x.a==y.a&&x.c==y.c&&x.d==y.d&&x.e==y.e)return true;
        else if(x.a==y.d&&x.c==y.e&&x.d==y.a&&x.e==y.c)return true;
        else return false;
         }
       else {
        if(x.a==y.a&&x.c==y.c&&x.d==y.d&&x.e==y.e)return true;
        else return false;
        }
      }
      else {return false;}
     }
     public static int zuidayin(int a,int b){
      int c,d=1;
      if(a<b){c=a;}
      else{c=b;}
      for(int i=2;i<=c;i++){
       if(a%i==0&&b%i==0){
        d=i;
       }
      }
      return d;
     }
     public static void yuefen(int a,int b,int c,int d){
      int aa=zuidayin(a,b);
      c=a/aa;
      d=b/aa;
     }
     public static Fenshu yue(Fenshu x){
      Fenshu y=new Fenshu();
      int a=x.a;
      int b=x.b;
      int c=x.c;
      int d=x.d;
      int e=x.e;
      int a1=0,c1=0,d1=0,e1=0;
      yuefen(a,d,a1,d1);
      yuefen(c,e,c1,e1);
      y.fu(a1,b,c1,d1,e1);
      return y;
     }
     public static void main(String[] args) {
      int shu=0,q=0;
      Scanner input=new Scanner(System.in);
      System.out.println("输入1、整数2、分数");
      q=Integer.parseInt(input.next());
      System.out.println("输入数量:");
      shu=Integer.parseInt(input.next());
      if(q==1){
      Zhengshu cf[]=new Zhengshu [shu];
      for(int i=0;i<shu;i++){
       cf[i]=new Zhengshu();
       boolean aa=true;
       while(aa){
        cf[i].zheng();
        aa=false;
        for(int j=0;j<i;j++){
         if(chachong1(cf[i],cf[j])){
          aa=true;
          break;
         }
        }
       }
      }
      for(int i=0;i<shu;i++){
       cf[i].show();
      }
      }
      else if(q==2){
       Fenshu cf[]=new Fenshu [shu];
       for(int i=0;i<shu;i++){
        cf[i]=new Fenshu();
        boolean aa=true;
        while(aa){
         cf[i].fen();
         aa=false;
         for(int j=0;j<i;j++){
          if(chachong2(cf[i],cf[j])){
           aa=true;
           break;
          }
         }
        }
       }
       for(int i=0;i<shu;i++){
        cf[i].show();
       }
      }
      else System.out.println("输入有误");
      
    }
    }
    class Zhengshu{
     int a;
     int b;
     int c;
     public void zheng(){
      a=(int)(Math.random()*100);
      b=(int)(Math.random()*4+1);
      c=(int)(Math.random()*100);
      if(b==4&&c==0){
       zheng();
      }
     }
     public void show(){
      String q;
      if(b==1)q="+";
      else if(b==2)q="-";
      else if(b==3)q="*";
      else q="/";
      System.out.println(a+q+c+"=");
     }
    }
    class Fenshu{
     int a,b,c,d,e;
     public void fu(int a1,int a2,int a3,int a4,int a5){
      a=a1;
      b=a2;
      c=a3;
      d=a4;
      d=a5;
     }
     public void fen(){
      a=(int)(Math.random()*100);
      b=(int)(Math.random()*4+1);
      c=(int)(Math.random()*100);
      d=(int)(Math.random()*100);
      e=(int)(Math.random()*100);
      if(b==4&&c==0||d==0||e==0){
       fen();
      }
     }
     
     public void show(){
      String q;
      if(b==1)q="+";
      else if(b==2)q="-";
      else if(b==3)q="*";
      else q="/";
      System.out.println("("+a+"/"+d+")"+q+"("+c+"/"+e+")=");
     }
    }

    截图:

    查重的方法是每生成一个新的对象都要和前面的比较,有重复的则重新随机赋值,直至没重复才进行下一个

    分数的类型要注意约分的问题,通过函数找最大公因数,并进行约分,查重也是类似,要注意的是当运算符号为+或者*是,特殊判断,例如,1+3和3+1是一样的

    课上主要是查重的地方的设计,要设计成只要重复就应重新随机赋值,这个地方的逻辑关系比较混乱,后来顺清顺序,就实现了查重的功能

  • 相关阅读:
    Android UI 如何让TextView中的文字居中显示
    Android日志服务例子,将日志保存在文件中并每天产生一个日志文件
    Android 获取屏幕尺寸与密度
    Android 学习Tabhost
    Android与服务器端数据交互(http协议整合struts2+android)
    Android的计量单位px,in,mm,pt,dp,dip,sp
    Java struts2中StrutsPrepareAndExecuteFilter 异常
    Http Module 介绍
    Http 请求处理流程
    HttpRuntime2
  • 原文地址:https://www.cnblogs.com/zhaoziming/p/6492198.html
Copyright © 2011-2022 走看看