题目要求:
像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 “软件”。
要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、
题目避免重复、可定制出题的数量。
(有能力者改编成网页版)
程序设计思想:
首先我建了一个包含主函数的类,用来执行功能,比如说,根据用户需求进行出题、
控制出的题目不重复、控制分数题里出的是真分数等。
然后我又写了另一个类,在这个类里,只有各种各样执行功能的方法,比如说,求两个数的最大公约数、
求两个数的最小公倍数、对一个分数进行约分、对两个分数进行运算等。
源程序:
(下面是包含主函数的类)
package math_package;import java.util.Random;import java.util.Scanner;import mathMethod.*;public class Math { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int a;//用来产生存储一个随机数 int b;//用来产生一个1~4以内的随机数,分别代表加减乘除 int c;//用来产生第二个参与运算的数 int d;//用来随机出是产生整数式还是真分数式 int e;//第一个数的分母 int f;//第二个数的分母 Random ran=new Random(); System.out.println("请输入你要定制的数量:"); Scanner scan=new Scanner(System.in); int number=scan.nextInt(); System.out.println("开始答题"); //这个数组是用来存放已经出好的题 String nihao[]=new String [number]; int number1=0;//这个是用来对已经出的题进行计数 String result=""; //用来接受分数答案 int result1; //用来整数接收 int i,j; for(i=0;i
(下面是只包含方法的类)
package mathMethod;//采用分而治之的思想public class Method { public static int maxCommon(int a ,int b) { //循环法求两个数的最大公约数 //保证第一个参数大于第二个参数 if(a
程序结果截图:
未能及时完成的原因:
感觉自己写程序的方法不对,以至于到了最后因为一些小问题而耽误很长时间。
如果我能采用分而治之的思想,把一个大问题分解为一个一个的小问题,然后依次解决这些小问题。
那么,我感觉效率可能会提高些。