题目:

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

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

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

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

3、定制操作数的个数

4、定制是否有乘除法

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

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

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

package s;

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

public class number {
public static void main(String[] args)
{
boolean flag = true;
while(flag) {
System.out.println("请选择功能(1、2、3):");
Scanner sc = new Scanner(System.in);
int z = sc.nextInt();
switch(z) {
case 1:
o1();break;
case 2:
o2();break;
case 3:
o3();break;
default:System.out.println("没有此功能。");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();

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

StringBuffer str = new StringBuffer();
String[] s = new String[m];
s[0] = str.toString();

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

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

str.append(a).append(b).append(c);
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()//第三阶段
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入打印的题数:");
int g = sc.nextInt();

System.out.println("有无乘除法,请输入y或n:");
String g1 = sc.next();

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

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

System.out.println("请输入操作数范围【50-200】:");
int g4 = sc.nextInt();

Random random = new Random();
int a = random.nextInt(4);
int a0 = random.nextInt(g3)+2;//操作数个数(2-4)

StringBuffer str = new StringBuffer();//动态数组
String[] s = new String[g];
s[0] = str.toString();//返回对象值

for( int i = 0; i < g; i++) {
a = random.nextInt(4);
int a1 = random.nextInt(g4);
int a2 = random.nextInt(g4);
int a3 = random.nextInt(g4);
int a4 = random.nextInt(g4);

if(g4 >=50 && g4 <=200){
a1 = random.nextInt(g4);
a2 = random.nextInt(g4);
a3 = random.nextInt(g4);
a4 = random.nextInt(g4);
}else {
System.out.println("操作数超出范围。");
}

if(g3 == 2) {
str.append(a).append(a1).append(a2);//添加数据
}else if(g3 ==3) {
str.append(a).append(a1).append(a2).append(a3);//添加数据
}else {
str.append(a).append(a1).append(a2).append(a3).append(a4);//添加数据
}

StringBuffer str2 = new StringBuffer();
if(g3 == 2) {
s[i] = str2.append(a).append(a1).append(a2).toString();
}else if(g3 == 3){
s[i] = str2.append(a).append(a1).append(a2).append(a3).toString();
}else {
s[i] = str2.append(a).append(a1).append(a2).append(a3).append(a4).toString();
}

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

if(g3 == 2) {
if(g1.equals("n")) {
if(sum == 1)
{
if(a == 0) {System.out.println(a1 + "+" + a2 + "=");}
if(a == 1) {System.out.println(a1 + "-" + a2 + "=");}
if(a == 2) {i--;continue;}
if(a == 3) {i--;continue;}
}else if(sum != 1){i--;continue;}
}else if(g1.equals("y")) {
if(sum == 1)
{
if(a == 0) {System.out.println(a1 + "+" + a2 + "=");}
if(a == 1) {System.out.println(a1 + "-" + a2 + "=");}
if(a == 2) {System.out.println(a1 + "*" + a2 + "=");}
if(a == 3) {System.out.println(a1 + "/" + a2 + "=");}
}else if(sum != 1){i--;continue;}
}
}else if(g3 == 3) {
if(g1.equals("n")) {
if(sum == 1)
{
if(a == 0) {System.out.println(a1 + "-" +"("+ a2 +"+"+a3+")"+ "=");}
if(a == 1) {System.out.println("("+a1 + "-" + a2 +")"+"+"+a3+ "=");}
if(a == 2) {System.out.println("("+a1 + "+" + a2 +")"+"-"+a3+ "=");}
if(a == 3) {System.out.println(a1 + "+" +"("+ a2 +"-"+a3+")"+ "=");}
}else if(sum != 1){i--;continue;}
}else if(g1.equals("y")) {
if(sum == 1)
{
if(a == 0) {System.out.println("("+a1+"*" + a2+")"+"+" + a3 +"=");}
if(a == 1) {System.out.println(a1+"-" +"("+ a2+"/" + a3 +")"+"=");}
if(a == 2) {System.out.println(a1+"-" +"("+ a2+"*" + a3 +")"+"=");}
if(a == 3) {System.out.println("("+a1+"/" + a2+")"+"+" + a3 +"=");}
}else if(sum != 1){i--;continue;}
}
}else if(g3 == 4){
if(g1.equals("n")) {
if(sum == 1)
{
if(a == 0) {System.out.println(a1+"+" + "("+ a2+"+" +a3 +")"+"+" +a4+ "=");}
if(a == 1) {System.out.println(a1+"-" + "("+ a2+"+" +a3 +")"+"-" +a4+ "=");}
if(a == 2) {System.out.println(a1+"-" + a2+"-" + "("+a3 +"-" +a4+")"+ "=");}
if(a == 3) {System.out.println("("+a1+"+" + a2+")"+"-" + a3 +"+" +a4+ "=");}
}else if(sum != 1){i--;continue;}
}else if(g1.equals("y")) {
if(sum == 1)
{
if(a == 0) {System.out.println(a1+"+" + a2+"-" + "("+a3 +"*" +a4+")"+ "=");}
if(a == 1) {System.out.println(a1+"-" +"("+ a2+"/" + a3 +")"+"-" +a4+ "=");}
if(a == 2) {System.out.println("("+a1+"*" + a2+")"+"+" + a3 +"-" +a4+ "=");}
if(a == 3) {System.out.println("("+a1+"/" + a2+")"+"-" +"("+ a3 +"*" +a4+")"+ "=");}
}else if(sum != 1){i--;continue;}
}
}else {
System.out.println("操作个数超出范围。");
}
}

}
}

日常Java(测试 (二柱)修改版)2021/9/22的更多相关文章

  1. 日常Java测试 2021/11/14

    课堂测试三 package word_show; import java.io.*;import java.util.*;import java.util.Map.Entry; public clas ...

  2. 日常Java测试第一段 2021/11/12

    课堂测试一 package word_show;import java.io.BufferedReader;import java.io.FileNotFoundException;import ja ...

  3. 日常Java测试第二段 2021/11/12

    第二阶段 package word_show; import java.io.*;import java.util.*;import java.util.Map.Entry; public class ...

  4. ORM框架示例及查询测试,上首页修改版(11种框架)

    继上次ORM之殇,我们需要什么样的ORM框架? 整理了11个ORM框架测试示例,通过示例代码和结果,能很容易了解各种框架的特性,优缺点,排名不分先后 EF PDF XCODE CRL NHiberna ...

  5. 转载:Eclipse+Spket插件+ExtJs4修改版提供代码提示功能[图]

    转载:Eclipse+Spket插件+ExtJs4修改版提供代码提示功能[图] ExtJs是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架.功能丰富,无人能出其右.无论是界面 ...

  6. Indy 10.5.8 for Delphi and Lazarus 修改版(2011)

    Indy 10.5.8 for Delphi and Lazarus 修改版(2011)    Internet Direct(Indy)是一组开放源代码的Internet组件,涵盖了几乎所有流行的I ...

  7. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  8. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  9. 若快打码平台python开发文档修改版

    一.打码的作用 在进行爬虫过程中,部分网站的登录验证码是比较简单的,例如四个英文数字随机组合而成的验证码,有的是全数字随机组成的验证码,有的是全中文随机组成的验证码.为了爬虫进行自动化,需要解决自动登 ...

随机推荐

  1. tarjan知识点梳理

    tarjan在图论中还是挺重要的.这里就简要的梳理一下tarjan的知识点. tarjan算法与无向图连通性. 首先说一下图中割点和桥的定义. 桥:也称割边,定义类似,在无向图中,若去掉某条边,导致整 ...

  2. hdu 5183 Negative and Positive (NP)(STL-集合【HASH】)

    题意: When given an array (a0,a1,a2,⋯an−1) and an integer K, you are expected to judge whether there i ...

  3. 深入浅出:了解时序数据库 InfluxDB

    数据模型 1.时序数据的特征 时序数据应用场景就是在时间线上每个时间点都会从多个数据源涌入数据,按照连续时间的多种纬度产生大量数据,并按秒甚至毫秒计算的实时性写入存储. 传统的RDBMS数据库对写入的 ...

  4. k8s入坑之路(9)k8s网络插件详解

    Flannel: 最成熟.最简单的选择 Calico: 性能好.灵活性最强,目前的企业级主流 Canal: 将Flannel提供的网络层与Calico的网络策略功能集成在一起. Weave: 独有的功 ...

  5. APP 自动化之手势操作appium提供API详解(四)

    一.手势操作1.上下左右滑屏 swipe---滑动 java-client 4.x 是有swipe方法的,可以通过传递坐标信息就可以完成滑动androidDriver.swipe(startx, st ...

  6. JMeter学习笔记--工具简单介绍

    一.JMeter 介绍 Apache JMeter是纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件,Java ...

  7. Maven下载、安装、配置

    简介 Maven是一个项目管理工具,主要用于Java平台的项目构建.依赖管理和项目生命周期管理. 当然对于我这样的程序猿来说,最大的好处就是对jar包的管理比较方便,只需要告诉Maven需要哪些jar ...

  8. Visual Studio 2019连接MySQL数据库详细教程

    前言 如果要在 Visual Studio 2019中使用MySQL数据库,首先需要下载MySQL的驱动 Visual Studio默认只显示微软自己的SQL Server数据源,点击其它也是微软自己 ...

  9. Java学习(二十)

    今天学习了Java中的package和import 在包中写了一点作为练习 如果把Test02放到别的包,就需要import到别的包,就像这样,Test02在HelloWorld包 如果删掉impor ...

  10. 实验1:SDN拓扑拓扑实验

    一.实验目的 能够使用源码安装Mininet: 能够使用Mininet的可视化工具生成拓扑: 能够使用Mininet的命令行生成特定拓扑: 能够使用Mininet交互界面管理SDN拓扑: 能够使用Py ...