课堂测试第一步:完成一个可以随机出30个100以内加减乘除运算的程序。

import java.util.*;
public class sizeyunsuan {
public static void main(String[] args) {
for(int i=0;i<30;i++) {
int x=(int)(Math.random()*100)+1;
int y=(int)(Math.random()*100)+1;
int c=(int)(Math.random()*4);
int e;
switch(c){
case 0:System.out.println(x+"+"+y+"=");
e=x+y;
break;
case 1:System.out.println(x+"-"+y+"=");
e=x-y;
break;
case 2:System.out.println(x+"*"+y+"=");
e=x*y;
break;
case 3:System.out.println(x+"/"+y+"=");
e=x/y;
break;}
}
}
}

 

 

第二阶段:(1)题目避免重复; (2)可定制(数量/打印方式);(因为random函数很难产生相同的随机数,即没考虑题目的重复性)

import java.util.*;
public class sizeyunsuan {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("输入想要打印题目的数量:");
int n=input.nextInt();
for(int i=0;i<n;i++) {
int x=(int)(Math.random()*100)+1;
int y=(int)(Math.random()*100)+1;//产生随机数范围[1,100]不用考虑分母为0
int c=(int)(Math.random()*4);
switch(c){
case 0:System.out.println(x+"+"+y+"=");
break;
case 1:System.out.println(x+"-"+y+"=");
break;
case 2:System.out.println(x+"*"+y+"=");
break;
case 3:System.out.println(x+"/"+y+"=");
break;}
}
}
}

 第三阶段:

1、可定制(数量/打印方式):输入大的数量值,测试一下系统是否崩溃,反向查找系统是否优化的余地; 2、定制操作数的个数:3、定制是否有乘除法 4、定制是否有括号(随机加入) 5 、定制数值范围(确定操作数的取值范围

暂时没有思路,问学长和看了一些网上的文章有两种解决方案一、堆栈      二、二叉树因对这两种方法学习不深暂时放弃该题。

posted on 2021-09-19 20:59  辰逸1  阅读(30)  评论(0编辑  收藏  举报