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 ...
随机推荐
- getNextElement( )函数——获取下一个特定的元素节点
function getNextElement(node){ //定义getNextElement()函数 if (node.nodeType==){ //条件:如果node参数nodetype属性为 ...
- Vue内容分发slot
前面的话 为了让组件可以组合,需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 “transclusion” ).Vue实现了一个内容分发 API,参照了当前 Web ...
- IPV4/IPV6网络地址相关知识
IPv4地址:连接在Internet的每台主机(或路由器)都被分配了一个32bit的全球唯一的标识符,就是IP地址. IPv4地址的组成:网络号 + 主机号 IPv4地址的分类: A类地址:网络地址( ...
- bootstrap modal 弹出效果
window.showMsg = function (msg) { //显示悬浮窗 $("#autoCloseModal").modal("show") //设 ...
- Python输入函数 raw_input( ) 与 input()
一. raw_input() 在Python中,获取键盘输入的数据的方法是采用 raw_input 函数,那么这个 raw_input 怎么用呢? 注意: raw_input()的小括号中放入的是,提 ...
- 【Ubuntu 16】 wifi连接 并解决无桌面图标问题
笔记本上装了win10和ubuntu16双系统,ubuntu16有半年多没使用了,今天一登录成功后,没有桌面啦,一个干净的壁纸映入眼帘,真操蛋. 上网搜索后总结:应该是应用软件中心出了问题,可是,没法 ...
- Android笔记: ViewPager基本用法
ViewPager控件可以实现多个View(或fragment)滑动切换的效果,属于比较常用的控件.下面用一个简单的例子介绍一下该控件的基本用法. 首先是布局文件activity_view_pager ...
- SpringMVC的@RequestParam的解释
自SpringMVC4.2之后,RequestParam内部有4个参数: 1.String name 2.String value 3.boolean required 4.String defaul ...
- jquery的2.0.3版本源码系列(6):2880-3042行,回调对象,对函数的统一管理
目录 1 . 回调对象callbacks的演示 回调的使用有一点像事件绑定,先绑定好,等到有点击事件或者其他时就触发. <script src="js/jquery-2.0.3.js& ...
- 迈向angularjs2系列(1):typescript指南
typescript指南 前言 typescript是angularjs2推荐使用的脚本语言.它由微软2012年首次发布. 一. typescript和javascript的区别 1.从遵循的规 ...