自动生成四则运算(java)

血红的双手。 提交于 2019-12-05 09:15:48

一、需求分析

    针对教师的需求对学生的出题(四则运算)数量、范围、类型等进行选择出题,并可以生成txt外部文件,方便教师进行打印。

二、功能设计

•基本功能

    1、自动生成10道100以内的2个操作数的四则运算算式(+ - *  /);

    2、生成的运算题存储到外部文件result.txt中;

    3、剔除重复算式;

    4、题目数量可定制;

    5、相关参数可控制。

•拓展功能

    1、如果随机生成的数为负数,将为该数加上括号;

1     a=(int)(Math.random()*shu*(Math.random()>0.5?1:-1));
2          if(a<0){
3              t = "(" + a + ")" ;
4          }
5          else{
6              t = a+"";
7          }

    2、如果输入的不是数字将进行重新输入;

 1      try{
 2                 fu = reader.nextInt();
 3             }catch(Exception e){
 4                 System.out.println("请输入正确的值!");continue;
 5             }
 6             
 7             System.out.println("前操作数是否包含负数(否1,是2):");
 8             try{
 9                 fs = reader.nextInt();//决定是否包含负数
10             }catch(Exception e){
11                 System.out.println("请输入正确的值!");continue;
12             }

三、设计实现(部分代码)

  fuHao.java

1     char[] operator = new char[]{'+','-','*','/'};
2 
3         Random random=new Random();
4         if(fu == 1){
5             return operator[random.nextInt(4)];
6         }
7         else{
8             return operator[random.nextInt(2)];
9         }

  Fushu.java

 1   if(fs == 1){  //输入1,不生成负数
 2         a=(int) (Math.random()*shu); //生成随机数放到a,b
 3         t = a+"";
 4     }
 5     else if(fs == 2) { //输入2,生成负数
 6         
 7         a=(int)(Math.random()*shu*(Math.random()>0.5?1:-1));
 8          if(a<0){
 9              t = "(" + a + ")" ;
10          }
11          else{
12              t = a+"";
13          }
14         }
15     return t;
16 }

  suan_.java

1     PrintStream pp=new PrintStream("D:\\gg\\result.txt"); 
2         
3         fuHao fuhao = new fuHao();
4         Fushu fushu = new Fushu();
1     for(int i = 0; i < ti ; i++){
2             
3             String a = fushu.Fushu(fs, shu);
4             char b = fuhao.getFu(fu);
5             String c = fushu.Fushu2(fs2, shu);
6             System.setOut(pp);
7             System.out.println(a+""+b+""+c+"=");
8         }

四、运行结果截图

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!