我需要帮助创建一个程序,该程序将使用标准代数格式接受数学表达式作为用户的输入

问题描述 投票:0回答:1
我正在创建一个程序,它将使用标准代数格式接受用户输入的数学表达式。

方程中的数字(N)可以是正数或负数。即:3 / -25。它们也可以是任何有效的数值,例如 -3.1415 等。

允许用户根据需要多次重复输入表达式。程序不能因为用户输入不当而失败,因此,您必须捕获错误异常并处理它们。

我的错误是; 线程“main”java.lang.Error 中出现异常:未解决的编译问题: 标记上的语法错误、结构错误 StackInterface 类型已经定义 无法实例化 StackInterface 类型 StackInterface 类型的方法 push(double) 未定义 StackInterface 类型的 pop() 方法未定义

有什么建议吗?


    包堆栈;
    导入java.util.ArrayList;
    导入java.util.List;
    导入 java.util.EmptyStackException;
    导入java.util.Scanner;

    公共类堆栈接口{
            私有列表堆栈;
        私有对象顶部;
        私有节点链接;

     公共堆栈接口()
      {
        顶部=空;
            this.link = null;
      }
    
    私人无效推(双数字){
        // 创建新节点 temp 并分配内存
                节点温度 = new Node();

                // 检查堆栈(堆)是否已满。然后插入一个
                // 元素会导致堆栈溢出
                如果(温度==空){
                    系统.out.print("
堆溢出”);
                    返回;
                }

                // 将数据初始化到临时数据字段中
                num = temp.getNodeType();

                // 将顶部引用放入临时链接
                //温度=顶部;

                // 更新顶部引用
                顶部=温度;
        
    }
    
    // 检查堆栈是否为空的实用函数
        公共布尔 isEmpty()
        {
            返回顶部==空;
        }

        // 返回栈顶元素的实用函数
        公共 int peek()
        {
            // 检查堆栈是否为空
            如果(!isEmpty()){
                返回(双)顶部;
            }
            别的 {
                System.out.println("堆栈为空");
                返回-1;
            }
        }

    私人无效双重弹出(){
        // 检查堆栈下溢
                如果(顶部==空){
                    系统.out.print("
堆栈下溢");
                    返回;
                }
                        别的{
                //更新top指针指向下一个节点
                    顶部=链接;
                        }
                        返回(双)顶部;
    }
        公共静态双evaluateMathExpression(字符串表达式){
            StackInterfacenumStack= new StackInterface();
            OperatorStack opStack = new OperatorStack();
            整数 i = 0;

            同时(我
java compiler-errors stack
1个回答
0
投票

您正在尝试用java制作解析器,我认为这可能对您有帮助http://cogitolearning.co.uk/2013/04/writing-a-parser-in-java-the-tokenizer/

© www.soinside.com 2019 - 2024. All rights reserved.