首页 > 代码库 > 软件工程个人作业02
软件工程个人作业02
四则运算2
设计思想:
1.通过用户输入是否需要分数运算,是否需要乘除法,是否需要加减法负数,以及除法是否有余数。
2.根据用户的选择使用不同的函数。用户可以选择题目道数和数值范围。
3.通过产生随机数决定哪一种运算。
4.是否有余数通过循环,根据用户选择,比如用户需要余数就不做限制,如果不需要余数就在输出前进行计算。
5.是否有负数需要用户输入的数值范围允许,否则程序结束。
6.未实现括号,检验重复以及输出方式。
程序代码:
package arithmetic; import java.util.Random; import javax.swing.*; public class Arithmetic { static void add(int limit1,int limit2,int boolminus/*int boolremainder,int boolmultiply*/) { int number1=new Random().nextInt(limit2-limit1+1)+limit1; int number2=new Random().nextInt(limit2-limit1+1)+limit1; if(boolminus==0) { if(limit1<0||limit2<0) { System.out.println("您输入的范围有误"); } else { System.out.println(number1+"+"+number2+"="); } } else { System.out.println(number1+"+"+number2+"="); } } static void subtract(int limit1,int limit2,int boolminus) { int number1=new Random().nextInt(limit2-limit1+1)+limit1; int number2=new Random().nextInt(limit2-limit1+1)+limit1; if(boolminus==0) { while(true) { if(number1<number2) { number1=new Random().nextInt(limit2-limit1+1)+limit1; number2=new Random().nextInt(limit2-limit1+1)+limit1; } else { break; } } if(limit1<0||limit2<0) { System.out.println("您输入的范围有误"); } else if(limit1>=0||limit2>=0||number1>=number2) { System.out.println(number1+"-"+number2+"="); } } else { System.out.println(number1+"-"+number2+"="); } } static void multiply(int limit1,int limit2/*int boolremainder,*/) { int number1=new Random().nextInt(limit2-limit1+1)+limit1; int number2=new Random().nextInt(limit2-limit1+1)+limit1; System.out.println(number1+"*"+number2+"="); } static void divide(int limit1,int limit2,int boolremainder) { int number1=new Random().nextInt(limit2-limit1+1)+limit1; int number2=new Random().nextInt(limit2-limit1+1)+limit1; if(boolremainder==0) { while(true) { if(number1%number2!=0) { number1=new Random().nextInt(limit2-limit1+1)+limit1; number2=new Random().nextInt(limit2-limit1+1)+limit1; } else { break; } } } else { System.out.println(number1+"/"+number2+"="); } } static void fraction(int limit1,int limit2,int numbers,int boolmultiply) { int i,j,k; if(boolmultiply==0) { for(int o=numbers;o>0;o--) {
int number1=new Random().nextInt(limit2-limit1+1)+limit1; int number2=new Random().nextInt(limit2-limit1+1)+limit1; if(number1<number2) i=number1; else i=number2; int number3=new Random().nextInt(limit2-limit1+1)+limit1; int number4=new Random().nextInt(limit2-limit1+1)+limit1; if(number3<number4) j=number3; else j=number4; for(;i>=0;i--) { if(number1%i==0&&number2%i==0) { number1=number1/i; number2=number2/i; break; } } for(;j>=0;j--) { if(number3%j==0&&number4%j==0) { number3=number3/j; number4=number4/j; break; } }
k=new Random().nextInt(2);
if(k==0)
{
System.out.println(number1+"/"+number2+"+"+number3+"/"+number4+"=");
}
else if(k==1)
{
System.out.println(number1+"/"+number2+"-"+number3+"/"+number4+"=");
}
}
}
else { for(int o=numbers;o>0;o--)
{
int number1=new Random().nextInt(limit2-limit1+1)+limit1;
int number2=new Random().nextInt(limit2-limit1+1)+limit1;
if(number1<number2) i=number1; else i=number2;
int number3=new Random().nextInt(limit2-limit1+1)+limit1;
int number4=new Random().nextInt(limit2-limit1+1)+limit1;
if(number3<number4) j=number3;
else j=number4;
for(;i>=0;i--)
{
if(number1%i==0&&number2%i==0)
{
number1=number1/i; number2=number2/i; break;
}
}
for(;j>=0;j--)
{
if(number3%j==0&&number4%j==0)
{
number3=number3/j; number4=number4/j; break;
}
}
k=new Random().nextInt(4);
if(k==0)
{
System.out.println(number1+"/"+number2+"+"+number3+"/"+number4+"=");
}
else if(k==1)
{
System.out.println(number1+"/"+number2+"-"+number3+"/"+number4+"=");
}
else if(k==2)
{
System.out.println(number1+"/"+number2+"*"+number3+"/"+number4+"=");
}
else
{
System.out.println(number1+"/"+number2+"/"+number3+"/"+number4+"=");
}
}
}
}
public static void main(String[] args)
{
String choice0=JOptionPane.showInputDialog("是否有分数运算(有输入1,无输入0)");
String choice1=JOptionPane.showInputDialog("是否有乘除法(有输入1,无输入0)");
String choice2=JOptionPane.showInputDialog("请输入数值范围下限");
String choice21=JOptionPane.showInputDialog("请输入数值范围上限");
String choice5=JOptionPane.showInputDialog("需要多少道题");
int choice00=Integer.parseInt(choice0);
int choice11=Integer.parseInt(choice1);
int limit1=Integer.parseInt(choice2);
int limit2=Integer.parseInt(choice21);
int i=Integer.parseInt(choice5);
if(choice00==0) { String choice3=JOptionPane.showInputDialog("加法有无负数(有输入1,无输入0)");
int choice33=Integer.parseInt(choice3);
if(choice11==0)
{
for(;i>0;i--)
{
int j=new Random().nextInt(2);
if(j==0) add(limit1,limit2,choice33);
else subtract(limit1,limit2,choice33);
}
}
else if(choice11==1)
{
String choice4=JOptionPane.showInputDialog("除法有无余数(有输入1,无输入0)");
int choice44=Integer.parseInt(choice4);
for(;i>0;i--)
{
int j=new Random().nextInt(4);
if(j==0) add(limit1,limit2,choice33);
else if(j==1) subtract(limit1,limit2,choice33);
else if(j==2) multiply(limit1,limit2);
else if(j==3) divide(limit1,limit2,choice44);
}
}
}
else
{
fraction(limit1,limit2,i,choice11);
}
}
}
运行截图:
分数有乘除:
分数无乘除:
整数有乘除:
整数无乘除:
用户输入范围和有无负数冲突:
软件工程个人作业02