博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
四则运算三完整版
阅读量:4593 次
发布时间:2019-06-09

本文共 17141 字,大约阅读时间需要 57 分钟。

      这是四则运算完整版的java代码程序。

      可以实现的功能如下:

      1、定义参数控制生成题目的个数。 例如,参数n=10;则将生成10个题目。

      2、定义参数控制题目中数值(自然数、真分数和真分数分母)的范围。 例如参数r= 10,将生成10以内(不包括10)的四则运算题目。该参数可以设置为1或其他自然数。 该参数必须给定,否则程序报错并给出帮助信息。

      3、生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如e1 − e2的子表达式,那么e1 ≥ e2。

      4、生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数。

      5. 每道题目中出现的运算符个数不超过3个。

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

      7.生成的题目存储到数据库中, 格式如下: 1. 四则运算题目1 2. 四则运算题目2 …… 其中真分数在输入输出时采用如下格式,真分数五分之三表示为3/5,真分数二又八分之三表示为2’3/8。

      8. 在生成题目的同时,计算出所有题目的答案,并存入数据库文件。 格式如下: 1. 答案1 2. 答案2 特别的,真分数的运算如下例所示:1/6 + 1/8 = 7/24。

      9. 程序应能支持一万道题目的生成。

      10. 程序支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计。

      源代码:

import java.util.Random;import java.sql.Connection;import java.sql.DriverManager;import java.util.Scanner;class Suan1//生成整数计算的类{    public int x,y,c;//定义两个变量,还有一个符号变量    public Random random=new Random();//定义随机数    String m;//生成的计算式储存咋m里面    int fanwei;    public String shengcheng(int fanwei1)//自动生成数的函数    {         fanwei=fanwei1;         c=random.nextInt(4);//生成符号         String fuhao;         x=random.nextInt(fanwei);//生成100以内的自然数         y=random.nextInt(fanwei);         if(c==0)//0是加法         {             fuhao="+";             m=String.valueOf(x)+fuhao+String.valueOf(y);                      }         else if(c==1)//1是减法         {             fuhao="-";             if(x>=y)             {                 m=String.valueOf(x)+fuhao+String.valueOf(y);             }             else             {                 m=String.valueOf(y)+fuhao+String.valueOf(x);             }         }         else if(c==2)         {             fuhao="*";             m=String.valueOf(x)+fuhao+String.valueOf(y);         }         else         {             fuhao="/";             for(int i=0;;i++)             {                 if(y==0)                 {                     y=random.nextInt(fanwei);                 }                 else                 {                     break;                 }             }             m=String.valueOf(x)+fuhao+String.valueOf(y);         }         return m;             }    public String shuchu()//定义输出函数    {        if(c==0)        {            System.out.print(m+"=");            return (String.valueOf(x+y));//并且返回计算的结果        }        else if(c==1)        {            if(x>=y)//将较大的数放在前面,不能出现负数            {            System.out.print(m+"=");            return (String.valueOf(x-y));            }            else            {            System.out.print(m+"=");            return (String.valueOf(y-x));            }        }        else if(c==2)        {            System.out.print(m+"=");            return (String.valueOf(x*y));        }        else        {            System.out.print(m+"=");            if(x%y==0)            {                return (String.valueOf(x/y));            }            else            {                if(x>y)                {                int shang=x/y;                int yushu=x-y*shang;                return (String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y));                }                else                {                return (String.valueOf(x)+"/"+String.valueOf(y));                }            }        }    }    public int fanhuic()    {        return c;    }    public String jisuan()    {        if(c==0)        {            return (String.valueOf(x+y));//并且返回计算的结果        }        else if(c==1)        {            if(x>=y)//将较大的数放在前面,不能出现负数            {            return (String.valueOf(x-y));            }            else            {            return (String.valueOf(y-x));            }        }        else if(c==2)        {            return (String.valueOf(x*y));        }        else        {            if(x%y==0)            {                return (String.valueOf(x/y));            }            else            {            return (String.valueOf(x)+"/"+String.valueOf(y));            }        }    }    public int jianyan(String a[],int s)//检验是否有重复的式子,如果有返回0,没有就返回1    {       int flag=1;       for(int i=0;i
y&&m>n)//生成的分母必须大于分子,输出不同的结果 { System.out.print(y+"/"+x+" + "+n+"/"+m+"="); return jisuan(x,y,m,n,c);//返回计算结果 } else if(x>y&&m
c) { gongbei=a;//公倍数从大的开始 while(gongbei<=a*c) { if(gongbei%a==0&&gongbei%c==0) { break; } gongbei++; } } else { gongbei=c;//公倍数从大的开始 while(gongbei<=a*c) { if(gongbei%a==0&&gongbei%c==0) { break; } gongbei++; } } return gongbei; } public int Gongyue(int gongbei,int s3)//求最大公约数的函数 { int i=1,gongyue=0; if(gongbei>s3)//公约数从1到最小的数 { while(i<=s3) { if(gongbei%i==0&&s3%i==0) { gongyue=i; } i++; } return gongyue; } else { while(i<=gongbei) { if(gongbei%i==0&&s3%i==0) { gongyue=i; } i++; } return gongyue; } } public int jianyan(String a[],int l)//检验是否生成重复计算式的函数 { int flag=1; for(int i=0;i
y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } else if(c==1) { int x1=b*y; int x2=x1-x; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } else if(c==2) { int x2=x*b; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } } else { if(c==0) { daan=String.valueOf(b+z); } else if(c==1) { daan=String.valueOf(b-z); } else { daan=String.valueOf(b*z); } } } else { m="("+a1+")"+fuhao+String.valueOf(b); if(weizhi!=-1&&panduan==3) { if(c==0) { int x1=b*y; int x2=x+x1; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } else if(c==1) { int x1=b*y; int x2=x-x1; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } else if(c==2) { int x2=x*b; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } } else { if(c==0) { daan=String.valueOf(z+b); } else if(c==1) { daan=String.valueOf(z-b); } else { daan=String.valueOf(z*b); } } } } else { if(c==1&&daxiao>b) { m="("+a1+")"+fuhao+String.valueOf(b); if(weizhi!=-1&&panduan==3) { if(c==0) { int x1=b*y; int x2=x+x1; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } else if(c==1) { int x1=b*y; int x2=x-x1; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } else if(c==2) { int x2=x*b; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } } else { if(c==0) { daan=String.valueOf(z+b); } else if(c==1) { daan=String.valueOf(z-b); } else { daan=String.valueOf(z*b); } } } else { m=String.valueOf(b)+fuhao+"("+a1+")"; if(weizhi!=-1&&panduan==3) { if(c==0) { int x1=b*y; int x2=x+x1; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } else if(c==1) { int x1=b*y; int x2=x1-x; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } else if(c==2) { int x2=x*b; if(x2%y==0) { daan=String.valueOf(x2/y); } else { if(x2>y) { int shang=x2/y; int yushu=x2-y*shang; daan=String.valueOf(shang)+"‘"+String.valueOf(yushu)+"/"+String.valueOf(y); } else { daan=String.valueOf(x2)+"/"+String.valueOf(y); } } } } else { if(c==0) { daan=String.valueOf(b+z); } else if(c==1) { daan=String.valueOf(b-z); } else { daan=String.valueOf(b*z); } } } } m=m+"="; return m; } public int jianyan(String a[],int l)//检验是否重复的函数 { int flag=1; for(int i=0;i

