四则运算

题目:

一家软件公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道四则运算题目给小学生做。

二柱一下打印出好多份不同的题目,让孩子做了。老师看了作业之后,对二柱赞许有加。别的老师闻讯, 问二柱能否扩大他的影响力,编个软件,给二年级到四年级都用,多了一些小小的要求: 

1、题目避免重复(第二阶段)

2、可定制(数量/打印方式):输入大的数量值,测试一下系统是否崩溃,反向查找系统是否优化的余地

3、定制操作数的个数

4、定制是否有乘除法

5、定制是否有括号(随机加入)

6 、定制数值范围(确定操作数的取值范围)

 

解析:

建立了s包,在包中建立了number类,创建了主函数main();,以及四个函数o1();o2();o3();o4();

package s;

import java.util.Random;
import java.util.Scanner;
import java.util.*;


public class number {
public static void main(String[] args)
{


System.out.println("请选择功能:");
Scanner sc = new Scanner(System.in);
int z = sc.nextInt();
for(int o=1;o<=z;o++) {

switch(z) {
case 1:
o1();


break;
case 2:
o2();

break;
case 3:
o3();

break;
case 4:
o4();
break;
case 5:
break;
default:

break;
}
}

}


public static void o1() //第一阶段
{
Random random = new Random();

Scanner sc = new Scanner(System.in);
System.out.println("请输入打印的题数:");
int m = sc.nextInt();

for(int o = 1; o <= m; o++) {
int a = random.nextInt(4);
int b = random.nextInt(100);
int c = random.nextInt(100);
switch(a)
{
case 0:

System.out.println(b+ "+" +c +"=" );
break;
case 1:

System.out.println(b+ "-" +c +"=" );
break;
case 2:

System.out.println(b+ "*" +c +"=" );
break;
case 3:

System.out.println(b+ "/" +c +"=" );
break;

default:
break;
}
}

}


public static void o2()//第二阶段
{
Random random = new Random();
int a = random.nextInt(4);
int b = random.nextInt(100);
int c = random.nextInt(100);
Scanner sc = new Scanner(System.in);
System.out.println("请输入打印的题数:");
int m = sc.nextInt();

StringBuffer str = new StringBuffer();

if(a == 0) {

System.out.println(b + "+" + c + "=");
}
if(a == 1) {

System.out.println(b + "-" + c + "=");
}
if(a == 2) {

System.out.println(b + "*" + c + "=");
}
if(a == 3) {

System.out.println(b + "/" + c + "=");
}

str.append(a).append(b).append(c);
String[] s = new String[m];
s[0] = str.toString();
for(int o = 0; o < m; o++) {

a = random.nextInt(4);
b = random.nextInt(100);
c = random.nextInt(100);
StringBuffer str2 = new StringBuffer();
s[o] = str2.append(a).append(b).append(c).toString();

int sum = 0;
for(int q = 0; q < s.length; q++) {
if(s[o].equals(s[q])) {
sum++;
}
}

if(sum == 1)
{
if(a == 0) {

System.out.println(b + "+" + c + "=");
}
if(a == 1) {

System.out.println(b + "-" + c + "=");
}
if(a == 2) {

System.out.println(b + "*" + c + "=");
}
if(a == 3) {

System.out.println(b + "/" + c + "=");
}



}else if(sum != 1){
o--;
continue;

}
}
}


public static void o3()//第三阶段
{
int a, b ,c,d;
String g1,g2;
Scanner sc = new Scanner(System.in);
System.out.println("请输入打印的题数:");
int m = sc.nextInt();
System.out.println("有无乘除法,yes表示四则运算,no表示乘除法计算,请输入yes或no:");
g1 = sc.next();

//System.out.println("是否有括号:");
// System.out.println("数值范围:");



StringBuffer str = new StringBuffer();//动态数组
Random random = new Random();
a = random.nextInt(4);
b = random.nextInt(100);
c = random.nextInt(100);


str.append(a).append(b).append(c);//添加数据
String[] s = new String[m];
s[0] = str.toString();//返回对象值



for(int o = 0; o < m; o++) {

a = random.nextInt(4);
b = random.nextInt(100);
c = random.nextInt(100);

StringBuffer str2 = new StringBuffer();
s[o] = str2.append(a).append(b).append(c).toString();

int sum = 0;
for(int q = 0; q < s.length; q++) {
if(s[o].equals(s[q])) {
sum++;
}
}


if(g1.equals("no")) {


if(sum == 1)
{
if(a == 0) {

System.out.println(b + "+" + c + "=");
}
if(a == 1) {

System.out.println(b + "-" + c + "=");
}
if(a == 2) {

o--;
continue;

}
if(a == 3) {

o--;
continue;

}else if(sum != 1){
o--;
continue;

}

}



if(g1.equals("yes")) {

if(sum == 1)
{
if(a == 0) {

System.out.println(b + "+" + c + "=");
}
if(a == 1) {

System.out.println(b + "-" + c + "=");
}
if(a == 2) {

System.out.println(b + "*" + c + "=");
}
if(a == 3) {

System.out.println(b + "/" + c + "=");
}


}else if(sum != 1){
o--;
continue;

}
}

}
}
}


public static void o4()//第三阶段
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入打印的题数:");
int m = sc.nextInt();

System.out.println("有无乘除法,yes表示四则运算,no表示乘除法计算,请输入yes或no:");
String g1 = sc.next();

System.out.println("是否有括号,请输入yes或no:");
String g2 = sc.next();

System.out.println("请输入操作个数:");
int m1 = sc.nextInt();

System.out.println("请输入操作数范围最大值:");
int m2 = sc.nextInt();

Random random = new Random();
int a = random.nextInt(4);
int b = random.nextInt(m2);
int c = random.nextInt(m2);
int d = random.nextInt(m2);
int e = random.nextInt(2);//有无括号
int h = random.nextInt(2);//括号的前后位置
int a1 = random.nextInt(4);

StringBuffer str = new StringBuffer();//动态数组
str.append(a).append(b).append(c);//添加数据
String[] s = new String[m];
s[0] = str.toString();//返回对象值

for( int i = 0; i < m; i++) {
a = random.nextInt(4);
b = random.nextInt(m2);
c = random.nextInt(m2);
d = random.nextInt(m2);

StringBuffer str2 = new StringBuffer();
s[i] = str2.append(a).append(b).append(c).toString();

int sum = 0;
for(int q = 0; q < s.length; q++) {
if(s[i].equals(s[q])) {
sum++;
}
}

}
String g3 = "+";String g4 = "-";

if(m1==2) {
if(a==0) { g3=new String("+");}
else if(a==1) { g3=new String("-");}
else if(a==2) { g3=new String("*");}
else if(a==3) { g3=new String("/");}
}
else if(m1==3) {
if(a==0) {
if(a1==0) { g3=new String("+"); g4=new String("+");}
if(a1==1) { g3=new String("+"); g4=new String("-");}
if(a1==2) { g3=new String("+"); g4=new String("*");}
if(a1==3) { g3=new String("+"); g4=new String("/");}
}
if(a==1) {
if(a1==0) { g3=new String("-"); g4=new String("+");}
if(a1==1) { g3=new String("-"); g4=new String("-");}
if(a1==2) { g3=new String("-"); g4=new String("*");}
if(a1==3) { g3=new String("-"); g4=new String("/");}
}
if(a==2) {
if(a1==0) { g3=new String("*"); g4=new String("+");}
if(a1==1) { g3=new String("*"); g4=new String("-");}
if(a1==2) { g3=new String("*"); g4=new String("*");}
if(a1==3) { g3=new String("*"); g4=new String("/");}
}
if(a==3) {
if(a1==0) { g3=new String("/"); g4=new String("+");}
if(a1==1) { g3=new String("/"); g4=new String("-");}
if(a1==2) { g3=new String("/"); g4=new String("*");}
if(a1==3) { g3=new String("/"); g4=new String("/");}
}
}
switch(a) {
case 0:
if(a==0) {
if(e==0) {System.out.println(b+g3+c+"=");}
else {System.out.println("("+b+g3+c+")"+"=");}
}
else if(a==3) {
if(e==0) {System.out.println(b+g3+c+g3+d+"=");}
else if(h==0) {System.out.println("("+b+g3+c+")"+g4+d+"=");}
else {System.out.println("("+b+g3+c+")"+g4+d+"=");}
}
break;
case 1:
if(a==1) {
if(e==0) {System.out.println(b+g3+c+"=");}
else {System.out.println("("+b+g3+c+")"+"=");}
}
else if(a==3) {
if(e==0) {System.out.println(b+g3+c+g3+d+"=");}
else if(h==0) {System.out.println("("+b+g3+c+")"+g4+d+"=");}
else {System.out.println("("+b+g3+c+")"+g4+d+"=");}
}
break;
case 2:
if(a==2) {
if(e==0) {System.out.println(b+g3+c+"=");}
else {System.out.println("("+b+g3+c+")"+"=");}
}
else if(a==3) {
if(e==0) {System.out.println(b+g3+c+g3+d+"=");}
else if(h==0) {System.out.println("("+b+g3+c+")"+g4+d+"=");}
else {System.out.println("("+b+g3+c+")"+g4+d+"=");}
}
break;
case 3:
if(a==3) {
if(e==0) {System.out.println(b+g3+c+"=");}
else {System.out.println("("+b+g3+c+")"+"=");}
}
else if(a==3) {
if(e==0) {System.out.println(b+g3+c+g3+d+"=");}
else if(h==0) {System.out.println("("+b+g3+c+")"+g4+d+"=");}
else {System.out.println("("+b+g3+c+")"+g4+d+"=");}
}
break;

}
}
}


 


 

posted @ 2021-09-18 22:21  kuaiquxie  阅读(62)  评论(0编辑  收藏  举报