91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-09
  • 語言: 其他
  • 標簽: 括號運算??

資源簡介

1)有運算優先級(括號最先,乘方次之,乘除再次之,加減最后等) 2)思路:按運算優先級將數學式子步步化簡 3)數學式子用字符串存儲,負數用中括號[]括起來表示,如:[-93]

資源截圖

代碼片段和文件信息

package?Calculator;

/*
?*?數學計算類
?*?負責數學式子(不包含“=“號)的數學運算有運算優先級(括號最先乘方次之乘除再次之加減最后等)
?*?思路:按運算優先級將數學式子步步化簡
?*?數學式子用字符串存儲負數用中括號[]括起來表示如:[-93]
?*?(測試通過)
?*/
public?class?Calculate
{
/*
?*?服務:數學運算方法--對外接口包括本地化數學式子格式、綜合加減乘除乘方和括號等運算(功能可擴展)
?*?參數:要進行運算的數學式子
?*?返回:運算的結果或出錯提示
?*?(測試通過)
?*/
public?String?calculate(String?formula)
{
String?result=““;
formula=formula.replace(“?“““);//去掉式子中的所有空格
//用小括號替換大括號
formula=formula.replace(‘{‘‘(‘);
formula=formula.replace(‘}‘‘)‘);
//用小括號替換中括號
formula=formula.replace(‘[‘‘(‘);
formula=formula.replace(‘]‘‘)‘);
result=matchRemoveBracket(formula);
if(result.startsWith(“錯誤“))return?result;
result=basicArithmetic(result);
System.out.println(“原式:“+formula);
System.out.println(“運算結果:“+result);
return?result;
}
/*
?*?服務:括號運算(包括括號匹對和去掉括號)從‘)‘離式子開頭最近的那一對括號開始
?*?參數:數學式子規定括號前后緊挨著的只能是運算符或為空而不能是數字如:
?*? 87(35+3)2????錯誤
?*? (-24)^2??????正確
?*? (23*34/(3*4))?????正確
?* 4/((-64)^3)????????正確
?*?返回:去掉所有括號的式子或出錯提示
?*?(測試通過)
?*/
private?String?matchRemoveBracket(String?formula)
{
System.out.println(“括號運算開始!“);
System.out.println(“括號運算:“+formula);
if(formula.isEmpty())return?“0“;
if(formula.startsWith(“錯誤“))return?formula;
int?leftright;
String?number=““;
left=formula.lastIndexOf(‘(‘);
right=formula.indexOf(‘)‘);
while(left!=-1||right!=-1)
{
if((left==-1&&right!=-1)||(left!=-1&&right==-1))
return?“錯誤--輸入錯誤:括號不匹配!“;
if(left>right)
{
left=formula.substring(0right).lastIndexOf(‘(‘);
if(left==-1)return?“錯誤--輸入錯誤:括號不匹配!“;
}
if(left!=0){
//規定括號前后緊挨著的只能是運算符或為空
switch(formula.charAt(left-1))
{
case?‘+‘:case?‘-‘:case?‘*‘:case?‘/‘:case?‘^‘:case?‘(‘:break;
default:return?“錯誤--輸入錯誤:括號前后不能緊挨著數字!“;
}
}
if(right!=formula.length()-1){
switch(formula.charAt(right+1))
{
case?‘+‘:case?‘-‘:case?‘*‘:case?‘/‘:case?‘^‘:case?‘)‘:break;
default:return?“錯誤--輸入錯誤:括號前后不能緊挨著數字!“;
}
}
//計算括號里面的式子在此沒有括號嵌套“從‘)‘離式子開頭最近的那一對括號開始“保證了這一點
number=basicArithmetic(formula.substring(left+1right));
if(number.startsWith(“錯誤“))return?number;
if(number==“NaN“)return?“錯誤--運算錯誤!“;
if(Double.parseDouble(number)>=0)//基礎運算結果非負數
{
if(right==formula.length()-1)formula=formula.substring(0left)+number;
else?formula=formula.substring(0left)+number+formula.substring(right+1);
}
else//基礎運算結果為負數
{
if(right==formula.length()-1)formula=formula.substring(0left)+“[“+number+“]“;
else?formula=formula.substring(0left)+“[“+number+“]“+formula.substring(right+1);
}
if(formula.startsWith(“錯誤“))return?formula;
System.out.println(“括號運算:“+formula);
left=formula.lastIndexOf(‘(‘);
right=formula.indexOf(‘)‘);
}
System.out.println(“括號運算結束!“);
return?formula;
}
////////////////////////////////////////////基礎運算////////////////////////////////////////////
/*
?*?服務:基礎運算包括加減乘除乘方

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-01-13?03:17??Calculator\
?????文件???????11947??2013-01-12?20:33??Calculator\Calculate.java
?????文件????????3889??2013-01-12?09:34??Calculator\Calculator.java

評論

共有 條評論