自动生成四则运算(java)
一、需求分析
针对教师的需求对学生的出题(四则运算)数量、范围、类型等进行选择出题,并可以生成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 }
四、运行结果截图