课堂测试1:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件”

package b;

import java.util.Random;

public class b {
public static void main(String[] args)
{
Random r = new Random(50);
Random r1 = new Random(100);
Random r2 = new Random(20);
for(int j = 0; j<30;j++)
{
int ran1 = r.nextInt(50);
int ran2 = r1.nextInt(50);
int ran3 = r2.nextInt(50);
int z1 = ran3%4;

switch(z1)
{
case 0:
System.out.println(ran1+"+"+ran2+"=");
break;
case 1:
System.out.println(ran1+"-"+ran2+"=");
break;
case 2:
System.out.println(ran1+"*"+ran2+"=");
break;
case 3:
System.out.println(ran1+"/"+ran2+"=");
break;
}
}
}
}

课堂测试2: (1)题目避免重复; (2)可定制(数量/打印方式);

package b;

import java.util.Random;
import java.util.Scanner;
public class b {
public static void main(String[] args)
{
Random r = new Random(50);
Random r1 = new Random(100);
Random r2 = new Random(20);
Scanner sc=new Scanner(System.in);
System.out.print("请输入题数:");
int number=sc.nextInt();
for(int j = 0; j < number;j++)
{
int ran1 = r.nextInt(50);
int ran2 = r1.nextInt(50);
int ran3 = r2.nextInt(50);
int z1 = ran3%4;

switch(z1)
{
case 0:
System.out.println(ran1+"+"+ran2+"=");
break;
case 1:
System.out.println(ran1+"-"+ran2+"=");
break;
case 2:
System.out.println(ran1+"*"+ran2+"=");
break;
case 3:
System.out.println(ran1+"/"+ran2+"=");
break;
}
}
/* int ran2 = r.nextInt(100);
System.out.println(ran2);
x int ran3 = r.nextInt(100);
System.out.println(ran3);*/
}
}

 

 

 

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

