四则运算第三次

import java.util.*;
//正数的随机取值
class number1
{
    private int i;
    private int j;
    public void seti()
    {
        i = 1 + (int)(Math.random() * 100);
    }
    public int geti()
    {
        return i;
    }
    public void setj()
    {
        j = 1 + (int)(Math.random() * 99);
    }
    public int getj()
    {
        return j;
    }

}
//负数的随机取值
class Number
{
    private int i;
    private int j;
    public void seti()
    {
        i = (-1) + (int)(Math.random() * (-100));
    }
    public int geti()
    {
        return i;
    }
    public void setj()
    {
        j = (-1) + (int)(Math.random() * (-99));
    }
    public int getj()
    {
        return j;
    }

}
//运算符号的随机取值
class symbol
{
    private int a;
    public void seta()
    {
        a = 1 + (int)(Math.random() * 4);
    }
    public int geta()
    {
        return a;
    }
}
//分数的随机取值
class number2
{
    private int i;
    private int j;
    private int x;
    private int y;
    public void setnumber()
    {
        i = 1 + (int)(Math.random() * 100);
        j = 1 + (int)(Math.random() * 99);
        x = 1 + (int)(Math.random() * 100);
        y = 1 + (int)(Math.random() * 99);
    }
    public int getnumberi()
    {
        return i;
    }
    public int getnumberj()
    {
        return j;
    }
    public int getnumberx()
    {
        return x;
    }
    public int getnumbery()
    {
        return y;
    }
}
//混合运算的取值
class number3
{
    private int i;
    private int j;
    private int x;
    private int y;
    public void setnumber()
    {
        i = 1 + (int)(Math.random() * 100);
        j = 1 + (int)(Math.random() * 100);
        x = 1 + (int)(Math.random() * 100);
        y = 1 + (int)(Math.random() * 100);
    }
    public int getnumberi()
    {
        return i;
    }
    public int getnumberj()
    {
        return j;
    }
    public int getnumberx()
    {
        return x;
    }
    public int getnumbery()
    {
        return y;
    }
}
//混合运算的符号
class symbol1
{
    private int a;
    public void seta()
    {
        a = 1 + (int)(Math.random() * 2);
    }
    public int geta()
    {
        return a;
    }
}
//主函数
public class calculate {
    public static void main(String args[])
    {
        while(true)
        {
            menu();
            System.out.println("请输入想要运行的计算");
            Scanner scan = new Scanner(System.in);
            int p;
            p = scan.nextInt();
            if(p == 1)
            {
                positive();
            }
            if(p == 2)
            {
                negative();
            }
            if(p == 3)
            {
                fraction();
            }

            if(p == 4)
            {
                divide();
            }
            if(p == 5)
            {
                divide1();
            }
            if(p == 6)
            {
                range();
            }
            if(p == 7)
            {
                mixture();
            }
        }
    }
    public static String simplify(int a,int b)   //获得最简分数
    {
        int max = 0;
        for(int i = 0 ;i < 100 ;i ++)
        {
            int n = i + 1 ;
            if(a % n == 0 && b % n == 0)
                max = n;

        }
        return (String)( a / max + "/" + b / max);
    }
    public static int charge(int answer) //判断正误
    {
        System.out.println("请输入您的答案:");
        Scanner in = new Scanner(System.in);
        int i;
        i = in.nextInt();
        if(i == answer)
        {
            return 1;
        }
        else return 0;
    }
     public static void menu()
    {
        System.out.println("1. 正数的四则运算");
        System.out.println("2. 负数的四则运算");
        System.out.println("3. 分数的四则运算");
        System.out.println("4. 整除运算");
        System.out.println("5. 非整除运算");
        System.out.println("6. 规定数值范围的运算");
        System.out.println("7. 混合运算");
    }
    public static void positive() //正数运算
    {
        for(int i = 0 ; i <= 29 ; i ++){
            number1 n1 = new number1();
            int a1 , a2;
            n1.seti();
            a1 = n1.geti();
            n1.setj();
            a2 = n1.getj();
            symbol s = new symbol();
            int b;
            s.seta();
            b = s.geta();
            if(b == 1)
                System.out.println(a1 + "+" + a2 + "=" + ( a1 + a2 ) );
            if(b == 2)
                System.out.println(a1 + "-" + a2 + "=" + (a1 - a2));
            if(b == 3)
                System.out.println(a1 + "*" + a2 + "=" + (a1 * a2));
            if(b == 4)
            {
                int c = a1 % a2;
                int c1 = (a1 - c) / a2;
                System.out.println(a1 + "/" + a2 + "=" + c1 + "余" + c);
            }

        }

    }
    public static void negative() //负数运算
    {
        for(int i = 0 ; i <= 29 ; i ++){
            Number n1 = new Number();
            int a1 , a2;
            n1.seti();
            a1 = n1.geti();
            n1.setj();
            a2 = n1.getj();
            symbol s = new symbol();
            int b;
            s.seta();
            b = s.geta();
            if(b == 1)
                System.out.println(a1 + "+" + "(" +a2 + ")" + "=" + ( a1 + a2 ) );
            if(b == 2)
                System.out.println(a1 + "-" + "(" +a2 + ")" + "=" + (a1 - a2));
            if(b == 3)
                System.out.println(a1 + "*" + "(" +a2 + ")" + "=" + (a1 * a2));
            if(b == 4){
                int c = ((-1) * a1) % ((-1) * a2);
                int c1 = ((-1) * a1 - c) / ((-1) * a2);
                System.out.println(a1 + "/" + "(" +a2 + ")" + "=" + c1 + "余" + c);
            }

        }
    }
    public static void fraction() //分数运算
    {
        for(int i = 0 ; i <= 29 ; i++)
        {
            number2 n2 = new number2();
            int b1 , b2 , b3 , b4;
            n2.setnumber();
            b1 = n2.getnumberi();
            b2 = n2.getnumberj();
            b3 = n2.getnumberx();
            b4 = n2.getnumbery();
            symbol s1 = new symbol();
            int c;
            s1.seta();
            c = s1.geta();
            if(c == 1)
                System.out.println(simplify(b2 , b1) + "+" + simplify(b4 , b3) + "=" + simplify(b2 * b3 + b4 * b1 , b1 * b3));
            if(c == 2)
                System.out.println(simplify(b2 , b1) + "-" + simplify(b4 , b3) + "=" + simplify(b2 * b3 - b4 * b1 , b1 * b3));
            if(c == 3)
                System.out.println(simplify(b2 , b1) + "*" + simplify(b4 , b3) + "=" + simplify(b2 * b4 , b1 * b3));
            if(c == 4)
                System.out.println(simplify(b2 , b1) + "/" + simplify(b4 , b3) + "=" + simplify(b2 * b3 , b1 * b4));
        }
    }
    public static void divide() //整除运算
    {
        int i = 0;
        while(i < 30){
            number1 n = new number1();
            int a1 , a2;
            n.seti();
            a1 = n.geti();
            n.setj();
            a2 = n.getj();
            if(a1 % a2 == 0)
            {
                i++;
                System.out.println(a1 + "/" + a2 + "=" + (a1 / a2));
            }
        }
    }
    public static void divide1() //不整除运算
    {
        int i = 0;
        while(i < 30){
            number1 n = new number1();
            int a1 , a2;
            n.seti();
            a1 = n.geti();
            n.setj();
            a2 = n.getj();
            if(a1 % a2 != 0)
            {
                i++;
                int c = a1 % a2;
                int c1 = (a1 - c) / a2;
                System.out.println(a1 + "/" + a2 + "=" + c1 + "余" + c);
            }
        }
    }
    public static void range() //范围运算
    {
        System.out.println("请输入范围的左边界:");
        Scanner scan1 = new Scanner(System.in);
        int a3;
        a3 = scan1.nextInt();
        System.out.println("请输入范围的右边界:");
        Scanner scan2 = new Scanner(System.in);
        int a4;
        a4 = scan1.nextInt();
        int i = 0;
        while(i < 30){
            number1 n1 = new number1();
            int a1 , a2;
            n1.seti();
            a1 = n1.geti();
            n1.setj();
            a2 = n1.getj();
            symbol s = new symbol();
            int b;
            s.seta();
            b = s.geta();
            if(a1 >= a3 && a1 <= a4 && a2 >= a3 && a2 <= a4)
            {
                i++;
                if(b == 1)
                    System.out.println(a1 + "+" + a2 + "=" + ( a1 + a2 ) );
                if(b == 2)
                    System.out.println(a1 + "-" + a2 + "=" + (a1 - a2));
                if(b == 3)
                    System.out.println(a1 + "*" + a2 + "=" + (a1 * a2));
                if(b == 4){
                    int c = a1 % a2;
                    int c1 = (a1 - c) / a2;
                    System.out.println(a1 + "/" + a2 + "=" + c1 + "余" + c);
                }
            }
        }
    }
    public static void mixture() //混合运算同时能够控制题目的数量,同时也能检查重复,同时还可以判断出回答的正误
    {
        System.out.println("请输入您想要生成的题目数量");
        Scanner in = new Scanner(System.in);
        int  amount;
        amount = in.nextInt();
        int c = 0;
        int[] list =new int[amount + 1];
        int[] list1 = new int[amount + 1];
        int[] list2 = new int[amount + 1];
        while(c < amount)
        {
            number3 n = new number3();
            n.setnumber();
            int b1 , b2 , b3 , b4;
            b1 = n.getnumberi();
            b2 = n.getnumberj();
            b3 = n.getnumberx();
            b4 = n.getnumbery();
            symbol1 s = new symbol1();
            s.seta();
            symbol1 s1 = new symbol1();
            s1.seta();
            symbol1 s2 = new symbol1();
            s2.seta();
            int a1 , a2 , a3;
            a1 = s.geta();
            a2 = s1.geta();
            a3 = s2.geta();
            if(a1 == 1 && a2 == 1 && a3 == 1)
            {
                if( (b1 + b2 + b3 + b4) >= 0 )
                {
                    System.out.println(b1 + "+" + b2 + "+" + b3 + "+" + b4 +"=");
                    c ++;
                    if(charge( (b1 + b2 + b3 + b4) ) == 1)
                    {
                        list[c] = c ;
                    }
                    else
                    {
                        list1[c] = c ;
                    }
                }
            }
            if(a1 == 1 && a2 == 1 && a3 == 2)
            {
                if((b1 + b2 + b3 - b4) >= 0)
                {
                    System.out.println(b1 + "+" + b2 + "+" + b3 + "-" + b4 +"=" );
                    c ++;
                    if(charge( (b1 + b2 + b3 - b4) ) == 1)
                    {
                        list[c] = c ;
                    }
                    else
                    {
                        list1[c] = c ;
                    }
                }
            }
            if(a1 == 1 && a2 == 2 && a3 == 1)
            {
                if((b1 + b2 - b3 + b4) >= 0)
                {
                    System.out.println(b1 + "+" + b2 + "-" + b3 + "+" + b4 +"=" );
                    c ++;
                    if(charge( (b1 + b2 - b3 + b4) ) == 1)
                    {
                        list[c] = c ;
                    }
                    else
                    {
                        list1[c] = c ;
                    }
                }
            }
            if(a1 == 1 && a2 == 2 && a3 == 2)
            {
                if((b1 + b2 - b3 - b4) >= 0)
                {
                    System.out.println(b1 + "+" + b2 + "-" + b3 + "-" + b4 +"=" );
                    c ++;
                    if(charge( (b1 + b2 - b3 - b4) ) == 1)
                    {
                        list[c] = c ;
                    }
                    else
                    {
                        list1[c] = c;
                    }
                }
            }
            if(a1 == 2 && a2 == 1 && a3 == 1)
            {
                if((b1 - b2 + b3 + b4) >= 0)
                {
                    System.out.println(b1 + "-" + b2 + "+" + b3 + "+" + b4 +"=" );
                    c ++;
                    if(charge( (b1 - b2 + b3 + b4) ) == 1)
                    {
                        list[c] = c ;
                    }
                    else
                    {
                        list1[c] = c ;
                    }
                }
            }
            if(a1 == 2 && a2 == 1 && a3 == 2)
            {
                if((b1 - b2 + b3 - b4) >= 0)
                {
                    System.out.println(b1 + "-" + b2 + "+" + b3 + "-" + b4 +"=" );
                    c ++;
                    if(charge( (b1 - b2 + b3 - b4) ) == 1)
                    {
                        list[c] = c ;
                    }
                    else
                    {
                        list1[c] = c ;
                    }
                }
            }
            if(a1 == 2 && a2 == 2 && a3 == 1)
            {
                if((b1 - b2 - b3 + b4) >= 0)
                {
                    System.out.println(b1 + "-" + b2 + "-" + b3 + "+" + b4 +"=" );
                    c ++;
                    if(charge( (b1 - b2 - b3 + b4) ) == 1)
                    {
                        list[c] = c ;
                    }
                    else
                    {
                        list1[c] = c ;
                    }
                }
            }
            if(a1 == 2 && a2 == 2 && a3 == 2)
            {
                if((b1 - b2 - b3 - b4) >= 0)
                {
                    System.out.println(b1 + "-" + b2 + "-" + b3 + "-" + b4 +"=" );
                    c ++;
                    if(charge( (b1 - b2 - b3 - b4) ) == 1)
                    {
                        list[c] = c;
                    }
                    else
                    {
                        list1[c] = c ;
                    }
                }
            }
        }
        System.out.println("答对的题目有:");
        for(int d = 0 ; d <= amount ; d ++)
        {
            if(list[d] != 0)
            {
                System.out.println(list[d]);
            }
        }
        System.out.println("答错的题目有:");
        for(int e = 0 ; e <= amount ; e ++)
        {
            if(list1[e] != 0)
            {
                System.out.println(list1[e]);
            }
        }
    }

}

