package jisuan2;

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

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


System.out.println("请输入要出题目的数量:");
Scanner sc=new Scanner(System.in);
int number=sc.nextInt();


System.out.println("是否需要乘除法,填YES或NO:");
Scanner in=new Scanner(System.in);
String s=in.nextLine();


System.out.println("请输入算式数字范围:");
int c=sc.nextInt();


System.out.println("是否需要括号,填YES或NO");
String u=in.nextLine();


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


String y=new String("YES");
String n=new String("NO");

xuChengKuo(number,c,z);

}

public static void xuChengKuo(int number,int c,int z) //number是题目数量,c是算式范围,z是操作数
{
//记住第一个括号的位置
String[] bracket=new String[2]; //括号申请
bracket[0]="(";
bracket[1]=")";

Random random=new Random();

int[] operand=new int[number];
for(int w=0;w<number;w++)
{
operand[w]=random.nextInt(c); //每一位操作数的数值
}

for(int j=0;j<number;j++)
{


String[] symbol=new String[number];

for(int i=0;i<number;i++)      //随机运算符
{
if(i%4==0) symbol[i]="+";
if(i%4==1) symbol[i]="-";
if(i%4==2) symbol[i]="*";
if(i%4==3) symbol[i]="/";
}


/*int[] x=new int[z-1];
for(int i=0;i<z-1;i++)
{
x[i]=i;
}*/


/*for(int a=0;a<z;a++)
{
int R=random.nextInt(number);
int r=random.nextInt(number);
if(a!=z-1)
{
System.out.print(operand[R]+symbol[r]);
}
else System.out.println(operand[R]+"=");
}*/

String[] ti=new String[4*z-1];      //一道题即为一个字符串数组

for(int i=1;i<4*z-1;i=i+4)    //将已经生成的随机数放入数组
{

int R=random.nextInt(number);

ti[i]=String.valueOf(operand[R]);


}





for(int i=3;i<4*z-1;)    //存储运算符
{
int r=random.nextInt(number);
ti[i]=symbol[r];
i=i+4;
}

int x1,x2,p;

do //左括号存储
{

x1=random.nextInt(4*z-7);
if(x1%4==0&&ti[x1]==null) {
ti[x1]=bracket[0];

}
}while(ti[x1]!=bracket[0]);

do //右括号存储
{
x2=random.nextInt(4*z-1);
p=x1+6;
if((x2>=p)&&((x2-p)%4==0)&&(ti[x2]==null)) {
ti[x2]=bracket[1];}

}while(ti[x2]!=bracket[1]);

for(int i=0;i<4*z-1;i++)   //将数组中没有字符的位置放入特殊字符,方便最后判断输出;
{
if(ti[i]==null) {
ti[i]="#";
}
}

for(int i=0;i<ti.length;i++)
{
if(ti[i]!="#")
System.out.print(ti[i]);
}
System.out.print("="+"\n");
}

}
}

每日总结:Java课堂测试第三阶段第二次优化 (四则运算) (2021.9.22)的更多相关文章

  1. 每日总结:Java课堂测试第三阶段第一次优化 (2021.9.20)

    package jisuan2; import java.util.*;public class xiaoxue { public static void main(String[] args) { ...

  2. java课堂测试2第一阶段:方法运用

    package test2; import java.util.*; public class Test2 { public static int generateRandom(int fanwei) ...

  3. 2018-2019-2 《Java程序设计》结对项目阶段总结《四则运算——整数》(二)

    20175218 2018-2019-2 <Java程序设计>结对项目阶段总结<四则运算--整数> 一.需求分析 实现一个命令行程序,要求: 自动生成小学四则运算题目(加,减, ...

  4. Java课堂测试--实现ATM的基本操作体会

    9月20的周四的Java课堂第一节课上就是有关于实现ATM的考试内容,在实现的过程中我了解到自己本身还是有很多的不足之处,例如在实现工程方面的相似性上面还有些许就的欠缺,再者就是回宿舍拿电源的原因导致 ...

  5. java课堂测试2(两种方式)

    实验源代码 这是不使用数组形式的源代码 /* 2017/10/10 王翌淞 课堂测试2 */import java.util.Scanner; public class Number { public ...

  6. Java学习开发第三阶段总结

    第三阶段的学习总结: 在这次学习我学习了面向对象和封装的知识. ①类的定义 package day01; public class student { //成员变量 String name; //姓名 ...

  7. Java课堂测试1第三阶段

    package sizeyunsuan;//import java.util.Scanner;//import java.util.Random;import java.util.*; public ...

  8. Java课堂测试01及感想

    上周进行了Java的开学第一次测验,按要求做一个模拟ATM机功能的程序,实现存取款.转账汇款.修改密码.查询余额的操作.这次测验和假期的试题最大的不同还是把数组存储改成的文件存储,在听到老师说要用文件 ...

  9. JAVA 课堂测试

    package ACC; /*信1705-2班 * 20173623 * 赵墨涵 */ public class Account { String accountID; String accountn ...

随机推荐

  1. OVN入门

    参考链接 如何借助 OVN 来提高 OVS 在云计算环境中的性能 OVN简介 Open vSwitch Documentation OVSDB介绍及在OpenDaylight中的调用 OpenDayl ...

  2. Go版本管理--go.sum

    目录 1. 简介 2. go.sum文件记录 3. 生成 4.校验 5.校验和数据库 1. 简介 为了确保一致性构建,Go引入了go.mod文件来标记每个依赖包的版本,在构建过程中go命令会下载go. ...

  3. Python - 面向对象编程 - 多继承

    继承的详解 https://www.cnblogs.com/poloyy/p/15216652.html 这篇文章讲的都是单继承,Python 中还有多继承 Python 多继承的背景 大部分面向对象 ...

  4. 【SpringMVC】文件上传与下载、拦截器、异常处理器

    文件下载 使用ResponseEntity实现下载文件的功能 index.html <!DOCTYPE html> <html lang="en" xmlns:t ...

  5. 洛谷P2424 约数和 题解

    题目 约数和 题解 此题可以说完全就是一道数学题,不难看出这道题所求的是 \(\sum\limits_{i=x}^{y}{\sum\limits_{d|i}{d}}\) 的值. 很显然,用暴力枚举肯定 ...

  6. Http协议 压缩

    先说结论:Request和Response可以设置gzip压缩从而节省流量/带宽,这是一个不常见的问题.具体可见连接:HTTP 协议之压缩 最近测试代理服务器时,意外的发现使用urlopen请求百度首 ...

  7. MongoDB(15)- 查询操作里面的游标 cursor

    db.collection.find() 方法里面的游标 该方法最后会返回一个 cursor 正常情况下,访问文档必须迭代游标 重点事项 当调用 find() 函数时,Shell 并不立即查询数据库, ...

  8. shell逐行读取文件内容

    shell 中逐行读取文件内容 1.语法简介 #!/bin/bash <<EOF shell 中逐行读取文件内容的语法如下所示. 这里虽然很简单,但是再配合上其他的工具,如sed,awk, ...

  9. Linux处理二进制文件工具

    处理目标文件的工具 在Linux系统中有大量可用的工具可以帮助我们理解和处理目标文件.特别地,GNU binutils包尤其有帮助,而且可以运行在每一个Linux平台上 序号 命令 说明 1 AR 创 ...

  10. 开源自己编写的半人工标注平台PaddleOCRLabel(.NET Winform版本)

    大家好, 我是博客园的老用户了,许久不做.NET技术了,从2013年起,开始从事App技术,写过书,在Linux上搭建区块链,用GO写智能合约,使用nodejs搭建过微服务,用python写过爬虫,写 ...