zoukankan      html  css  js  c++  java
  • 软件工程个人作业02

    四则运算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); 
    }

    }

    复制代码

    运行截图:

    分数有乘除:

    分数无乘除:

    整数有乘除:

    整数无乘除:

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

  • 相关阅读:
    Atitit.atiJsBridge 新特性v7q329
    atitit.userService 用户系统设计 v6 q413
    atitit.userService 用户系统设计 v6 q413
    Atitit.获取某个服务 网络邻居列表 解决方案
    Hasse神舟笔记本卡logo解决,刷BIOS方法,教你修复神船
    Axure RP 8 注册码
    在本地硬盘安装WinPE系统,实现UEFI引导,摆脱U盘
    cmd实现批量文件的base64加密并双击加密文件后正常运行
    cmd的变量总结
    fiddler几种功能强大的用法
  • 原文地址:https://www.cnblogs.com/a1264393659/p/6961869.html
Copyright © 2011-2022 走看看