时间: 2024-10-13 18:13:38

四则运算第三次的相关文章

20172312『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结

20172312『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结 结对伙伴 学号 :20172315 20172318 姓名 :胡智韬 陆大岳 伙伴第一周博客地址: 对结对伙伴的评价:这俩人一开始各编各的还好,到后面就开始吵,从头吵到尾,陆大胖,胡志汪,还好到最后是把代码敲出来了,不容易不容易. 小组结对编程的照片(QQ群截图) 项目中自己负责的部分 代码的综合整理,错误查找,合并以及博客的撰写. 个人贡献度划分 彭霖:胡智韬:陆大岳=3:3:4 相关过程的截图 生成题目类驱动类的

四则运算第三次冲刺(项目完成)

小组成员: 黄国柱 201306114432http://www.cnblogs.com/zzhuzi/ 欧泽波 201306114428http://www.cnblogs.com/OuZeBo/ 第三次冲刺我们把四则运算的APP完成了: 我们的开发过程:http://www.cnblogs.com/OuZeBo/p/5050137.html 我们的项目APK:http://pan.baidu.com/s/1gevfJEV: 可以去下载安装看效果:代码就不发表了:

四则运算(三)

一.题目:在原程序的基础之上让程序能接受用户输入答案,并判定对错.最后给出总共对/错 的数量. 二.设计思路 既然能判断对错,和接受用户的输入,那就必须能保存这些题目的结果,和用户输入的结果.因此我用了两个数组,其中一个由前边的运算符控制直接保存结果,另一组数组由用户输入,在将两数组进行比对,对了输出正确且变量加1,错误亦然.但是遇到了余数的问题,后又设置两个数组分别保存正确的余数和用户输入的余数,在后边用户输入中通过判断正确余数是否等于0来判断if函数,将程序的功能实现. 三.源代码 1 #i

