题目:像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量。
设计思想:
利用生成伪随机数的方法生成随机数,并随机生成“+、-、*、/”运算符,加一些判断条件输出即可。
源程序代码:
import java.util.*;
public class yunsuan {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a1=0;
int a2=0;
int result1,result2;
Scanner in=new Scanner(System.in);
int s;
while(true)
{
System.out.println("请输入要进行的运算:");
System.out.println("1.整数四则运算:");
System.out.println("2.真分数四则运算:");
System.out.println("3.退出:");
s=in.nextInt();
if(s==1)
{
System.out.println("请输入要生成题目的个数:");
int n=in.nextInt();
for(int i=0;i<n;i++)
{
a1=ranNum(a1);
System.out.print(a1);
char ch=ranChar();
System.out.print(ch);
a2=ranNum(a2);
System.out.println(a2+"=");
System.out.print("请输入答案:");
result1=in.nextInt();
if(ch=='+'&&(result1==a1+a2))
{
System.out.println("计算正确!");
}
else if(ch=='-'&&(result1==a1-a2))
{
System.out.println("计算正确!");
}
else if(ch=='*'&&(result1==a1*a2))
{
System.out.println("计算正确!");
}
else if(ch=='/'&&(result1==a1/a2))
{
System.out.println("计算正确!");
}
else
{
System.out.println("计算错误!");
}
}
continue;
}
if(s==2)
{
System.out.println("请输入要生成题目的个数:");
int m=in.nextInt();
for(int j=0;j<m;j++)
{
TrueNum();
}
continue;
}
if(s==3)
{
break;
}
else
{
System.out.println("输入错误,请重新输入:");
s=in.nextInt();
}
}
in.close();
}
public static int ranNum(int a)
{
a=(int)(Math.random()*100);
return a;
}
public static char ranChar()
{
char[] b={'+','-','*','/'};
int c=(int)(Math.random()*4);
return b[c];
}
public static void TrueNum()
{
int b1,b2,b3,b4;
b1=(int)(Math.random()*100);
b2=(int)(Math.random()*100);
b3=(int)(Math.random()*100);
b4=(int)(Math.random()*100);
yuefen(b1,b2);
yuefen(b3,b4);
if(b1<b2 && b3<b4)
{
System.out.print(b1+"/"+b2);
System.out.print(ranChar());
System.out.println(b3+"/"+b4+"=");
}
else
{
TrueNum();
}
}
public static void yuefen(int a1,int a2)
{
int min=Math.abs(a1)<Math.abs(a2)?Math.abs(a1):Math.abs(a2);
int yueshu=1;
for(int i=min;i>=1;i++)
{
if(a1/i==0 && a2/i==0)
{
yueshu=i;
break;
}
}
a1/=yueshu;
a2/=yueshu;
}
}
运行结果截图:
上课未按时完成的原因:由于eclipse出现问题未能及时解决导致课堂实验没有按时完成。