⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decimaltoken.java

📁 Java编写的表达式计算器, 即可以像我们书写表达式那样直接输入计算表达式, 程序自动进行运算, 支持加减乘除幂运算以及判断表达式如A?B C, 程序包含完整的Document和测试运行环境
💻 JAVA
字号:
package parser;


/**
 * 这个类用于综合整数,小数,指数部分形成一个数值类型的对象
 * @author zouhao
 */
public class DecimalToken extends Token{
	Integral i;
	Fraction f;
	Exponent e;
	double r;
        /**
         * 构造函数
         * @param ti 整数部分
         * @param tf 小数部分
         * @param te 指数部分
         */
	DecimalToken(Integral ti,Fraction tf,Exponent te)
	{
		type = "Decimal";
		i = new Integral(ti);
		f = new Fraction(tf);
		e = new Exponent(te);
		r = getValue();
	}
        /**
         * 构造函数
         * @param ti 整数部分
         */
	DecimalToken(Integral ti)
	{
		type = "Decimal";
		i = new Integral(ti);
		f = null;
		e = null;
		r = getValue();
	}
        /**
         * 构造函数
         * @param ti 整数部分
         * @param tf 小数部分
         */
	DecimalToken(Integral ti,Fraction tf)
	{
		type = "Decimal";
		i = new Integral(ti);
		f = new Fraction(tf);
		e = null;
		r = getValue();
	}
        /**
         * 构造函数
         * @param ti 整数部分
         * @param te 指数部分
         */
        DecimalToken(Integral ti,Exponent tf)
	{
		type = "Decimal";
		i = new Integral(ti);
		e = new Exponent(tf);
		f = null;
		r = getValue();
	}
        /**
         * 构造函数
         * @param t 直接用一个值初始化
         */
	DecimalToken(double t)
	{
		type = "Decimal";
		i = null;
		f = null;
		e = null;
		r = t;
	}
        /**
         * 获得此数值对象的值
         * @return 返回对象的值
         */
        public double getResult()
        {
            return r;
        }
        /**
         * 用于返回对象的值
         * @return 将值作为字符串类型返回
         */
        public String getToken()
        {
            return toString();
        }
        /**
         * 用于返回对象的值
         * @return 将值作为double类型返回
         */
	public double getValue()
	{
		if(f == null && e == null && i!=null)
		{
			r += i.getValue();
		}
		else if(f == null && i!=null && e != null)
		{
			r += i.getValue();
			if(e.isPositive())
				r *= e.getValue();
			else if(!e.isPositive())
				r /= e.getValue();
		}
                else if(e == null && i!=null && f != null)
                {
                        r += i.getValue() + f.getValue();
                }
		else if(i!=null && e != null && f!= null)
		{
			r += i.getValue() + f.getValue();
			if(e.isPositive())
				r *= e.getValue();
			else if(!e.isPositive())
				r /= e.getValue();
		}
		return r;
	}
	public String toString()
	{
		if(f == null && e == null)
		{
			return ""+i;
		}
		else if(e == null)
		{
			return ""+i+f;
		}
		return ""+i+f+e;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -