资源简介
该图形化计算器用java编写,实现了浮点数+、-、*、/、括号等功能。

代码片段和文件信息
package newcalculator;
import java.util.Stack;
public class Calculate{
Stack wordOfAll= new Stack();
Stack wordOfOperate= new Stack();
Stack wordOfOperand= new Stack();
public boolean isNumber(char ch){
if(ch>=‘0‘&&ch<=‘9‘)
return true;
else
return false;
}
public boolean isOper(char ch){
if(ch==‘(‘||ch==‘)‘||ch==‘+‘||ch==‘-‘||ch==‘*‘||ch==‘/‘)
return true;
else
return false;
}
public boolean isNumber(String str){
return isNumber(str.charAt(0));
}
/*public float Char_To_Number(char ch){
return ch-‘0‘;//数字字符转为数字
}
public float strToFlaot(String strNumber){
float fSum=0;
int i=0;
float d=10;
while(i {
fSum=fSum*10+Char_To_Number(strNumber.charAt(i));
i++;
}
i++;
while(i {
fSum+=Char_To_Number(strNumber.charAt(i))/d;
d*=10;
i++;
}
return fSum;
}*/
protected boolean getAllWord(String str){
String word=new String();
Stack transitTack=new Stack();
for(int i=0;i
word+=str.charAt(i);
if(isNumber(str.charAt(i))){
char ch;
boolean isPointInclude=false;
while(i if(ch==‘.‘)
isPointInclude=true;
word+=ch;
}
if(i==str.length()-1&&(isNumber(ch=str.charAt(i))) )
i++;
}
else
if(isOper(str.charAt(i))){
i++;
}
else
return false;
try{
transitTack.push(word);
}catch(Exception e) {
System.out.println(e);
}
word=““;
}
wordOfAll.push(“#“);
while(!transitTack.isEmpty()){
wordOfAll.push(transitTack.pop());
}
return true;
}
public int toIndex(char ch){
if(ch==‘+‘)
return 0;
if(ch==‘-‘)
return 1;
if(ch==‘*‘)
return 2;
if(ch==‘/‘)
return 3;
if(ch==‘(‘)
return 4;
if(ch==‘)‘)
return 5;
if(ch==‘#‘)
return 6;
else
return -1;
}
public int compare(String strFirstString strSecond){
int arr[][]={{1 1 -1 -1 -1 1 1}
{1 1 -1 -1 -1 1 1}
{1 1 1 1 -1 1 1}
{1 1 1 1 -1 1 1}
{-1 -1 -1 -1 -100}
{1 1 1 1 1 1 1}
{-1-1-1-1-1-10}};
char chOne= strFirst.charAt(0);
char chTwo=strSecond.charAt(0);
return arr[toIndex(chOne)][toIndex(chTwo)];
}
protected String calculate(String str){
if(!getAllWord(str)){
return “input error!“;
}
String word=new String();
wordOfOperate.push(“#“);
while(wordOfAll.peek()!=“#“||wordOfOperate.peek()!=“#“){
word=wordOfAll.pop();
if(isNumber(word))
wordOfOperand.push(word);
else{
int compareResult=compare(wordOfOperate.peek()word);
if
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2012-03-25 12:29 Calculator\.classpath
文件 386 2012-03-25 12:29 Calculator\.project
文件 629 2012-04-09 19:55 Calculator\.settings\org.eclipse.jdt.core.prefs
文件 4481 2012-06-05 11:54 Calculator\bin\newcalculator\Calculate.class
文件 2980 2012-06-05 11:54 Calculator\bin\newcalculator\Calculator_Jfr
文件 4599 2012-04-24 12:26 Calculator\src\newcalculator\Calculate.java
文件 1736 2012-04-10 22:04 Calculator\src\newcalculator\Calculator_Jfr
目录 0 2012-06-05 11:54 Calculator\bin\newcalculator
目录 0 2012-03-25 17:24 Calculator\src\newcalculator
目录 0 2012-03-25 12:29 Calculator\.settings
目录 0 2012-06-05 11:54 Calculator\bin
目录 0 2012-03-25 12:30 Calculator\src
目录 0 2012-03-25 12:29 Calculator
----------- --------- ---------- ----- ----
15112 13
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论