個人作業軟體工程02

來源:互聯網
上載者:User

標籤:

設計思想:    題目避免重複  將每次產生的三個隨機數分別存入三個數組,產生的新隨機數與已經產生的每個進行比較,若三個都相同則重新產生前兩個,直到不相同。

              控制是否有乘除  通過控制產生代表運算子的隨機數來控制是否有乘除號的產生,隨機數為0到1,則無乘除,隨機數為0到3則有乘除。

              控制數值範圍    通過Math.random()函數來控制隨機數產生的範圍。

              控制加減有無負數   只有減法有負數,所以只要在減號運算子裡添加if語句,無負數,則a必須大於b,否則重建,計數減一,有負數,則a必須小於b;

              控制除法有無餘數   只要在除號運算子裡添加if語句,有餘數,則a不能整除b,否則跳出迴圈,計數減一;無餘數,則a能整除b,否則跳出迴圈,計數減一。

              控制括弧未做出來。

原始碼:

     

import java.util.Scanner;

public class A{

   public static void main(String []args){

    int a,b,c,n=0,m=0,q,w; String str=null;

    Scanner reader=new Scanner(System.in);

    System.out.print("整數運算請選 1,真分數運算請選  2:");

    n=reader.nextInt();

    System.out.print("請選擇題目數量:");

    m=reader.nextInt();

    System.out.print("請選擇範圍:");

    q=reader.nextInt();

    w=reader.nextInt();

     //整數

    if(n==1)

   {   int e,f,g;

   System.out.print("請選擇是否有乘除: 1 有     2 無");

   e=reader.nextInt();

   System.out.print("請選擇加減有無負數: 1 有     2 無");

   f=reader.nextInt();

   System.out.print("請選擇乘除有無餘數: 1 有     2 無");

   g=reader.nextInt();

    for(int i=1;i<=m;i++)

    {    int z[]=new int[m+1];int x[]=new int[m+1];int v[]=new int[m+1];

       a=(int)(Math.random()*(w-q+1)+q);

       b=(int)(Math.random()*(w-q+1)+q);

        if(e==1)              //控制運算有乘除  

            {c=(int)(Math.random()*4+0);}

        else                 //控制運算無乘除

            { c=(int)(Math.random()*2+0);}

       z[i]=a;x[i]=b;v[i]=c;    //將隨機產生的數存入三個數組

       for(int j=1;j<=i-1;j++)   //通過判斷隨機數的異同控制是否重複

       {

         if(z[i]==z[j]&&x[i]==x[j]&&v[i]==v[j])

            {  do        //重複則重建ab

               {

            a=(int)(Math.random()*(w-q+1)+q);

               b=(int)(Math.random()*(w-q+1)+q);

               }while(z[i]==z[j]&&x[i]==x[j]&&v[i]==v[j]);

            }

       }

        switch(c)

            { case 0:

                  System.out.print(a+"+"+b+"="+"\t");

                  break;

              case 1:

                  if(f==1)    //加減有餘數

                    {System.out.print(a+"-"+b+"="+"\t");

                     break;}

                  else        //加減無餘數

                    {if(a<b) 

                        {i--;break;}

                     else

                        {System.out.print(a+"-"+b+"="+"\t");}

                    }

               case 2:

                  System.out.print(a+"*"+b+"="+"\t");

                  break;

              case 3:

                  if(b==0)  //除數為0 則跳出迴圈i減一

                      {i--;break;}

                  else if(b!=0&&g==2) //乘除無餘數

                      { 

                        if(a%b==0)

                         {System.out.print(a+"/"+b+"="+"\t");}

                        else

                         {i--;break;}

                      }

                  else if(b!=0&&g==1)    //乘除有餘數

                      {  if(a%b==0)

                           {i--;break;}

                         else

                          {System.out.print(a+"/"+b+"="+"\t"); break;}

                        }

            }

        if(i%5==0) //5個算式一行輸出

         {System.out.print("\n");}

   }

}  

 }

}

 

結果:

 

個人作業軟體工程02

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.