zoukankan      html  css  js  c++  java
  • 四则运算×2

    import java.util.Scanner;
    public class computePlus {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            Scanner in=new Scanner(System.in);
            System.out.println("请输入生成题目的个数");
            int work=in.nextInt();
            System.out.println("请输入算式中的数字个数");
            int n=in.nextInt();
            int num[]=new int[n];
            int max,min;
            System.out.println("请输入数值范围");
            min=in.nextInt();
            max=in.nextInt();
            
            System.out.println("是否有乘除法(是:1 否:2)");
            int choice1=in.nextInt();
            if(choice1==1)
            {
                System.out.println("除法是否有余数(是:1 否:2)");
                int choice2=in.nextInt();
                for(int x=0;x<work;x++)
                {
                    num=CreateRandom(n,max,min);
                    int operate1=1+(int)(Math.random()*2);
                    if(operate1==1)
                        multiply(num,n);
                    if(operate1==2)
                    {
                        if(choice2==1)
                        {
                            for(int i=0;i<n-1;i++)
                                ModDivide(num[i],num[i+1]);
                        }
                        if(choice2==2)
                        {
                            for(int i=0;i<n-1;i++)
                                NoModDivide(num[i],num[i+1]);
                        }
                    }
                }        
            }
            if(choice1==2)
            {
                System.out.println("减法有无负数(是:1 否:2)");
                int choice3=in.nextInt();
                for(int x=0;x<work;x++)
                {
                num=CreateRandom(n,max,min);
                int operate2=1+(int)(Math.random()*2);
                if(operate2==1)
                {
                    if(choice3==1)
                        plus(num,n);
                    if(choice3==2)
                        Nplus(num,n,max,min);
                }
                if(operate2==2)
                    decrease(num,n);
                }    
            }
            
            
            
            
            
            
        }
        //加法
        public static void plus(int a[],int n)
        {
            long sum=0;
            for(int m=0;m<n;m++)
            {
                sum=sum+a[m];
            }
            for(int i=0;i<n-1;i++)
                System.out.print(a[i]+"+");
                System.out.print(a[n-1]+"="+sum);
                System.out.println();
        }
        //有负数减法
        public static void decrease(int a[],int n)
        {
            long sum=a[0];
            for(int m=1;m<n;m++)
            {
                sum=sum-a[m];
            }
            for(int i=0;i<n-1;i++)
                System.out.print(a[i]+"-");
                System.out.print(a[n-1]+"="+sum);
                System.out.println();
        }
        //无负数减法
        public static void Nplus(int a[],int n,int max,int min)
        {
            long sum=a[0];
            for(int m=1;m<n;m++)
            {
                sum=sum-a[m];
            }
            if(sum>=0)
            {
                for(int i=0;i<n-1;i++)
                    System.out.print(a[i]+"-");
                    System.out.print(a[n-1]+"="+sum);
                    System.out.println();
            }
            else
            {
                int b[]=CreateRandom(n,min,max);
                Nplus(b,n,max,min);
            }
        
        }
        //
        public static void multiply(int a[],int n)
        {
            long sum=1;
            for(int m=0;m<n;m++)
            {
                sum=sum*a[m];
            }
            for(int i=0;i<n-1;i++)
                System.out.print(a[i]+"*");
                System.out.print(a[n-1]+"="+sum);
                System.out.println();
        }
        //分数除法
        public static void divide(int a[],int n)
        {
            long fz=a[0];
            long fm=1;
            for(int m=1;m<n;m++)
            {
                fm=fm*a[m];
            }
            String result=simplify(fz,fm);
            for(int i=0;i<n-1;i++)
                System.out.print(a[i]+"/");
                System.out.print(a[n-1]+"="+result);
                System.out.println();
        }
        //分数化简
        public static String simplify(long fz,long fm)
        {
            int max=0;
            for(int i=0;i<100;i++)
            {
                
                int n=i+1;
                if(fz%n==0&&fm%n==0)
                    max=n;
            }
            return (String)(fz/max+"/"+fm/max);
        }
        //生成随机数
        public static int[] CreateRandom(int n,int max,int min)
        {
            int[] num=new int[n];
            for(int i=0;i<n;i++)
            {
                num[i]=min+(int)(Math.random()*(max-min));
            }
            return num;
        }
        //余数除法
        public static void ModDivide(int m,int n)
        {
            System.out.println(m+"÷"+n+"="+m/n+"余"+m%n);
        }
        //无余数除法
        public static void NoModDivide(int m,int n)
        {
            System.out.println(m+"÷"+n+"="+m/n);
        }
        
    }

    运行结果截图

    设计思路

    先根据算式数字多少生成随机数,再套用有关运算的方法,最终完成实验。我的程序不能完成括号和多种运算符的混合运算,以后我会继续改进。

    时间记录日志

    日期 开始时间 结束时间 中断时间 净时间 活动 备注 C U
    3.6  14:00 16:00   120分钟 软件工程概论 二柱子计算题第二弹    
    3.7                
    3.8 14:00 17:00 60分钟 120分钟 软件工程概论作业 二柱子计算题构建框架和方法    
    3.9                
    3.10 18:00 19:30   90分钟 软件工程概论作业 程序错误修改    
                     

    周活动总结表

      听课 编写程序 阅读课本 准备考试 总计
    周日          
    周一 50 60 40   150
    周二 50   50   100
    周三 50 70     120
    周四 50   50   100
    周五 50 40 50   140
    周六          
    周总结 250 170 190   610
  • 相关阅读:
    LA3523 二分图和点双连通分量的综合性质及证明
    LA4127计算几何+离散化+点覆盖
    LA 4728凸包算法-旋转卡壳的直径
    UVA 11168凸包+距离公式
    UVA 10652凸包+面的旋转
    UVA10969计算几何+交叉圆形成的圆弧长
    LA3485二分+求解积分方程+辛普森算法计算积分
    LA5009三分法
    UVA10341幂函数零点的通解分析
    UVA11524构造系数数组+高斯消元解异或方程组
  • 原文地址:https://www.cnblogs.com/clueless/p/6532746.html
Copyright © 2011-2022 走看看