四则运算

Posted yulixiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四则运算相关的知识,希望对你有一定的参考价值。

程序要求: 可以控制下列参数: 是否有乘除法; 是否有括号(最多可以支持十个数参与计算); 数值范围; 加减有无负数; 除法有无余数!

程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。

设计思路:将产生的int类型随机数在方法中通过随机的方法确定这个数据是否为分数,对真分数进行判断。

判断是否重复时,将生成的算式保存在一个数组中,输出之前进行验证,判断是否存在并进行输出。

源代码: 

 

package demo;
import java.*;
import java.util.*;

public class Main {
public static void main(String args[])
{
Scanner scan;
scan = new Scanner(System.in);
int flag;
int max;
int ysf;
int num;
int i = 0;
char[] ch = new char[4];
ch[0] = \'+\';
ch[1] = \'-\';
ch[2] = \'*\';
ch[3] = \'/\';


public String putong(){
char [] a=new char[4];
a[0]=\'+\';
a[1]=\'-\';
a[2]=\'*\';
a[3]=\'/\';
int num1=(int)(Math.random()*10+1);
int num2=(int)(Math.random()*10+1);
int num=(int)(Math.random()*4+0);
String s=num1+" "+a[num]+" "+num2;
return s;
}
%>
<%!
public String zhenfenshu(){
char [] a=new char[4];String m,n="";
a[0]=\'+\';
a[1]=\'-\';
a[2]=\'*\';
a[3]=\'/\';
int num1=(int)(Math.random()*10+1);
int num2=(int)(Math.random()*10+1);
for(;num1==num2;num1=(int)(Math.random()*10+1),num2=(int)(Math.random()*10+1)){}
if(num1<num2){
m=num1+"/"+num2;
}
else
m=num2+"/"+num1;

for(num1=(int)(Math.random()*10+1),num2=(int)(Math.random()*10+1);num1==num2;num1=(int)(Math.random()*10+1),num2=(int)(Math.random()*10+1)){}

if(num1<num2){
n=num1+"/"+num2;
}
else
n=num2+"/"+num1;

int num=(int)(Math.random()*4+0);
String s=m+" "+a[num]+" "+n;

return s;
}

for(int j = 0;i < num;i ++)
{
flagA = SuiJileixing();
flagB = SuiJileixing();
if(flagA == 1 && flagB == 0)
{
a = SuiJi1();
b = SuiJi1();
b1 = SuiJi1() + 1;
if(b < b1)
{
b = b;
}
else
{
b1 = b1 + b;
}
ysf = SuiJiyunsuanfu();
s = a + " " + ch[ysf] + " (" + b + "/" + b1 + ") = ";
if(Check(str,s,i) != 1)
{
str[i] = s;
System.out.print(str[i]);
A = (double)a;
B = (double)b;
B1 = (double)b1;
show(A,B/B1,ysf);
i ++;
}
}

 

String type = (String)request.getParameter("type");
int chutishu=Integer.parseInt(request.getParameter("chutishu"));
int j=0;
String []a=new String [chutishu];

for(j=0;j<chutishu;j++){
if(type.equals("zhengshu"))
a[j]=putong();
else if(type.equals("zhenfenshu"))
a[j]=zhenfenshu();
else if(type.equals("douyou")){
int m=(int)(Math.random()*2+1);
if(m==1)
a[j]=putong();
else if(m==2)
a[j]=zhenfenshu();
}

for(int k=0;k<j;k++){
if(a[k].equals(a[j]))
{j--;break;}
else
continue;
}

public static void show(double a,double b,int k)
{
double c ;
if(k == 0)
{
c = a + b;
System.out.println((int)c);
}
if(k == 1)
{
c = (int) (a - b);
System.out.println((int)c);
}
if(k == 2)
{
c = (int) (a * b);
System.out.println((int)c);
}
if(k == 3)
{
c = (int) (a / b);
System.out.println((int)c);
}
}


}


 

 

程序截图:

 

 

 

 

 总结:通过这次作业 我充分的意识到如何将一个复杂的程序分解进行解决。在编写的时候一定要注意使用单元测试的思想,不能急于求成,这次作业未能完成检验重复的功能,会在以后逐步完善并发布。

 

以上是关于四则运算的主要内容,如果未能解决你的问题,请参考以下文章

C语言中随机产生四则运算符号

用C语言随机产生三个数,三个数之间进行四则运算,四则运算也随机产生

用c++语言编写四则运算计算器

java四则运算

定义一个方法,实现四则运算的功能。java

四则运算2开发简介