您的位置:首页 > 其它

软件工程个人作业02

2016-03-19 15:58 381 查看
四则运算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); } } }


运行截图:

分数有乘除:


分数无乘除:


整数有乘除:


整数无乘除:


用户输入范围和有无负数冲突:


项目计划日志:

日期课堂编程读书博客日总结
3.14120min100min220min
3.1530min100min130min
3.1660min60min
3.1940min50min90min
周总结120min130min200min50min500min
时间记录日志:

日期开始结束静时间活动备注
3.148:00,19:0010:00,21:00220min上课,阅读
3.1515:00,19:0015:30,21:00130min编程,阅读
3.1615:0016:0060min编程
3.1914:0015:3090min编程,博客
缺陷记录日志:

日期编号类型引入排除修复时间修复
3.161分数产生时没有随机产生10min随机数产生在循环内的位置不对
3.192提示用户输入选择重复提示5min提示重复
仍然存在的问题:未实现括号,检验重复以及输出方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: