题目:像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量。
设计思想:
利用生成伪随机数的方法生成随机数,并随机生成“+、-、*、/”运算符,加一些判断条件输出即可。
源程序代码:
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出现问题未能及时解决导致课堂实验没有按时完成。