ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021.9.17课堂小测试完善

2021-09-20 23:02:35  阅读:141  来源: 互联网

标签:17 k2 2021.9 System int k1 x2 课堂 out


对上次小测试的完善,改进了随机数前面重复问题以及括号出现问题。并把方法根据要求应用到所有函数中。

代码实现:

import java.util.*;
public class shiyan {
public static void main(String[] args) {
System.out.println("请输入要出题目的数量:");
Scanner sc=new Scanner(System.in);
int i=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 b=new String("YES");
String x=new String("NO");


if(s.equals(b)) {
if(u.equals(b))
xuChengKuo(i,c,z);
else xuChengbuKuo(i,c,z);
}


else
if(s.equals(x)) {
if(u.equals(b)) buChengKuo(i,c,z);
else buChengbuKuo(i,c,z);
}
}


public static void xuChengKuo(int i,int c,int z) //i是题目数量,c是算式范围,z是操作数
{
Random random=new Random();


for(int j=0;j<i;j++) {
int k1,k2,k3;
int k=0;
int cao[]=new int[z];
int fu1[]=new int[z-1];
String fu2[]=new String[z-1];
int x1,x2;
k1=random.nextInt(z-1);
k2=random.nextInt(z-1);
if(k1>k2) {
k3=k1;
k1=k2;
k2=k3;
}
k3=random.nextInt(2);
if(k2-k1==1||k1-k2==0) k3=0;
for(x1=0;x1<z;x1++) {
int a=random.nextInt(c);
for(int l=0;l<x1;l++)
if(a==cao[l]) k++;
if(k!=0) continue;
cao[x1]=a+1;
}
for(x2=0;x2<z-1;x2++) {
int b=random.nextInt(4);
fu1[x2]=b;
if(fu1[x2]==0) {
fu2[x2]="+";
}
if(fu1[x2]==1) {
fu2[x2]="-";
}
if(fu1[x2]==2) {
fu2[x2]="*";
}
if(fu1[x2]==3) {
fu2[x2]="/";
}
}
for(int j1=0;j1<z-1;j1++) {
if(k3==0) {
System.out.print(cao[j1]);
System.out.print(fu2[j1]);
}
else {if(k1==j1) System.out.print("(");
System.out.print(cao[j1]);
if(k2==j1) System.out.print(")");
System.out.print(fu2[j1]);
}
}
if(k2==z-1) System.out.println(cao[z-1]+")");
else System.out.println(cao[z-1]);
k3=1;
}
}






public static void xuChengbuKuo(int i,int c,int z) {
Random random=new Random();


for(int j=0;j<i;j++) {
int k1,k2,k3;
int k=0;
int cao[]=new int[z];
int fu1[]=new int[z-1];
String fu2[]=new String[z-1];
int x1,x2;
k1=random.nextInt(z-1);
k2=random.nextInt(z-1);
if(k1>k2) {
k3=k1;
k1=k2;
k2=k3;
}
for(x1=0;x1<z;x1++) {
int a=random.nextInt(c);
for(int l=0;l<x1;l++)
if(a==cao[l]) k++;
if(k!=0) continue;
cao[x1]=a+1;
}
for(x2=0;x2<z-1;x2++) {
int b=random.nextInt(4);
fu1[x2]=b;
if(fu1[x2]==0) {
fu2[x2]="+";
}
if(fu1[x2]==1) {
fu2[x2]="-";
}
if(fu1[x2]==2) {
fu2[x2]="*";
}
if(fu1[x2]==3) {
fu2[x2]="/";
}
}
for(int j1=0;j1<z-1;j1++) {
System.out.print(cao[j1]);
System.out.print(fu2[j1]);
}
System.out.println(cao[z-1]);
}
}




public static void buChengKuo(int i,int c,int z){
Random random=new Random();


for(int j=0;j<i;j++) {
int k1,k2,k3;
int k=0;
int cao[]=new int[z];
int fu1[]=new int[z-1];
String fu2[]=new String[z-1];
int x1,x2;
k1=random.nextInt(z-1);
k2=random.nextInt(z-1);
if(k1>k2) {
k3=k1;
k1=k2;
k2=k3;
}
k3=random.nextInt(2);
if(k2-k1==1||k1-k2==0) k3=0;
for(x1=0;x1<z;x1++) {
int a=random.nextInt(c);
for(int l=0;l<x1;l++)
if(a==cao[l]) k++;
if(k!=0) continue;
cao[x1]=a+1;
}
for(x2=0;x2<z-1;x2++) {
int b=random.nextInt(2);
fu1[x2]=b;
if(fu1[x2]==0) {
fu2[x2]="+";
}
if(fu1[x2]==1) {
fu2[x2]="-";
}
}
for(int j1=0;j1<z-1;j1++) {
if(k3==0) {
System.out.print(cao[j1]);
System.out.print(fu2[j1]);
}
else {if(k1==j1) System.out.print("(");
System.out.print(cao[j1]);
if(k2==j1) System.out.print(")");
System.out.print(fu2[j1]);
}
}
if(k2==z-1) System.out.println(cao[z-1]+")");
else System.out.println(cao[z-1]);
k3=1;
}
}






public static void buChengbuKuo(int i,int c,int z){
Random random=new Random();


for(int j=0;j<i;j++) {
int k1,k2,k3;
int k=0;
int cao[]=new int[z];
int fu1[]=new int[z-1];
String fu2[]=new String[z-1];
int x1,x2;
k1=random.nextInt(z-1);
k2=random.nextInt(z-1);
if(k1>k2) {
k3=k1;
k1=k2;
k2=k3;
}
for(x1=0;x1<z;x1++) {
int a=random.nextInt(c);
for(int l=0;l<x1;l++)
if(a==cao[l]) k++;
if(k!=0) continue;
cao[x1]=a+1;
}
for(x2=0;x2<z-1;x2++) {
int b=random.nextInt(2);
fu1[x2]=b;
if(fu1[x2]==0) {
fu2[x2]="+";
}
if(fu1[x2]==1) {
fu2[x2]="-";}
}
for(int j1=0;j1<z-1;j1++) {
System.out.print(cao[j1]);
System.out.print(fu2[j1]);
}
System.out.println(cao[z-1]);
}
}
}

运行结果:

 

 

 

标签:17,k2,2021.9,System,int,k1,x2,课堂,out
来源: https://www.cnblogs.com/IT2002/p/15315628.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有