Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了mini dc(选做)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_772_0@

概述

一、题目要求 提交测试截图和码云练习项目链接,实现Linux下dc的功能,计算后缀表达式的值 二、源代码 1.MyDC类 import java.util.StringTokenizer; import java.util.Stack; public class MyDC { /** constant for addition symbol */ private final ch
@H_673_10@

一、题目要求

提交测试截图和码云练习项目链接,实现Linux下dc的功能,计算后缀表达式的值

二、源代码

1.MyDC类

import java.util.StringTokenizer;
import java.util.Stack;

public class MyDC
{
    /** constant for addition symbol */
    private final char ADD = '+';
    /** constant for subtraction symbol */
    private final char SUBTRACT = '-';
    /** constant for multiplication symbol */
    private final char MULTIPLY = '*';
    /** constant for division symbol */
    private final char DIVIDE = '/';
    /** the stack */
    private Stack<Integer> stack;

    public MyDC() {
        stack = new Stack<Integer>();
    }

    public int evaluate (String expr)
    {
        int op1,op2,result = 0;
        String token;
        StringTokenizer tokenizer = new StringTokenizer (expr);

        while (tokenizer.hasMoreTokens()) {
            token = tokenizer.nextToken();
            //如果是运算符,调用isOperator
            if (isOperator(token)==truE) {
                op2=stack.pop();//从栈中弹出操作数2
                op1=stack.pop();//从栈中弹出操作数1
                result=evalSingLeop(token.charAt(0),op1,op2);//根据运算符和两个操作数调用evalSingLeop计算result;
                stack.push(result);//计算result入栈;
            }
            else//如果是操作数
            {
                stack.push(Integer.parseInt(token));//操作数入栈;
            }

        }

        return result;
    }


    private Boolean isOperator (String token)
    {
        return ( token.equals("+") || token.equals("-") ||
                token.equals("*") || token.equals("/") );
    }

    privatE int evalSingLeop (char operation,int op1,int op2)
    {
        int result = 0;

        switch (operation)
        {
            case ADD:
                result = op1 + op2;
                break;
            case SUBTRACT:
                result = op1 - op2;
                break;
            case MULTIPLY:
                result = op1 * op2;
                break;
            case DIVIDE:
                result = op1 / op2;
        }

        return result;
    }
}

2.MyDCTest类

import java.util.ScAnner;

public class MyDCTest  {

    public static void main (String[] args) {

        String expression,again;

        int result;

        try
        {
            ScAnner in = new ScAnner(system.in);

            do
            {
                MyDC evaluator = new MyDC();
                System.out.println ("Enter a valid postfix expression: ");
                expression = in.nextLine();

                result = evaluator.evaluate (expression);
                System.out.println();
                System.out.println ("That expression equals " + result);

                System.out.print ("Evaluate another expression [Y/N]? ");
                again = in.nextLine();
                System.out.println();
            }
            while (again.equalsIgnoreCase("y"));
        }
        catch (Exception IOException)
        {
            System.out.println("Input exception reported");
        }
    }
}

三、运行截图

mini dc(选做)

码云链接

大佬总结

以上是大佬教程为你收集整理的mini dc(选做)全部内容,希望文章能够帮你解决mini dc(选做)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:dcmini