java程序设计-算术表达式的运算
1、团队课程设计博客链接
洪亚文博客链接:http://www.cnblogs.com/201521123065hyw/
郑晓丽博客链接:http://www.cnblogs.com/zxl3066/
2、个人负责模块或任务说明
负责模块:运算符号的优先级比较,测试各种情况,以及计算各种运算符的结果函数;
3、自己的代码提交记录截图
private static double Calculate(ArrayList<Double> value, String c,
double num) {// 三角函数的计算(包括平方立方根)
// TODO Auto-generated method stub
// 如果遇到左括号,则直接返回当前数,例如(5)
if (c.equals("(")) {
return num;
}
if (c.equals("sin")) {
return Math.sin(num * Math.PI / 180);
} else if (c.equals("cos")) {
return Math.cos(num * Math.PI / 180);
} else if (c.equals("^")) {
return Math.pow(value.remove(value.size() - 1), num);
} else if (c.equals("+")) {
return num + value.remove(value.size() - 1);
} else if (c.equals("-")) {
return value.remove(value.size() - 1) - num;
} else if (c.equals("*")) {
return value.remove(value.size() - 1) * num;
} else
return value.remove(value.size() - 1) / num;
}
private static int compare(String a, String b) {// 值为1入栈
// TODO Auto-generated method stub
if (a.equals(b) || (a.equals("+") && b.equals("-"))
|| (a.equals("-") && b.equals("+"))
|| (a.equals("*") && b.equals("/"))
|| (a.equals("/") && b.equals("*"))) {
return 0;
} else if (b.equals("(")) {
return 1;
} else if ((a.equals("*") || a.equals("/") && !b.equals("("))) {
return 1;
} else if ((a.equals("*") || a.equals("/"))
&& (b.equals("+") || b.equals("-"))) {
return 1;
} else if (a.equals("^")
&& (b.equals("+") || b.equals("-") || b.equals("*") || b
.equals("/"))) {
return 1;
} else {
return 0;
}
}


4、自己负责模块或任务详细说明
计算函数:加减乘除还有幂方直接进行栈顶和当前数值的计算;三角函数则只需要将符号和一个数值弹出并计算。
比较函数:同级之间的运算符直接进行计算,因此返回0;
左括号一定入栈;
符号栈中左括号出现在乘除要将符号入栈,返回1。
5、课程设计感想
1、需要考虑的情况太多,还要分别考虑三角函数与平方立方的运算符
2、Math函数的原因导致后面结果会出现**.99999999这样的情况,需要格式化;
3、还有欠缺考虑的是三角函数后面紧跟括号的情况,会继续改进。
java程序设计-算术表达式的运算的更多相关文章
- java实现算术表达式求值
需要根据配置的表达式(例如:5+12*(3+5)/7.0)计算出相应的结果,因此使用java中的栈利用后缀表达式的方式实现该工具类. 后缀表达式就是将操作符放在操作数的后面展示的方式,例如:3+2 后 ...
- [Java]将算术表达式(中序表达式Infix)转成后续表达式Postfix
Inlet类: package com.hy; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...
- [Java]分解算术表达式二
源码: package com.hy; import java.io.BufferedReader; import java.io.IOException; import java.io.InputS ...
- [Java]分解算术表达式一
源码: package com.hy; import java.io.BufferedReader; import java.io.IOException; import java.io.InputS ...
- Linux - Shell - 算术表达式 - 算数运算
概述 shell 中基于 $(()) 的 算数运算 背景 复习 shell 脚本 凑数吧 准备 环境 os centos7 1. 算数运算 代码 #!/bin/bash # $(()) 的数学运算, ...
- 利用栈实现算术表达式求值(Java语言描述)
利用栈实现算术表达式求值(Java语言描述) 算术表达式求值是栈的典型应用,自己写栈,实现Java栈算术表达式求值,涉及栈,编译原理方面的知识.声明:部分代码参考自茫茫大海的专栏. 链栈的实现: pa ...
- K:双栈法求算术表达式的值
相关介绍: 该算法用于求得一个字符串形式的表达式的结果.例如,计算1+1+(3-1)*3-(21-20)/2所得的表达式的值,该算法利用了两个栈来计算表达式的值,为此,称为双栈法,其实现简单且易于理 ...
- [Java]算术表达式求值之二(中序表达式转后序表达式方案,支持小数)
Inlet类,入口类,这个类的主要用途是验证用户输入的算术表达式: package com.hy; import java.io.BufferedReader; import java.io.IOEx ...
- [Java]算术表达式求值之一(中序表达式转后序表达式方案)
第二版请见:https://www.cnblogs.com/xiandedanteng/p/11451359.html 入口类,这个类的主要用途是粗筛用户输入的算术表达式: package com.h ...
随机推荐
- 设计模式(3)--FactoryMethod( [2] 工厂方法模式)--创建型
1.模式定义: 工厂方法是针对每一种产品提供一个工厂类.通过不同的工厂实例来创建不同的产品实例. 2.模式特点: (1)工厂方法模式去掉了简单工厂模式中工厂方法的静态属性,使得它可以被子类继承. (2 ...
- SQL 三种基本Join
Join是关系型数据库系统的重要操作之一,SQL常用Join:内联接.外联接和交叉联接等. 这里讨论一下这常用的三种连接. 测试环境:db2 v10.1, linux 表定义: --用户 CREATE ...
- 【转】WEB网站常见受攻击方式及解决办法
一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是 ...
- HTML-CSS相关(2)
[CSS常用文本属性] 1,字体.字号类: ① font-weight:字体粗细. bold-加粗 noemal-正常 lighter-细体 也可以使用100-900数值,400表示normal,70 ...
- windows和linux下关闭Tomcat进程
windows和linux下解决Tomcat进程 windows下启动Tomcat报错,8080端口号被占用,报错信息如下 两种解决方法,一种是关闭了这个端口号,另外一种是修改Tomcat下的serv ...
- Linux基础教程
Linux基础教程之<Linux就该这么学>之学习笔记第一篇... ========================= 一.Basic Linux Commands 基本的Linux ...
- Win7电脑桌面的Administrator图标没了怎么办
Win7电脑桌面的Administrator图标没了怎么办.. win7电脑桌面的Administrator图标没了,怎么办?在桌面空白处右键选择个性化,进入个性化之后,左边栏选择“更改桌面图标”勾选 ...
- WeQuant交易策略—KDJ
KDJ随机指标策略策略介绍KDJ指标又叫随机指标,是一种相当新颖.实用的技术分析指标,它起先用于期货市场的分析,后被广泛用于股市的中短期趋势分析,是期货和股票市场上最常用的技术分析工具.随机指标KDJ ...
- WeQuant交易策略—EMA指标
策略名称:EMA指标策略关键词:指数移动平均.双均线.动态止损.方法:1)用快慢两条指数移动平均线的交叉作为买入卖出信号:2)快线自下而上穿过慢线,买入:自上而下穿过慢线,卖出:3)持仓期间计算净值的 ...
- JEasyPoi 2.1.4 (Jeecg订制) 版本发布,Excel 和 Word 简易工具类
JEasyPoi 2.1.4 (jeecg订制)版本发布,EasyPoi Excel 和 Word 简易工具类 easypoi 功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 ...