package b;
import java.math.*;
import java.util.Scanner;
public class yunsuan {
public static void main(String[] args) {
// TODO Auto-generated method stub
//random()返回值是一个伪随机数,该数是带正号的double值,在[0.0,1.0]的范围内正态分布
System.out.println("请输入题的个数");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println("请输入操作数的个数");
int gs=sc.nextInt();
System.out.println("请输入范围");
int fw=sc.nextInt();
System.out.println("是否需要括号,输入1为需要,0为不需要");
int kh=sc.nextInt();
System.out.println("是否需要乘除法,输入1为需要,0为不需要");
int cc=sc.nextInt();
int[] a=new int[10000];
int[] b=new int[10000];
char uo,xx;
uo='(';
xx=')';
String co=String.valueOf(uo);
String mo=String.valueOf(xx);
String[] c=new String[10000];
String[] d=new String[10000];
String[] e=new String[10000];
String[] g=new String[10000];
for(int i=0;i<num;i++) {
int n=0;
int f=0;
int q=0;
for(f=0;f<gs;f++) {
a[f]=(int)(Math.random()*fw);
c[f]=String.valueOf(a[f]);
}
for(f=1;f<gs;f++)
{
d[0]=c[0];
d[i]=d[0]+c[f];

}
if(i>1)
{
for(int s=0;s<i;s++)
{
if(d[i]==d[s])n=1;
}

}
if(n==1)
{
i--;
continue;
}
if(kh==0&&cc==1) {//无括号有乘除
char[] fuhao=new char[100];
char m='*';
String iu=String.valueOf(m);
for(int xu=0;xu<gs-1;xu++) {
int sj=(int)(Math.random()*3);
switch(sj)
{
case 1:fuhao[xu]='+';e[xu]=String.valueOf(fuhao[xu]);break;
case 2:fuhao[xu]='-';e[xu]=String.valueOf(fuhao[xu]);break;
case 3:fuhao[xu]='*';e[xu]=String.valueOf(fuhao[xu]);break;
case 0:fuhao[xu]='/';e[xu]=String.valueOf(fuhao[xu]);break;
}
}
for( q=0,f=0;f<2*gs-1;f++) {

if(f==0) {g[0]=c[0];}
else if(f==1)
{g[0]=g[0]+iu;q++;}
else if(f!=1&&f%2==1) {g[0]=g[0]+e[q];}
else if(f==2) {g[0]=g[0]+c[f-1];}
else if(f!=2&&f%2==0) {g[0]=g[0]+c[f/2];}
}
System.out.println(g[0]+"=");
}
if(kh==1&&cc==1) {//有括号,有乘除
char[] fuhao=new char[100];
char m='*';
String iu=String.valueOf(m);
for(int xu=0;xu<gs-1;xu++) {
int sj=(int)(Math.random()*3);
switch(sj)
{
case 1:fuhao[xu]='+';e[xu]=String.valueOf(fuhao[xu]);break;
case 2:fuhao[xu]='-';e[xu]=String.valueOf(fuhao[xu]);break;
case 3:fuhao[xu]='*';e[xu]=String.valueOf(fuhao[xu]);break;
case 0:fuhao[xu]='/';e[xu]=String.valueOf(fuhao[xu]);break;
}
}
for( q=0,f=0;f<2*gs-1;f++) {

if(f==0) {g[0]=co+c[0];}
else if(f==1)
{g[0]=g[0]+iu;q++;}
else if(f!=1&&f%2==1) {g[0]=g[0]+e[q];}
else if(f==2) {g[0]=g[0]+c[f-1]+mo;}
else if(f!=2&&f%2==0) {g[0]=g[0]+c[f/2];}
}
System.out.println(g[0]+"=");
}
if(kh==1&&cc==0) {//有括号,无乘除
char[] fuhao=new char[100];
char m='*';
String iu=String.valueOf(m);
for(int xu=0;xu<gs-1;xu++) {
int sj=(int)(Math.random()*1);
switch(sj)
{
case 1:fuhao[xu]='+';e[xu]=String.valueOf(fuhao[xu]);break;
case 0:fuhao[xu]='-';e[xu]=String.valueOf(fuhao[xu]);break;

}
}
for( q=0,f=0;f<2*gs-1;f++) {

if(f==0) {g[0]=co+c[0];}
else if(f%2==1)
{g[0]=g[0]+e[q];q++;}
else if(f==2) {g[0]=g[0]+c[1]+mo;}
else if(f%2==0) {g[0]=g[0]+c[f/2];}
}
System.out.println(g[0]+"=");
}
if(kh==0&&cc==0) {
char[] fuhao=new char[100];
char m='*';
String iu=String.valueOf(m);
for(int xu=0;xu<gs-1;xu++) {
int sj=(int)(Math.random()*1);
switch(sj)
{
case 1:fuhao[xu]='+';e[xu]=String.valueOf(fuhao[xu]);break;
case 0:fuhao[xu]='-';e[xu]=String.valueOf(fuhao[xu]);break;
}
}
for( q=0,f=0;f<2*gs-1;f++) {

if(f==0) {g[0]=c[0];}
else if(f%2==1) {g[0]=g[0]+e[q];}
else if(f%2==0) {g[0]=g[0]+c[f/2];}
}
System.out.println(g[0]+"=");
}

}
}
}

要用户输入一个验证码

RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运行时,都会生成不同的字符串。

import java.util.Random;
import javax.swing.JOptionPane; // import class JOptionPane
public class VerificationCode {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String code="";//定义一个新的空字符串
for(int i=1;i<=6;i++)
{
Random random=new Random();
int character=random.nextInt(26)+97;//随机产生97-123之间的数
code=code+(char)character;//将产生的数转化为char类型为小写字母
}
String input=JOptionPane.showInputDialog(code+"\n"+"请输入验证码:");//显示验证码,并提示用户输入验证码
if(input.equals(code))//判断验证码是否正确
{
JOptionPane.showMessageDialog(null,"验证码正确,验证成功!","Results",JOptionPane.PLAIN_MESSAGE );
}
else
{
JOptionPane.showMessageDialog(null,"验证码错误,验证失败!","Results",JOptionPane.PLAIN_MESSAGE );
}
}

}