1.实验目的:是否有乘除法,括号,多项式运算。

2.思路:利用简单的循环switch语句进行循环输出随机数

3.程序源代码:

package jiajianchengchu;
import java.util.*;
public class jisuan {
    //定义一个用来约分的函数
public static String yuefen(int a,int b){
        int y = 1;
        for(int i=a;i>=1;i--){
            if(a%i==0&&b%i==0){
                y = i;
                break;
            }
        }
        int z = a/y;
        int m = b/y;
        if(z==0) {
            return "0";
        }
        return ""+z+"/"+m;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x,y,i,a1,C;//a代表计算类型,x代表题目数量,y代表数值的范围,i为循环变量,d代表是否有乘除法
        int d1=0;
        String d = null;//d用来储存答案
        System.out.println("1、整数计算式,2、真分数计算式");
        Scanner scan1=new Scanner(System.in);
        a1=scan1.nextInt();
if(a1==1){
        System.out.println("请输入题目的数量");
        Scanner scan2=new Scanner(System.in);
        x=scan2.nextInt();
        int daan[]=new int [x];
        System.out.println("请输入数值的范围");
        y=scan2.nextInt();
        System.out.println("是否有乘除法?(是输入1,否则输入0)");
        C=scan2.nextInt();
        if(C==1){
            for(i=0;i<x;i++){
                int a=(int)(Math.random()*y);//随机生成一个1-10的整数
                int b=(int)(Math.random()*y);//随机生成一个1-10的整数
                int c=(int)(Math.random()*3);//随机生成一个1-4的整数,0表示加法,1表示减法,2表示乘法,3表示除法
                if(c==0)
                {
                    d1=a+b;
                    System.out.print(a+"+"+b+"=       ");
                }
                if(c==1)
                {
                    d1=a-b;
                    System.out.print(a+"-"+b+"=       ");
                }
                if(c==2)
                {
                    d1=a*b;
                    System.out.print(a+"*"+b+"=       ");
                }
                if(c==3)
                {
                    d1=a/b;
                    System.out.print(a+"/"+b+"=       ");
                }
                if((i+1)%3==0){
                    System.out.println();
                }
                daan[i]=d1;
            }
            System.out.println("是否显示答案(显示请输入1)");
            if(scan2.nextInt()==1){
                for(i=0;i<x;i++){
                System.out.print(daan[i]+"     ");
                }
            }
            }
        if(C==0){
            for(i=0;i<x;i++){
                int a=(int)(Math.random()*y);//随机生成一个1-的整数
                int b=(int)(Math.random()*y);//随机生成一个1-10的整数
                int c=(int)(Math.random()*2);//随机生成一个1-4的整数,0表示加法,1表示减法
                if(c==0)
                {
                    d1=a+b;
                    System.out.print(a+"+"+b+"=       ");
                }
                if(c==1)
                {
                    d1=a-b;
                    System.out.print(a+"-"+b+"=       ");
                }
                if((i+1)%3==0){
                    System.out.println();
                }
                daan[i]=d1;
            }
            System.out.println("     ");
            System.out.println("是否显示答案(显示请输入1)");
            if(scan2.nextInt()==1){
                for(i=0;i<x;i++){
                System.out.print(daan[i]+"     ");
                }
            }
        }
        }   
if(a1==2){
            int M,Z;
            System.out.println("请输入题目的数量");
            Scanner scan2=new Scanner(System.in);
            x=scan2.nextInt();
            String daan[]=new String [x];
            int x1,x2,B,m1,m2;
            System.out.println("请输入分母数值的范围");
            B=scan2.nextInt();
            System.out.println("是否有乘除法?(是输入1,否则输入0)");
            C=scan2.nextInt();
            if(C==1){
                for(i=0;i<x;i++){
                    m1=1+(int)(Math.random()*B);//随机生成一个小于B的分母
                    x1=1+(int)(Math.random()*m1);//生成一个比分母小的分子,实现真分数
                    m2=1+(int)(Math.random()*B);//随机生成一个小于B的分母
                    x2=1+(int)(Math.random()*m2);//生成一个比分母小的分子,实现真分数
                    int c=(int)(Math.random()*3);//生成运算符
                    if(c==0){
                        Z=x1*m2+x2*m1;
                        M=m1*m2;
                        d=yuefen(Z,M);
                        System.out.print(x1+"/"+m1+"+"+x2+"/"+m2+"=       ");
                    }
                    if(c==1){
                        Z=x1*m2-x2*m1;
                        M=m1*m2;
                        d=yuefen(Z,M);
                        System.out.print(x1+"/"+m1+"-"+x2+"/"+m2+"=       ");
                    }
                    if(c==2){
                        Z=x1*x2;
                        M=m1*m2;
                        d=d=yuefen(Z,M);
                        System.out.print(x1+"/"+m1+"*"+x2+"/"+m2+"=       ");
                    }
                    if(c==3){
                        Z=m1*x2;
                        M=m2*x1;
                        d=d=yuefen(Z,M);
                        System.out.print(x1+"/"+m1+"/"+x2+"/"+m2+"=       ");
                    }
                    if((i+1)%3==0){
                        System.out.println();
                    }
                    daan[i]=d;
                     
                }
                System.out.println("是否显示答案(显示请输入1)");
                if(scan2.nextInt()==1){
                    for(i=0;i<x;i++){
                    System.out.print(daan[i]+"     ");
                    }
                }
            }
            if(C==0){
                for(i=0;i<x;i++){
                    m1=1+(int)(Math.random()*B);//随机生成一个小于B的分母
                    x1=1+(int)(Math.random()*m1);//生成一个比分母小的分子,实现真分数
                    m2=1+(int)(Math.random()*B);//随机生成一个小于B的分母
                    x2=1+(int)(Math.random()*m2);//生成一个比分母小的分子,实现真分数
                    int c=(int)(Math.random()*2);//生成运算符
                    if(c==0){
                        Z=x1*m2+x2*m1;
                        M=m1*m2;
                        d=yuefen(Z,M);
                        System.out.print(x1+"/"+m1+"+"+x2+"/"+m2+"=       ");
                    }
                    if(c==1){
                        Z=x1*m2-x2*m1;
                        M=m1*m2;
                        d=yuefen(Z,M);
                        System.out.print(x1+"/"+m1+"-"+x2+"/"+m2+"=       ");
                    }
                    if((i+1)%3==0){
                        System.out.println();
                    }
                    daan[i]=d;
                     
                }
                 System.out.println("    ");
                System.out.println("是否显示答案(显示请输入1)");
                if(scan2.nextInt()==1){
                    for(i=0;i<x;i++){
                    System.out.print(daan[i]+"     ");
                    }
                }
            }
        }
    }
}

