前言:想要寫出一篇引人入勝的文章?我們特意為您整理了Web在線編譯環境設計分析范文,希望能給你帶來靈感和參考,敬請閱讀。
1系統設計
實現用戶與遠程軟件工具的交互主要是使用重定向技術實現。操作系統Shell環境中支持輸入輸出重定向,用符號"<"和">"來表示。0、1和2分別表示標準輸入STDIN、標準輸出STDOUT和標準錯誤STDERR信息輸出,可以用來指定需要重定向的標準輸入或輸出,比如2>error.txt表示將錯誤信息輸出到文件error.txt中。又比如用ls命令時,本來是查看目錄內容,而用了重定向">"后可以直接把屏幕輸出寫入一個文件中,再到文件里去看結果。輸入也是一樣,可以把輸入重定向到一個文件里,重定向操作符可以用來將命令輸入和輸出數據流從默認位置重定向到其他位置,其輸入或輸出數據流的位置稱為句柄;常見的句柄有三種,即:標準輸入、標準輸出和標準錯誤。
2系統實現
2.1用戶界面實現
用戶界面主要包括頁面功能導航區域、編輯與提交區域和處理結果顯示區域。在三個區域所在的web頁中,使用頁內框架<ahref=”javaPro.html”target=”EditFrame”>…</a>鏈接Java程序的編輯頁面javaPro.html和顯示位置EditFrame。<formaction="Process.ch"target="ResultFr"><textAreaname="JAVACODE"></textArea><inputtype="submit"value="submit"></form>在上面HTML代碼片段中,<textArea>標注編輯代碼的文本區域,<form>標簽的action屬性值Process.ch為處理提交代碼的服務器端程序,target屬性值表明處理結果顯示在name屬性值為ResultFrame的框架。
2.2中間件實現
網絡中間組件Process.ch是一個使用C語言編classCRequestreq;//Ch-CGI包提供char*value=NULL;value=Req.getForm("JAVACODE");//讀取FILE*fp;if(fp=fopen("Main.java","w"))fprintf(fp,"%s\n",value);//代碼寫入文件fclose(fp);system("javacMain.java2>javaCResult.txt1>&2");system("javaMain<in.txt1>javaRResult.txt2>&1");以上代碼中最后兩行分別表示編譯Java程序并將編譯輸出重定向到javaCResult.txt文件和解釋運行Java程序,其中文件in.txt中為運行時所需要的輸入數據,輸出結果重定向到文件javaRResult.txt。
3實驗
3.1Java程序測試
如圖4所示,我們將源程序編輯區域,程序運行時的數據輸入和運行結果顯示區域都集成在一個Web頁面中,這種透明設計類似桌面系統的集成開發環境。選擇Java程序后,完成程序編輯并輸入數據后提交,在網頁的底部區域顯示三個超鏈接,分別是鏈接源代碼文件、編譯結果文件、運行結果文件。在輸出區域顯示運行結果;若程序有誤,例如將輸出語句中的分號去掉,則通過“Compiling…”超鏈接查看編譯錯誤提示,編譯通過則超鏈接看到的為空。
3.2實驗環境
實驗服務器端系統為WindowsServer2008,使用IIS(InternetInformationServer)提供Web服務器功能,同時安裝Ch專業版作為Ch腳本運行環境。網絡中間組件是使用C語言編寫的Ch腳本,它在C/C++的解釋計算環境Ch中執行。Ch-CGI工具包與Web服務器的無縫集成,實現了客戶端與服務器的交互。安裝JDK1.7提供Java程序的編譯器與解釋器等工具。
4結束語
Web系統擴展了計算的環境,方便了大眾。基于Web的在線式編譯環境是對傳統集成開發環境的有利擴展,它在改變軟件使用模式的同時,也改變了軟件的設計模式,軟件由一種商品轉變為一種服務。在線式、共享性、方便性、成本低等眾多優點是基于Web的系統的優點。該系統可以為編程學習者提供一個簡單方便的編程開發環境,實現即上網即使用的共享使用,通過題目設計的擴展,可進一步設計為一個在線式判定系統。
作者:梅剛 林齡 潘峰 單位:貴州民族大學預科教育學院 貴州民族大學理學院 貴州民族大學信息