• 20155330 第十一周课堂练习(20170503)


    20155330 第十一周课堂练习(20170503)

    一、代码检查-P74

    修改教材P74一行代码NineNineTable.java,让执行结果是个三角形:

    码云链接

    public class Nine {
        public static void main(String[] args) {
            for(int i=1;i<=9;i++){
                for (int j = 1; j <=i ; j++)
                {
                    System.out.printf("%d*%d=%2d	",i,j,i*j);
                }
                System.out.println();
            }
        }
    }
    

    二、迷你直流

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

    码云链接

    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)) {
                    op2 = (stack.pop()).intValue();
                    op1 = (stack.pop()).intValue();
                    result = evalSingleOp(token.charAt(0), op1, op2);
                    stack.push(new Integer(result));
                    //从栈中弹出操作数2
                    //从栈中弹出操作数1
                    //根据运算符和两个操作数调用evalSingleOp计算result;
                    //计算result入栈;
                } else
                    stack.push(new Integer(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;
                break;
            }
            return result;
        }
    }
    
    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");
            }
        }
    }
    
  • 相关阅读:
    Kubernetes实践踩坑系列(一).应用管理的难题
    基于Kubernetes服务发现机制的探讨Non Service
    Kubernetes中 Pod 是怎样被驱逐的?
    记一次JAVA进程导致Kubernetes节点CPU飙高的排查与解决
    .NET Core 3.0 可回收程序集加载上下文
    微服务日志之Spring Boot Kafka实现日志收集
    微服务日志之.NET Core使用NLog通过Kafka实现日志收集
    ASP.NET Core使用SkiaSharp实现验证码
    微软为.NET程序员带来了最优的跨平台开发体验-WSL
    讨论.NET Core 配置对GC 工作模式与内存的影响
  • 原文地址:https://www.cnblogs.com/ashin-kl/p/6804054.html
Copyright © 2020-2023  润新知