4.实验结果截图:

5.实验总结:

对于真分数的计算方式不熟悉,需要请教其他同学;

对于存在多项式的运算不熟悉。

java-四则运算二的更多相关文章

  1. Java EE : 二、图解 Cookie(小甜饼)

    目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.概述 二.详细介绍Cookie 传输 ...

  2. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  3. java实现二维码

    说起二维码,微信好像最先启用,随后各类二维码就开始流行起来了.那什么是二维码呢. 1.什么是二维码?百度一下即可 http://baike.baidu.com/view/132241.htm?fr=a ...

  4. Java 设计模式(二)-六大原则

    Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A ...

  5. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  6. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  7. java 多线程二

    java 多线程一 java 多线程二 java 多线程三 java 多线程四 线程中断: /** * Created by root on 17-9-30. */ public class Test ...

  8. Linux -- 基于zookeeper的java api(二)

    Linux -- 基于zookeeper的java api(二) 写一个关于基于集群的zookeeper的自定义实现HA 基于客户端和监控器:使用监控的方法查看每个注册过的节点的状态来做出操作. Wa ...

  9. 浅谈Java代理二:Cglib动态代理-MethodInterceptor

    浅谈Java代理二:Cglib动态代理-MethodInterceptor CGLib动态代理特点: 使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生 ...

  10. java 生成二维码、可带LOGO、可去白边

      1.准备工作 所需jar包: JDK 1.6: commons-codec-1.11.jar core-2.2.jar javase-2.2.jar JDK 1.7: commons-codec- ...

随机推荐

  1. js事件委托和jQuery事件绑定on , off , one , bind , unbind , die

    一. 事件委托什么是事件委托?用现实中的理解就是:有100 个学生同时在某天中午收到快递,但这100 个学生不可能同时站在学校门口等,那么都会委托门卫去收取,然后再逐个交给学生.而在jQuery 中, ...

  2. Web页面性能优化(YSlow)

    YSlow(解析为Why Slow)是雅虎基于网站优化规则推出的工具,帮助你分析并优化网站性能.旧版Yslow 有13条规则,新版Yslow有23项规则,YSlow会根据这些规则分析你的网站,并给出评 ...

  3. Super Jumping! Jumping! Jumping!---hdu1087(动态规划)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 题意就是给你n个数,找出某个序列的最大和,这个序列满足依次增大的规则: 哎,这个题之前做过,但是 ...

  4. js生成二维码/html2canvas生成屏幕截图

    1.需求简述 (1) 最初需求: 根据后台接口获取url,生成一个二维码,用户可以长按保存为图片.(这时的二维码只是纯黑白像素构成的二维码) 方案1: 使用jquery.qrcode.min.js插件 ...

  5. shader练习-vertphone

    Shader "VertPhone" { Properties { _MainTex( "颜色贴图", 2D ) = "white"{} _ ...

  6. Dictionary里使用struct,enum做key

    首先看下Dictionary的源码 public void Add (TKey key, TValue value) { if (key == null) throw new ArgumentNull ...

  7. DRF(5) - 频率组件、url注册器、响应器、分页器

    一.频率组件 1.使用DRF简单频率控制实现对用户进行访问频率控制 1)导入模块,定义频率类并继承SimpleRateThrottle # 导入模块 from rest_framework.throt ...

  8. KMP算法最浅显理解——一看就明确

    说明 KMP算法看懂了认为特别简单,思路非常easy,看不懂之前.查各种资料,看的稀里糊涂.即使网上最简单的解释,依旧看的稀里糊涂. 我花了半天时间,争取用最短的篇幅大致搞明确这玩意究竟是啥. 这里不 ...

  9. struts 文件下载 annotation 注解版

    [本文简介] 本文将简单介绍使用 struts2 ,通过零配置和 annotation 实现文件下载功能. [文件夹结构] [web.xml有关struts的配置] <filter> &l ...

  10. 终端创建scrapy项目时报错(转)

    在终端创建scrapy项目时报错 PS D:\scrapy_project> scrapy startproject fangFatal error in launcher: Unable to ...