结果截图:

 

这是我耗时一周努力的结果,如有不足之处请大家提出。

 

转载于:https://www.cnblogs.com/zll20153246/p/6575723.html

你可能感兴趣的文章
项目变更管理
查看>>
make报错make: *** [sapi/cli/php] Error 1
查看>>
关于Java中~的问题
查看>>
[C/C++语言标准] ISO C99/ ISO C11/ ISO C++11/ ISO C++14/ISO C++17 Downloads
查看>>
44.Linux君正X1000-添加st7789v显示
查看>>
AC日记——大小写字母互换 openjudge 1.7 14
查看>>
第二届长三角音视频技术交流会筹备中
查看>>
关于启动Tomcat乱码问题的解决
查看>>
ASC7 Problem G. Network Wars
查看>>
js刷新页面方法大全
查看>>
java html中文汉字 反转义
查看>>
(4)HTML 5提供的一些新的标签用法以及和HTML 4的区别
查看>>
微软MSDN论坛上海聚会
查看>>
32进程调用64dll的解决方法
查看>>
MySQL 1071错误解决办法
查看>>
Linux 硬盘工具之hdparm
查看>>
《Java虚拟机规范》阅读(一):简介和Java虚拟机结构
查看>>
spring3.2.5学习(二)——IoC注解配置
查看>>
牛客网 牛客小白月赛2 D.虚虚实实-无向图判欧拉路径
查看>>
Visual C++界面编程技术随书代码
查看>>