精華區beta NTUE-CS100 關於我們 聯絡資訊
拐進程式碼叢林之前,先來想像一下 這支BigNum Class寫成之後應該會變啥樣子? 怎麼使用? 比如說要計算下面這個式子 ( 8888.168 + (-0.00004444)) * 5205201314 = ? 怎麼寫成程式呢? //-----------想像圖-------------------- BigNum n1 = new BigNum("8888.168"); BigNum n2 = new BigNum("-0.00004444"); BigNum n3 = new BigNum("5205203344"); n1.add( n2 ); //代表n1=n1+n2 n1.multiply( n3 ); //代表n1=n1*n3 System.out.print( "n1=" + n1.toString() ); //螢幕印出結果 //-----------想像結束-------------------- 如果能寫成這樣,那這隻BigNum就是一個用起來方便直覺的class了,對吧? 心中有了藍圖,我們就能開始規劃class的行為了 1. 首先建構子Constructor必須能把字串轉成科學記號法來儲存。 2. 支援四則運算 3. 可以用toString()把科學記號法轉回一般人熟悉的數字模樣。 //加入行為後的大數型態 class BigNum{ int sign; StringBuffer mantissa; int exp; //function BigNum(String input){} //Constructor建構子 public BigNum add ( BigNum input ) {} //加 public BigNum substract( BigNum input ) {} //減 public BigNum multiply ( BigNum input ) {} //乘 public BigNum divide ( BigNum input ) {} //除 public String toString(){} //印出數字 } 程式架構已經顯明,接下來就是實做內容啦! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.15.209 ※ 編輯: chchwy 來自: 203.68.15.209 (12/28 16:22) ※ 編輯: chchwy 來自: 203.68.15.209 (12/28 16:22)