每日总结:Java课堂测试第三阶段第二次优化 (四则运算) (2021.9.22)
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)的更多相关文章
- 每日总结:Java课堂测试第三阶段第一次优化 (2021.9.20)
package jisuan2; import java.util.*;public class xiaoxue { public static void main(String[] args) { ...
- java课堂测试2第一阶段:方法运用
package test2; import java.util.*; public class Test2 { public static int generateRandom(int fanwei) ...
- 2018-2019-2 《Java程序设计》结对项目阶段总结《四则运算——整数》(二)
20175218 2018-2019-2 <Java程序设计>结对项目阶段总结<四则运算--整数> 一.需求分析 实现一个命令行程序,要求: 自动生成小学四则运算题目(加,减, ...
- Java课堂测试--实现ATM的基本操作体会
9月20的周四的Java课堂第一节课上就是有关于实现ATM的考试内容,在实现的过程中我了解到自己本身还是有很多的不足之处,例如在实现工程方面的相似性上面还有些许就的欠缺,再者就是回宿舍拿电源的原因导致 ...
- java课堂测试2(两种方式)
实验源代码 这是不使用数组形式的源代码 /* 2017/10/10 王翌淞 课堂测试2 */import java.util.Scanner; public class Number { public ...
- Java学习开发第三阶段总结
第三阶段的学习总结: 在这次学习我学习了面向对象和封装的知识. ①类的定义 package day01; public class student { //成员变量 String name; //姓名 ...
- Java课堂测试1第三阶段
package sizeyunsuan;//import java.util.Scanner;//import java.util.Random;import java.util.*; public ...
- Java课堂测试01及感想
上周进行了Java的开学第一次测验,按要求做一个模拟ATM机功能的程序,实现存取款.转账汇款.修改密码.查询余额的操作.这次测验和假期的试题最大的不同还是把数组存储改成的文件存储,在听到老师说要用文件 ...
- JAVA 课堂测试
package ACC; /*信1705-2班 * 20173623 * 赵墨涵 */ public class Account { String accountID; String accountn ...
随机推荐
- [Kotlin Tutorials 19] Kotlin Flows, SharedFlow and StateFlow in Android
Kotlin Flows 本文包含的内容: Flow是什么, 基本概念和用法. Flow的不同类型, StateFlow和SharedFlow比较. Flow在Android中的使用 安全收集. 操作 ...
- 移动端常用单位——rem
移动端常用单位: ①px:像素大小,固定值 ②%:百分比 ③em(不常用,但是在首行缩进时可以使用):相对自身的font大小(当自身的字体大小也是em做单位时,才会以父元素的字体大小为基准单位) ④r ...
- MySQL-SQL基础
mysql> use test; Database changed mysql> create table emp(ename varchar(10),hirdate date,sal d ...
- CSS布局中最小高度的妙用
CSS布局中最小高度的妙用 --最小高度可以设定一个BOX的最小高度,当其内容较少时时,也能保持BOX的高度为一定,超出就自动向下延伸最小高度可以设定一个BOX的最小高度,当其内容较少时时,也能保持B ...
- 性能测试工具JMeter 基础(六)—— 测试元件: 线程组
线程组的定义: 线程组是测试计划执行的入口,所有的逻辑控制器和取样器都必须在线程组下,其他的元件根据位置的不同作用域是不同的. 线程组是每个线程都是独立运行测试脚本,一个线程组就等于一个用户,通过多个 ...
- noip模拟38
\(\color{white}{\mathbb{深秋总有廖落处,雁归每是菊败时,名之以:残菊}}\) 这场比赛几乎全场都在打暴力,几乎人均切掉的 \(t1\) 没有想到双指针,\(t3\) 的暴力也没 ...
- [考试总结]noip模拟46
脑袋确实是不好使了需要回家暴颓治疗 数数数树鼠树 真好玩. 数数 大水题一个,妥妥的签到题目,然后... 我没签上 气展了!!! 其实我还是想麻烦了. 就是我们实际上就是排序之后每一次找头上和尾巴上的 ...
- VS Code 搭建stm32开发环境
MCU免费开发环境 一般芯片厂家会提供各种开发IDE方案,通常其中就包括其自家的集成IDE,如: 意法半导体 STM32CubeIDE NXP Codewarrior TI CCS 另外也可以用ecl ...
- Golang入门学习(五):异常处理
文章目录 2.5 错误处理机制 2.5.1 基本说明 2.5.2 入门示例 2.5.3 自定义错误 2.5 错误处理机制 2.5.1 基本说明 Go语言追求简洁优雅,因此并不支持传统的try-catc ...
- shell 脚本 根据PID过滤查看进程所有信息
#!/bin/bash read -p "输入要查询的PID: " P #筛选第二列等于输入的PID号 n=`ps aux | awk '$2~/^'$P'$/ {print $1 ...