软件工程课堂练习--四则运算(三)

一.设计思路 题目:可以答题并判断对错,最后显示做对几道题. 思路:在原来的基础上又添加了用户在系统上可选择直接答题模块,思路上上次的四则运算(二)大致相同,不过又添加了几个函数,经过调用实现操作. 二.程序代码 1 #include "stdafx.h" 2 #include "stdio.h" 3 #include "time.h" 4 #include "stdlib.h" //随机器函数头文件 5 6 int true

四则运算第三版

相对于第二版又提出了新的要求 1.学生写的程序必须能判定用户的输入答案是否正确 2.程序必须能处理四种运算的混合算式 要求两人合作分析,单独编程,单独撰写博客 设计思路: 核心问题在于如何对随即产生的四则运算进行求值 通过查阅资料和复习数据结构 发现可以采用中缀表达式转化为后缀表达式的方法 并采用栈结构 团队成员:罗元浩.赵承圣(http://www.cnblogs.com/zzcs/)

(java) 四则运算(三)

要求: 1.学生写的程序必须能判定用户的输入答案是否正确, 例如程序输出:20 – 5 = ?用户输入15,那么程序就会反馈正确,然后继续出题.直到 30 道题目结束,程序最后告诉用户作对了几道题.2.程序必须能处理四种运算的混合算式:20 – 5 * 2 =?           正确答案是10.20– 5 * 2 + 9 / 3 = ?   正确答案是13 思路: 在(二)基础上改进 1.定义 SIZE 打印题数 2.定义是否有乘除法(用以改变随机符号范围) 3.定义加减有无负数(用以改变加

20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结

20172325『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结 结对伙伴 学号:20172306 姓名:刘辰 结对伙伴博客链接 刘辰同学对编程的积极程度很高,并且在编程能力上很不错,有自己的想法并且能够把这个想法具体的实践出来,只是在编程的过程中和同学交流不够,总是在最后不行了才发现问题,很容易造成前功尽弃,希望在编程过程中多沟通,减少不必要的时间精力的浪费. 小组结对编程照片 项目中自己负责的部分 我负责的是两个部分,分别是: 1.利用栈将中缀表达式转后缀表达式: 2.对后缀表

2017-2018-2 1723 『Java程序设计』课程 结对编程练习_四则运算第三周总结

相关测试过程截图 测试了由中缀表达式转后缀表达式的Junit测试,分别进行了整数的和分数的,测试成功截图 由于生成问题和计算问题中,问题都是随机产生的,暂时不会进行Junit测试,故没有进行,但应是正确的,我们使用了驱动类去进行测试,结果也产生的符合格式. 小组各个成员信息 20172302侯泽洋 20172308周亚杰 测试过程中遇到的困难及解决方法 测试过程中一开始我进行的测试是始终是失败: 后来才发现一个assertEquals其实是只能对应一个实例化的类的对象,一旦是指向两个就会抛出异常

四则运算-第三次实验

题目要求 1)能进行在线答题 2)能判蹲四则运算的对错 3)能保存四则运算 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using S