个人作业软件工程02
Posted 江山之夜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人作业软件工程02相关的知识,希望对你有一定的参考价值。
设计思想: 题目避免重复 将每次产生的三个随机数分别存入三个数组,产生的新随机数与已经产生的每个进行比较,若三个都相同则重新产生前两个,直到不相同。
控制是否有乘除 通过控制产生代表运算符的随机数来控制是否有乘除号的产生,随机数为0到1,则无乘除,随机数为0到3则有乘除。
控制数值范围 通过Math.random()函数来控制随机数产生的范围。
控制加减有无负数 只有减法有负数,所以只要在减号运算符里添加if语句,无负数,则a必须大于b,否则重新生成,计数减一,有负数,则a必须小于b;
控制除法有无余数 只要在除号运算符里添加if语句,有余数,则a不能整除b,否则跳出循环,计数减一;无余数,则a能整除b,否则跳出循环,计数减一。
控制括号未做出来。
源代码:
import java.util.Scanner;
public class A{
public static void main(String []args){
int a,b,c,n=0,m=0,q,w; String str=null;
Scanner reader=new Scanner(System.in);
System.out.print("整数运算请选 1,真分数运算请选 2:");
n=reader.nextInt();
System.out.print("请选择题目数量:");
m=reader.nextInt();
System.out.print("请选择范围:");
q=reader.nextInt();
w=reader.nextInt();
//整数
if(n==1)
{ int e,f,g;
System.out.print("请选择是否有乘除: 1 有 2 无");
e=reader.nextInt();
System.out.print("请选择加减有无负数: 1 有 2 无");
f=reader.nextInt();
System.out.print("请选择乘除有无余数: 1 有 2 无");
g=reader.nextInt();
for(int i=1;i<=m;i++)
{ int z[]=new int[m+1];int x[]=new int[m+1];int v[]=new int[m+1];
a=(int)(Math.random()*(w-q+1)+q);
b=(int)(Math.random()*(w-q+1)+q);
if(e==1) //控制运算有乘除
{c=(int)(Math.random()*4+0);}
else //控制运算无乘除
{ c=(int)(Math.random()*2+0);}
z[i]=a;x[i]=b;v[i]=c; //将随机产生的数存入三个数组
for(int j=1;j<=i-1;j++) //通过判断随机数的异同控制是否重复
{
if(z[i]==z[j]&&x[i]==x[j]&&v[i]==v[j])
{ do //重复则重新生成ab
{
a=(int)(Math.random()*(w-q+1)+q);
b=(int)(Math.random()*(w-q+1)+q);
}while(z[i]==z[j]&&x[i]==x[j]&&v[i]==v[j]);
}
}
switch(c)
{ case 0:
System.out.print(a+"+"+b+"="+"\t");
break;
case 1:
if(f==1) //加减有余数
{System.out.print(a+"-"+b+"="+"\t");
break;}
else //加减无余数
{if(a<b)
{i--;break;}
else
{System.out.print(a+"-"+b+"="+"\t");}
}
case 2:
System.out.print(a+"*"+b+"="+"\t");
break;
case 3:
if(b==0) //除数为0 则跳出循环i减一
{i--;break;}
else if(b!=0&&g==2) //乘除无余数
{
if(a%b==0)
{System.out.print(a+"/"+b+"="+"\t");}
else
{i--;break;}
}
else if(b!=0&&g==1) //乘除有余数
{ if(a%b==0)
{i--;break;}
else
{System.out.print(a+"/"+b+"="+"\t"); break;}
}
}
if(i%5==0) //5个算式一行输出
{System.out.print("\n");}
}
}
}
}
结果截图:
以上是关于个人作业软件工程02的主要内容,如果未能解决你的问题,请参考以下文章