题目:像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量。

设计思想:

利用生成伪随机数的方法生成随机数,并随机生成“+、-、*、/”运算符,加一些判断条件输出即可。

源程序代码:

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出现问题未能及时解决导致课堂实验没有按时完成。

posted on 2017-03-05 18:12  曹婷婷  阅读(185)  评论(0编辑  收藏  举报