




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于tcp/ip的網絡計算器肖宇鋒 s1010w138 景一鳴 s09102071 宛金林 s1010w121設計內容:本程序是用java實現的基于tcp/ip的c/s模式的網絡計算器,首先在客戶 端輸入一個字符串形式的算術表達式,通過tcp/ip套接字,在主機和internet 之間建立可靠的、雙向的、持續(xù)的、點對點的流式連接,把該字符串傳給服務器 端,服務器端對字符串進行分解轉換,計算出結果,又把結杲以字符串的形式傳 回客戶端進行顯示,完成運算。程序:客戶端建立套接字傳輸輸入的字符形式的算術表達式if(str != null && !str巳qualsw)chatconte
2、nt append ("表達式:m+ str +"nh);tryoutwriteutf(sentencegettext();catch(exception e)chatcontent. append ("月艮務器沒有啟動.n”);elsechatcontent. append ("表達示不能為空nn);服務器端建立套接字接收由客戶端傳過來的文本,并將結果傳回客戶端trytheclient = server.accept();out = new dataoutputstream(theclientgetoutputstream(); in = new da
3、tainputstream(theclient getinputstream(); done = true;string line = null;while(done)while(line = in.readutf()!= null)chatcontent. append (”運算表達示為:"+ line+" n"); result = calculate.sizeyunsuan(line); thread.sleep(1000);chatcontent. append (" + result +nnh );try/得到結果后,建立套接字,將結果傳回客戶
4、端out .wzriteutf (result);catch(exception el) chatcontent append ("客丿'協(xié)sj彳從存在 n”);inclose();outclose(); theclient.close();catch(exception e)chatcontent.append(n + theclient.getinetaddress() +")已經離開.n”);對文本進行分解轉換計算,得到最終的結果并轉換成字符串用于傳給客戶端public class calculate / * *兩個字符類型的小數進行相加為a+b;* para
5、m a* param b* return*/public static string addbigdecimal(string a, string b) double al = double p<arsedouhde (a);double bl = doubleb);bigdecimal a2 = bigdecimal.valueof(al);bigdecimal b2 = bigdecimal.valueof(bl); bigdecimal c2 = a2.add(b2);string cl = c2 + u u;return cl;/ *兩個字符類型的小數進行相減為ab;* para
6、m a* param b* return*/public static string reducebigdecimal(string a, string b) double al = double p<arsedoujb2e (a);double bl = double.porsedouble(b);bigdecimal a2 = bigdecimal.valueof(al);bigdecimal b2 = bigdecimal va丄ueof (bl);bigdecimal c2 = a2.subt:ract(b2);string cl = c2 + n 11 ;return cl;*
7、 param a* param b* return*/public static string multipliedstring(string a, string b) double al = double.parsedouble(a);double bl = double.parsedouble(b);bigdecimal a2 = bigdecimalvalueof(al);bigdecimal b2 = bigdecimal.valueof(bl);bigdecimal c2 = a2multiply(b2);string cl = c2 + h h;return cl;/ * *兩個字
8、符類型的數相除a/b=c;* param a* param b* return*/publie static string dividestring(string a, string b) double al = double.parsedouble(a); double bl = double.parsedouble(b);bigdecimal a2 = bigdecimal. valueof (a.1);bigdecimal b2 = bigdecimal.valueof(bl);bigdecimal c2 = a2 divide(b2,a2 scale();string cl = c2
9、+ n u;return cl;public static string yunsuanj ibie(string s) string r = n h;int p = 0;for (int i = 0; i v s.length(); i+) * iif (s. charat (i) = 1 + 1 | | s . charat (i) = ' - ' | | s . charat (i) | | s.charat(i) = 1 / 1 )p+;string k = new string 2 * p + 1;int kl = 0;int first = 0;for (int i
10、 = 0; i < slength(); i+)if (s . charat (i) = 1 + 1 | | s . charat (i)=| | s . charat (i)| | s.charat(i) = 1 / 1 ) kkl = s.substring(first, i);/數kl + + ;k kl = "" + s . charat (i) ;/符號kl + + ;first = i + 1;k kl = s substring(first, s.length();int kp = p;while (kp > 0)for (int i = 0; i
11、 < k.length; i+)if (k i .equals("*")| | ki .equals("/")int 1 ;for (1 = i - 1; 1 > -1; 1-)if (! (k 1 .equals("p")break;int q;for (q = i + 1; q < k.length; q+)if (! (k 1 .equals("p")break;if (k i .equals("*")k i = '* "+ multipliedstri
12、ng(kl ,kq);k1= "p";kq = "p" kp; else k i = "'' +dividestring (kl ,kq);k 1 = "p"kq = "p" kp- -;break;for (int i = 0; i < 2 * p + 1; i+)if (ki.equals("+")| ki.equals("-")int 1;for (1 = i - 1; 1 > -1; 1-)if (! (k 1 .equals(&
13、quot;p")break;int q;for (q = i + 1; q < k.length; q+)if (!(kq.equals("p") break;if (k i .equals(" +")k i = 11 h +addbigdecimal (k 1 , k q);k 1= ''p1'kq = "p"kp_; else ki = "h +reducebigdecimal(k1 ,k q);k 1= ''p1';kq = "p"kp
14、_;break;for (int i = 0; i < k.length; i+)if (! (k i .equals("p")r = k i;break;return r;publie static string sizeyunsuan(string s) /string backresult;while (true) int first = 0;int last = 0;for (int i = 0; i < s.length(); i+)if (s.charat(i) = '(1)first = i;if (s.charat(i) = ')
15、')last = i;break;if (last = 0)/system out.println(yunsuanj ibie(s);return yunsuanjibie(s); else string si = s.substring(0, first);string s2 = s.substring(first + 1, last);string s3 = ssubstring(last + 1, s.length();s = si + yunsuanj ibie(s2) + s3;客戶端接收來自服務器端傳回的結果,并表示出來tryclient = new socket (11
16、localhosth, 3014 );in = new datalnputstream (client getlnputsstreqm (); out = new dataoutputstream(client.getoutputstream(); done = false;string line = null; while(!done)while(line = in.readutf()!= null)chatconten匸.append("結杲:m + line + hnm); if(line.equals(hbyen)string msg = ”服務器發(fā)來結束通信命令n" msg += “系統(tǒng)將在您確認此對話框8秒后關閉
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新員工入職產品手冊
- 世界地圖集各樣民族故事讀后感
- 企業(yè)風險評估報告表
- 企業(yè)員工績效獎勵激勵制度實施協(xié)議
- 汽車銷售排行榜
- 市場營銷活動效果評估與優(yōu)化實戰(zhàn)指南
- 環(huán)衛(wèi)公司勞動合同書
- 高分子化學與材料合成考試要點解析
- 中小學生國學經典故事解讀
- 酒店業(yè)投資經營與股權轉讓協(xié)議
- 《中醫(yī)體重管理臨床指南》
- 科技小院在鑄牢中華民族共同體意識中的作用及路徑
- 課題申報參考:生成式人工智能對大學生思想認知的沖擊與應對研究
- 2025年小學課間操量化檢查制度(2篇)
- 2022國家供暖規(guī)定法規(guī)
- 【歷史】三國兩晉南北朝時期的科技與文化(課件) 2024-2025學年七年級歷史上(部編版2024)
- 2025年園林綠化工(高級)考試題庫及答案
- 2024春四年級上下冊音樂測試專項測試題及答案
- 多發(fā)傷骨折護理查房
- 中建二測考試題庫及答案
- 華東師范大學《外國人文經典(下)》2021-2022學年第一學期期末試卷
評論
0/150
提交評論