天天看點

9月25日Java學習記錄

package 課堂測試1;

import java.util.*;

public class 階段二 {

public static int SIZE(int size)//定制數量

{

int q;

q=size;

return q;

}

public static int SecondOperation(String p1)//是否有乘除法

int q = 4;

if(p1.equals("Y"))

q=4;

if(p1.equals("N"))

q=2;

public static String Negative(String p2)//加減有無負數

String q;

q=p2;

public static String Remainder(String p3)//除法有無餘數

q=p3;

public static int Max(int max)//最大數

int m;

m=max;

return m;

public static int Min(int min)//最小數

m=min;

public static String Compare(int q1,int w1,int q2,int w2,int c)//答案

String n=new String();

int q3=1,w3=1;

if(w1==-99999)

w1=1;

if(w2==-99999)

w2=1;

if(c==0)//加法運算

w3=w1*w2;

q3=q1*w2+q2*w2;

if(c==1)//減法運算

q3=q1*w2-q2*w1;

if(c==2)//乘法運算

q3=q1*q2;

if(c==3)//除法運算

int nd=q2;

q2=w2;

w2=nd;

//化簡

int z1=Math.abs(q3),z2=Math.abs(w3);

int chushu=2;

if(z1>z2)

while(z2>=chushu)

if(z1%chushu==0&&z2%chushu==0)

{z1=z1/chushu;z2=z2/chushu;}

else

{chushu++;}

else if(z1<z2)

while(z1>=chushu)

z1=1;z2=1;

};

if(q3<0)

q3=0-z1;

q3=z1;

if(w3<0)

w3=0-z2;

w3=z2;

if(w3==1)

n=q3+"";

else if(w3==-1)

q3=0-q3;

if((q3<0&&w3<0)||(q3>0&&w3<0))

w3=0-w3;

n=q3+"/"+w3+"";

return n;

public static void Display(int SIZE,int SecondOperation,String Negative,String Remainder,int Max,int Min)//算式計算

String Again[][]=new String[SIZE][1];//用數組來存儲表達式

int RightNum=0;//正确的數目

int WrongNum=0;//錯誤的數目

for(int i=0;i<SIZE;i++)//重複次數,用以确定算式多少

int cha=Max-Min;

int c,q1=1,w1=1,q2=1,w2=1;

String s1=new String();

String s2=new String();

String equation=new String();

String symbol=new String();//符号判定

c=(int)(Math.random()*SecondOperation);

if(c==0) symbol="+";

if(c==1) symbol="-";

if(c==2) symbol="*";

if(c==3) symbol="/";

for(int j=0;j<2;j++)//兩次循環,第一次為第一個數字,第二次為第二個數字

int n1 =-99999,n2=-99999;//用于後面是否為分數的判定

int s=(int)(Math.random()*2);//随機數判定整數或分數,0整數,1分數

if(s==0)//整數

if(Negative.equals("N"))

if(c==0||c==1)

while(n1<0)

n1=(int)(Min+Math.random()*(cha+1));//随機産生從min到max之間的數

n1=(int)(Min+Math.random()*(cha+1));

if(Negative.equals("Y"))

if(s==1)//分數

n2=(int)(Min+Math.random()*(cha+1));

while(n1<=0||n2<=0)

while(n1==0||n2==0)//分母不能為零

int z1=Math.abs(n1),z2=Math.abs(n2);//取n1和n2的絕對值,以便化簡輸出

if(z1>z2)//化簡

z1=z1/chushu;z2=z2/chushu;

chushu++;

if(n1<0)//去掉絕對值,傳回原來的數

n1=0-z1;

n1=z1;

if(n2<0)

n2=0-z2;

n2=z2;

if(j==0)//第一個數字

q1=n1;w1=n2;

if(w1==-1&&q1<0)

q1=Math.abs(q1);

if(w1==-1&&q1>0)

q1=0-q1;

if(w1>-99999)//如果存在分母,則為分數

if(Math.abs(w1)!=1)

if(q1<0&&w1<0)

q1=Math.abs(q1);w1=Math.abs(w1);

if(w1<0)

s1="("+q1+"/("+w1+"))"+"";

s1="("+q1+"/"+w1+")"+"";

if(Math.abs(w1)==1)//為整數

if(q1>=0)

s1=q1+"";

if(q1<0)

s1="("+q1+")"+"";

else//否則為整數

if(j==1)//第二個數字

q2=n1;w2=n2;

if(c==3)//當為除法時,除數不能為0,

while(q2==0)

q2=(int)(Min+Math.random()*(cha+1));

}//分子或整數不能為0

if(w2==-1&&q2<0)

q2=Math.abs(q2);

if(w2==-1&&q2>0)

q2=0-q2;

if(w2>-99999)//如果存在分母,則為分數

if(Math.abs(w2)!=1)

if(q2<0&&w2<0)

q2=Math.abs(q2);w2=Math.abs(w2);

if(w2<0)

s2="("+q2+"/("+w2+"))"+"";

s2="("+q2+"/"+w2+")"+"";

if(q2<0)

s2="("+q2+")"+"";

if(q2>0)

s2=q2+"";

if(c==3&&Remainder.equals("N"))//除法無餘數

q1=q2*n1;w1=w2;

if(w1%n1==0)

w1=w1/n1;q1=q1/n1;

{s1="("+q1+"/"+w1+")"+"";}

equation=equation+s1+symbol+s2+"=";//表達式

Again[i][0]=equation;

for(int k=0;k<(i+1);k++)//避免重複

if(Again[i][0].equals(Again[k][0]))

k--;break;

System.out.println(equation);

String Daan=Compare(q1,w1,q2,w2,c);

@SuppressWarnings("resource")

Scanner sc=new Scanner(System.in);

String Answer=sc.next();

if(Answer.equals(Daan))

System.out.println("恭喜你!回答正确");//回答正确

RightNum++;

System.out.println("回答錯誤,其正确答案為:"+Daan);//回答錯誤

WrongNum++;

System.out.println("你一共回答了"+SIZE+"道題,其中正确:"+RightNum+"道,錯誤:"+WrongNum+"道");

public static void main(String[] args) {

// TODO Auto-generated method stub

String p3="Y";

System.out.println("請輸入定制數量:");

int size=sc.nextInt();

System.out.println("是否有乘除法,有(Y),沒有(N)");

String p1=sc.next();

System.out.println("加減有無負數,有(Y),沒有(N)");

String p2=sc.next();

System.out.println("除法有無餘數,有(Y),沒有(N)");

p3=sc.next();

System.out.println("請輸入數值範圍最大值:");

int max=sc.nextInt();

System.out.println("請輸入數值範圍最小值:");

int min=sc.nextInt();

int a=SIZE(size);

int b=SecondOperation(p1) ;

String c=Negative(p2);

String d=Remainder(p3);

int e=Max(max);

int f=Min(min);

Display(a,b,c,d,e,f);//函數的調用,實作

第二階段四則運算