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

  • 大小: 348KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-10-30
  • 語言: Java
  • 標簽: 中綴表達??

資源簡介

編譯原理實驗一 1) 實現一個完整的 Java 程序,它讀取文件中的中綴表達式(每個表達式以分號結束,文件中可以有多個表達式)并轉換為等價的后綴表達式后輸出到屏幕上。表達式中的運算量可以是任意整數或者小數,支持加、減、乘、除、取負運算以及小括號,表達式中的空格、制表符等空白符號可以被忽略。若用戶輸入的表達式有誤,則提示用戶錯誤的位置。譬如兩個運算量之間缺少運算符、或運算符缺少左(或右)運算量等。錯誤處理功能的最低要求是當輸入表達式有錯時,給出一個報錯信息,提示錯誤的位置和類別。學有余力的學生還可考慮嘗試如何實現出錯恢復(Error Recovery),即當程序發(fā)現一個錯誤時不是立馬停下來,而是能夠從跌倒的地方爬起來,繼續(xù)分析下去,從而一次運行即可發(fā)現更多的錯誤。 2)為以上的 Java 程序提供一個隨機測試數據發(fā)生器(用 Java 語言來寫),生成若干隨機的正確表達式和不正確表達式(通過命令行參數決定是生成正確的還是不正確的以及生成的數量)。生成的測試數據要求寫入文件,可以被 1)中的程序讀取

資源截圖

代碼片段和文件信息

/**
*20152101033
*裴文君
**/

import?java.util.Stack;
import?java.util.regex.Pattern;

public?class?change{

????private?change()?{
????}

????public?static?int?error(String?infix)?{
????????int?error=0;
????????int?length?=?infix.length()+1;
????????int?k=0;
????????int?num=0;
????????int?n=0;
????????int[]?a=new?int?[length];
????????for?(int?i?=?0;?i????????? a[i]=0;
????????}
????????for?(int?i?=?0;?i?????????{
????????????Character?temp;
????????????char?c?=?infix.charAt(i);
????????????switch?(c)?{
????????????//?忽略空格
????????????case?‘?‘:
????????????????break;
????????????//?碰到‘(‘,push到棧
????????????case?‘(‘:
????????????????n++;k++;num=0;
????????????????temp=infix.charAt(i+1);
????????????????
????????????????if(temp>=‘0‘&&temp<=‘9‘)?n++;
????????????????else?if(temp!=‘(‘){a[n]=1;}
????????????????int?p=i+1;?Boolean?b=false;
????????????????while(p????????????????{
???????????????? if(infix.charAt(p)==‘+‘||infix.charAt(p)==‘-‘||infix.charAt(p)==‘*‘||infix.charAt(p)==‘/‘)
???????????????? ????{b=true;}
???????????????? p++;
???????????? }
????????????????if(!b)?{a[n]=2;}?
????????????????break;
????????????//?碰到‘+‘‘-‘,將棧中所有運算符彈出,送到輸出隊列中
????????????case?‘+‘:
????????????case?‘-‘:
????????????case?‘*‘:
????????????case?‘/‘:
???????????? if(num!=1&&n==0)?{a[n]=1;}
???????????? n++;
???????????? if(i+1>=length-1)?a[n]=1;
???????????? else?
???????????? {temp=infix.charAt(i+1);
???????????? if(temp>=‘0‘&&temp<=‘9‘)?n++;
???????????? else?if(temp!=‘(‘)?{a[n]=1;}
???????????????? ?
???????????? }
???????????? num=0;
????????????????break;
????????????//?碰到‘*‘‘/‘,將棧中所有乘除運算符彈出,送到輸出隊列中
????????????
????????????//?碰到右括號,將靠近棧頂的第一個左括號上面的運算符全部依次彈出,送至輸出隊列后,再丟棄左括號
????????????case?‘)‘:
????????????????n++;k--;
????????????????if(i+1????????????????{temp=infix.charAt(i+1);
???????????? if(temp>=‘0‘&&temp<=‘9‘||temp==‘(‘)?{a[n]=2;}}
???????????? num=0;
????????????????break;
????????????//如果是數字,直接送至輸出序列
????????????default:
????????????????if(num==0)?num=1;
????????????????if(i+1????????????????{temp=infix.charAt(i+1);
????????????????if(temp==‘(‘){a[n]=1;}
????????????????}
????????????????break;
????????}
????????????
????????}
???????
????????if(k!=0)?{System.out.println(“括號不匹配“);error++;}
????????
????????for?(int?i?=?0;?i????????? int?kk=i+1;
???????? if(a[i]==1)??
???????? {
???????? if(i==0)?
???????? {System.out.println(“第1個字符前缺少運算量“);error++;}
???????? else?
???????? {System.out.println(“第“+kk+“個字符后缺少運算量“);error++;}
???????? }
???????? else?if(a[i]==2)
???????? {System.out.println(“第“+kk+“個字符后缺少運算符“);error++;}
????????
????????}
????????return?error;
????}
????//方法:中綴表達式轉成后綴表達式
????public?static?String?infixToSuffix(String?infix)?{
????????Stack?stack?=?new?Stack();
????????String?suffix?=?““;
????????int?length?=?infix.length();
????????for?(int?i?=?0;?i?????????????Character?temp;
?????????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-08?16:15??實驗一\
?????文件??????378368??2018-04-08?16:15??實驗一\design.doc
?????文件???????????0??2018-04-08?16:14??實驗一\readme.txt
?????目錄???????????0??2018-04-08?16:14??實驗一\編譯與運行腳本\
?????目錄???????????0??2018-04-08?16:14??實驗一\編譯與運行腳本\doc\
?????文件?????????620??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\allclasses-frame.html
?????文件?????????600??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\allclasses-noframe.html
?????文件????????7875??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\change.html
?????目錄???????????0??2018-04-08?16:14??實驗一\編譯與運行腳本\doc\class-use\
?????文件????????3769??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\class-use\change.html
?????文件????????3747??2018-03-15?15:12??實驗一\編譯與運行腳本\doc\class-use\Test.html
?????文件????????3523??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\constant-values.html
?????文件????????3510??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\deprecated-list.html
?????文件????????8062??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\help-doc.html
?????文件????????2696??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\index.html
?????目錄???????????0??2018-04-08?16:14??實驗一\編譯與運行腳本\doc\index-files\
?????文件????????4031??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\index-files\index-1.html
?????文件????????4113??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\index-files\index-2.html
?????文件????????4129??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\index-files\index-3.html
?????文件????????4085??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\index-files\index-4.html
?????文件????????4506??2018-03-15?15:12??實驗一\編譯與運行腳本\doc\index-files\index-5.html
?????文件????????4348??2018-03-15?15:12??實驗一\編譯與運行腳本\doc\index-files\index-6.html
?????文件????????3728??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\overview-tree.html
?????文件?????????724??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\package-frame.html
?????文件???????????1??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\package-list
?????文件????????3895??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\package-summary.html
?????文件????????3735??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\package-tree.html
?????文件????????3593??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\package-use.html
?????文件?????????827??2018-03-15?15:13??實驗一\編譯與運行腳本\doc\script.js
?????文件???????12842??2018-03-15?11:46??實驗一\編譯與運行腳本\doc\stylesheet.css
?????文件????????8474??2018-03-15?15:12??實驗一\編譯與運行腳本\doc\Test.html
............此處省略5個文件信息

評論

共有 條評論