2019-9-16 java上课知识整理总结
一,课堂测试
1,题目:课堂测试:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件”
要求:(1)题目避免重复;
(2)可定制(数量/打印方式);
2,设计思路
1),产生两个1-100的随机数作为题目参与运算的数据,产生一个1-100的随机数并对4求余作为运算符(0:‘+’,1:‘-’,2:‘*’,3:‘/’)。
2),用for循环控制出题个数n,用循环变量i对一行出题个数m求余,余数为0换行控制一行中题目的个数。
3),在减法中用while(s1<s3)循环(s1,s3是参与运算的数)循环体是新生成一个随机数赋给s3,保证结果非负。
4),在乘法中用while(s1*s3>100)循环(s1,s3是参与运算的数)循环体是新生成一个随机数赋给s3,保证结果小于100。
5),在除法中用while(s1/s3!=0)循环(s1,s3是参与运算的数)循环体是新生成一个随机数赋给s3,保证结果为正数。
6),用数组存储之前所有输入的操作数和运算符用for循环判断是否重复若重复新生成一个随机数赋给s3,保证出题不重复。
3,代码
import java.util.Random;
import java.util.Scanner;
public class suanshu {
static Scanner sc = null;
static String a3=new String(" ");
public static int s1 = new Random().nextInt(100);
public static int s2 = new Random().nextInt(100);
public static int s3 = new Random().nextInt(100);
public static int a[][]=new int[100000][2] ;
public static int s[]=new int[100000];
public static void main(String[] args) {
sc = new Scanner(System.in);
System.out.println("请输入题数:");
int n=sc.nextInt();
System.out.println("请输入每行的题数:");
int m=sc.nextInt();
for(int i=0;i<n;i++) {
if((i)%m==0)
System.out.print("\n");
System.out.print((i+1)+":");
s1 = new Random().nextInt(100);
System.out.print(s1);
s2 = new Random().nextInt(100);
s3 = new Random().nextInt(100);
//重复
a[i][0]=s1;
a[i][1]=s3;
s[i]=s2;
for(int j=0;j<i;j++) {
if(a[j][0]==s1&&a[j][1]==s3&&s[j]==s2) {
s3 = new Random().nextInt(100);
while(s3==a[i][1]) {
s3 = new Random().nextInt(100);
}
s3 = new Random().nextInt(100);
while(s3==a[i][1]) {
}
}}
if(s2%4==0)
System.out.print("+");
if(s2%4==1) {
System.out.print("-");
while(s1<s3) {
s3 = new Random().nextInt(100);
}
}
if(s2%4==2) {
System.out.print("*");
while(s1*s3>=100) {
//s1 = new Random().nextInt(100);
s3 = new Random().nextInt(100);
}
}
if(s2%4==3) {
System.out.print("/");
while(s3!=0&&s1/s3!=0){
//s1 = new Random().nextInt(100);
s3 = new Random().nextInt(100);
}
}
System.out.print(s3);
System.out.print("=");
System.out.print(a3);
}
}
}
4,运行测试

二,动手又动脑_1
1,问题:仔细阅读示例: EnumTest.java,运行它,分析运行结果?你能得到什么结论?你掌握了枚举类型的基本用法了吗?
2,代码
public class EnumTest {
public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t); //
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());
//从字符串中转换
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//列出它的所有值
for(Size value:Size.values()){
System.out.println(value);
}
}
}
enum Size{SMALL,MEDIUM,LARGE};
3,运行测试
