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