5.1封装


public class test1 {public static void methodA(int n,double a[],char c[]){//封装的类,传递的参数   n是运算符的个数   a是数字数组   c是符号数组
        
        int i,j;
        if(n==0) //运算个数为0,进行阶乘
        {
            for(i=(int) a[0];i>1;i--)
            {
                System.out.println(i);
                System.out.println(a[0]);
                a[0]=a[0]*(i-1);
            }


        }
        /*下面这部分是对算式进行解析并且进行四则运算*/
        else{
            for(i=0;i<=n;i++)
            {
                if(c[i]=='*')
                {
                    a[i]=a[i]*a[i+1];
                    for(j=i;j<n;j++) 
                    {
                        a[j+1]=a[j+2];
                        c[j]=c[j+1];
                    }
                    i=0;
                    n--;
                
                }
                if(c[i]=='/')
                {
                    a[i]=a[i]/a[i+1];
                    for(j=i;j<n;j++) 
                    {
                        a[j+1]=a[j+2];
                        c[j]=c[j+1];
                    }
                    i=0;
                    n--;
            
                }
            }
            for(i=0;i<=n;i++)
            {
                if(c[i]=='+')
                {
                    a[i]=a[i]+a[i+1];
                    for(j=i;j<n;j++) 
                    {
                        a[j+1]=a[j+2];
                        c[j]=c[j+1];
                    }
                    i=0;
                    n--;
                
                }
                if(c[i]=='-')
                {
                    a[i]=a[i]-a[i+1];
                    for(j=i;j<n;j++) 
                    {
                        a[j+1]=a[j+2];
                        c[j]=c[j+1];
                    }
                    i=0;
                    n--;
                }
            }
        }
    }
}


 

上面这一部分是算法的封装。 

public class test {
    public static void main(String[] args) {
        int n=2;
        double []a=new double [10];
        a[0]=1;
        a[1]=2;
        a[2]=7;char []c=new char [10];
        c[0]='+';c[1]='*';
        test1 core = new test1();
        core.methodA(n, a, c);
            System.out.println(a[0]);
    }
}

这一部分是主函数,为了方便我把输入的过程省略了,改为直接赋值。

小伙伴:陈俊金,博客:http://www.cnblogs.com/cjj19/

原文地址:https://www.cnblogs.com/ZHL-Dragon/p/4468593.html