java模擬科學(xué)計算器課程設(shè)計_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  課程設(shè)計(論文)任務(wù)書</p><p>  題目 模擬科學(xué)計算器 </p><p>  專業(yè) 學(xué)號 姓名 </p><p><b>  主要內(nèi)容:</b></p><p>

2、  設(shè)計一個圖像界面的計算器用戶可以通過鼠標(biāo)點擊依次輸入?yún)⒓佑嬎愕臄?shù)值,進行加減乘除等混合運算。</p><p><b>  基本要求:</b></p><p>  能實現(xiàn)windows系統(tǒng)中的基本運算功能,能關(guān)閉窗口點擊按鈕會在顯示屏上輸出結(jié)果。</p><p>  完 成 期 限: &

3、lt;/p><p>  指導(dǎo)教師簽名: </p><p>  評審小組負(fù)責(zé)人簽名: </p><p>  年 月 日</p><p><b>  課程設(shè)計(論文)</b></p><p>

4、  設(shè)計(論文)題目: 模擬科學(xué)計算器 </p><p>  所 在 系 : </p><p>  專 業(yè) 名 稱 : </p><p>  學(xué) 生 姓 名:

5、 </p><p>  學(xué) 號: </p><p>  指 導(dǎo) 教 師: </p><p>  2011 年 12 月 15 日</p><p><b>  目 錄</b><

6、;/p><p><b>  引言2</b></p><p>  一、課程設(shè)計目的2</p><p><b>  二、需求分析3</b></p><p>  三、課程設(shè)計內(nèi)容3</p><p><b>  四、總體設(shè)計3</b></p>

7、<p>  4.1系統(tǒng)功能圖3</p><p>  4.2程序流程圖4</p><p><b>  4.3算法思路4</b></p><p><b>  4.4算法實現(xiàn)5</b></p><p><b>  4.5功能規(guī)劃5</b></p>

8、<p><b>  4.6總結(jié)不足5</b></p><p><b>  五、具體實現(xiàn)6</b></p><p><b>  5.1主界面6</b></p><p><b>  5.2界面說明6</b></p><p><b>

9、  5.3算法實現(xiàn)7</b></p><p><b>  六、運算演示10</b></p><p><b>  七、結(jié)束語12</b></p><p><b>  八、致謝13</b></p><p><b>  九、參考資料13</b&g

10、t;</p><p><b>  引言</b></p><p>  該程序是一個圖形界面的簡單的 java 計算器,使用人員能快捷簡單地進行 操作.即時準(zhǔn)確地獲得需要的計算的結(jié)果,充分降低了數(shù)字計算的難度和節(jié)約了 時間,對人們的生活有一定的幫助.可以進行簡單的四則運算(加,減,乘,除, 以及求倒數(shù),求相反數(shù)) ,有退格功能, 歸零 表示初始化,界面顏色為灰白,

11、該 程序支持鍵盤操作。</p><p>  隨著科學(xué)技術(shù)的不斷發(fā)展, 計算機已經(jīng)成為我們工作學(xué)習(xí)和生活中不可缺少 的工具.文本編輯器是個人計算機最司空見慣的應(yīng)用程序了,在學(xué)習(xí)了 Java 語 言之后,我決定使用 Java 語言編寫一個簡單的計算器,可以實現(xiàn)簡單的運算功 能,滿足日?;镜墓ぷ鲗W(xué)習(xí)和娛樂需要.</p><p>  Java 是由 Sun 公司開發(fā)的新一代純面向?qū)ο蟮木W(wǎng)絡(luò)編程語

12、言.其目標(biāo)是建 立一種在任意種機器, 任一種操作系統(tǒng)的網(wǎng)絡(luò)環(huán)境中運行的軟件, 實行所謂的 "程 序?qū)懸淮?到處運行"的目標(biāo).正因為如此,Java 已成為當(dāng)今 Internet 上最流 行,最受歡迎的一種程序開發(fā)語言.</p><p>  Java 開發(fā)小組把 Java 按特性分為基本版,移動版,企業(yè)版,每個版本有一 個軟件開發(fā)包. Java 基本版本叫 Java 2 標(biāo)準(zhǔn)版 (Java 2 S

13、tandard Edition,J2SE) , 它包含建立 Java 應(yīng)用程序或者是 Applet 所需的應(yīng)用程序編程接口(API) .Java 2 移動版(The Java 2 Mobile Edition,J2ME)包含創(chuàng)建無線 Java 應(yīng)用程序的 API.還有 Java 2 企業(yè)版(The Java 2 Enterprise,J2EE)是 J2SE 的增強版本, 包含建立多層架構(gòu)應(yīng)用程序 API。</p><

14、p><b>  一、課程設(shè)計目的</b></p><p>  Java 程序設(shè)計是一門應(yīng)用性很強的專業(yè)課,在學(xué)習(xí)時必須注意理論與實踐相結(jié) 合,為此開設(shè)了本課程設(shè)計,其目的是通過本課程設(shè)計使學(xué)生能夠較全面的掌握 面向?qū)ο蟪绦蛟O(shè)計的有關(guān)概念和開發(fā)方法,以便能較全面地理解、掌握和綜合運 用所學(xué)的知識,提高自身的編程能力。</p><p><b>  二、需求

15、分析 </b></p><p>  日常生活中經(jīng)常需要用到計算器,比如科學(xué)計算, 數(shù)值計算, 會計業(yè)務(wù)等等,在Applet中實現(xiàn)一個精巧的計算器,可以讓用戶的 操作也更方便和快捷。 本項目需要實現(xiàn)一個具有四則運算的計算器, 能夠?qū)崿F(xiàn)基本的加、減、乘、除運算,以及其它的輔助功能;界面 簡潔適用;要提供主要的設(shè)計思路、類的設(shè)計。 </p><p><b>  三、課程設(shè)計

16、內(nèi)容</b></p><p>  實現(xiàn)計算器功能的應(yīng)用程序 根據(jù)計算器的實際功能,用戶可以通過鼠標(biāo)依次輸入?yún)⒓佑嬎愕臄?shù)值,進行加、 減、乘、除等混合運算,界面美觀。</p><p><b>  四、總體設(shè)計 </b></p><p><b>  4.1系統(tǒng)功能圖</b></p><p>

17、<b>  4.2程序流程圖</b></p><p><b>  4.3算法思路</b></p><p>  主要思路是通過將數(shù)據(jù)字鍵合其他符號區(qū)別開來進行監(jiān)聽,可以a變量儲存運算前的數(shù)據(jù),s存儲運算符,shu存儲運算符后的數(shù)據(jù)。當(dāng)按住運算符按鈕時便將之前輸入的數(shù)字存儲在變量a中,并將運算符存儲在s中,當(dāng)按住等號按鈕時,便將便將后輸入的數(shù)字存儲到

18、shu中并根據(jù)所輸入的運算符進行相關(guān)的運算。</p><p><b>  4.4算法實現(xiàn)</b></p><p>  計算器的程序設(shè)計,必然有數(shù)據(jù)輸入,其中數(shù)據(jù)包括運算符 和數(shù)字,均要通過計算器上的button按鈕選項按鈕輸入進去, 里面錄入的必然是字符型的數(shù)據(jù),如果進行運算要將輸入的 數(shù)據(jù)轉(zhuǎn)化成Double型,以防出錯。</p><p>&l

19、t;b>  4.5功能規(guī)劃</b></p><p>  本程序中只有一個主類Chat。在此類中添加了JPanel框架 在此框架中使用了setbounds方法布局整個界面。在菜單欄中設(shè)置了“編輯”和“幫助”菜單項,在“編輯”中可以實現(xiàn)“粘貼”“復(fù)制”“退出”功能,在“幫助”中實現(xiàn)“關(guān)于計算器”“幫助主題”點擊相關(guān)按鈕可以實現(xiàn)相關(guān)其他功能。</p><p><b>

20、  4.6總結(jié)不足</b></p><p>  首先沒有實現(xiàn)Mc、Mr、Ms、M+四個功能,其次只是實現(xiàn)了標(biāo)準(zhǔn)計算器的運算,沒有實現(xiàn)科學(xué)計算器的功能,因此還有待進一步完善,這樣才能夠完成自己的第一個應(yīng)用軟件設(shè)計。</p><p><b>  五、具體實現(xiàn)</b></p><p><b>  5.1主界面</b>

21、</p><p><b>  5.2界面說明</b></p><p>  計算器的界面有一個菜單欄 兩個文本框和22個按鈕組成。在菜單項里有“編輯”和“幫助”兩個菜單,在“編輯”菜單中實現(xiàn)了對t1文本內(nèi)容的復(fù)制和粘貼,同時也加入了實現(xiàn)了退出程序的子菜單,在“幫助”菜單中,點擊“幫助主題”便會打開C:\WINDOWS\Help下的calc.chm幫助文件,點擊“關(guān)于計算

22、器”便會打開下列對話框</p><p>  在按鈕組里面有22個按鈕其中Bacspace表示“退格”,C表示“清除”,sqrt表示開方“+/-”表示正負(fù)數(shù)的轉(zhuǎn)換。</p><p><b>  5.3算法實現(xiàn)</b></p><p><b>  開始</b></p><p><b>  if

23、(f){</b></p><p>  t1.setText("0");</p><p><b>  f=false;</b></p><p><b>  }</b></p><p><b>  單擊數(shù)值按鈕0</b></p><

24、;p>  if(e.getSource()==butt0){</p><p>  String a=t1.getText();</p><p>  if(a.equals("0")){</p><p>  t1.setText("0");</p><p><b>  }else{<

25、/b></p><p>  t1.setText(a+"0");</p><p><b>  } </b></p><p><b>  }</b></p><p>  單擊1到9 與之相同</p><p><b>  單擊+</

26、b></p><p>  if(e.getSource()==buttjia){</p><p><b>  f=true;</b></p><p>  String a=t1.getText();</p><p>  if(this.s.equals("")&&this.shu

27、==0.0){</p><p><b>  shu(a);</b></p><p>  yunsuan("+");</p><p><b>  }else{</b></p><p>  Double b=Double.valueOf(a).doubleValue(); <

28、/p><p>  Double z=0.0; </p><p>  if(this.s.endsWith("+")){</p><p>  z=this.shu+b;</p><p>  }else if(this.s.endsWith("-")){</p><p>  z=t

29、his.shu-b;</p><p>  }else if(this.s.endsWith("*")){</p><p>  z=this.shu*b;</p><p>  }else if(this.s.endsWith("/")){</p><p>  z=this.shu/b;</p>

30、<p><b>  }</b></p><p>  shu(String.valueOf(z));</p><p>  yunsuan("+");</p><p>  t1.setText(String.valueOf(z));</p><p><b>  }</b>

31、;</p><p><b>  }</b></p><p>  單擊減、乘、除與上面相同</p><p><b>  單擊點號</b></p><p>  if(e.getSource()==buttdian){</p><p>  clickable=true;</p

32、><p>  for (int i = 0; i < t1.getText().length(); i++) </p><p>  if ('.' == t1.getText().charAt(i)) </p><p><b>  { </b></p><p>  clickable=false; &l

33、t;/p><p><b>  break; </b></p><p>  } //第一層判斷是否里面含有小數(shù)點;</p><p>  if(clickable==true)//第二層判斷</p><p>  t1.setText(t1.getText()+".");</p><p>

34、;<b>  }</b></p><p><b>  單擊+/-鍵</b></p><p>  if(e.getSource()==buttfu){</p><p>  String a=t1.getText();</p><p>  String b=a.substring(0,1);</p

35、><p>  if(b.equals("-")){</p><p>  String z=a.substring(1);</p><p>  t1.setText(z);</p><p><b>  }else{</b></p><p>  t1.setText("-&q

36、uot;+a);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  單擊1/x鍵</b></p><p>  if(e.getSource()==buttdao){</p><p>  Strin

37、g a=t1.getText();</p><p>  //字符型轉(zhuǎn)換為浮點型</p><p>  Double s=1/Double.valueOf(a).doubleValue();</p><p>  String b=String.valueOf(s);</p><p>  t1.setText(b); <

38、/p><p><b>  }</b></p><p><b>  單擊sqrt鍵</b></p><p>  if(e.getSource()==buttsqrt){</p><p><b>  f=true;</b></p><p>  String a=

39、t1.getText();</p><p>  //float s=Integer.parseInt(a);</p><p>  //字符型抓換為浮點型</p><p>  Double s=Double.valueOf(a).doubleValue();</p><p><b>  if(s>0){</b><

40、;/p><p>  double z=Math.sqrt(s);</p><p>  String b=String.valueOf(z);</p><p>  t1.setText(b);</p><p><b>  }</b></p><p><b>  }</b></

41、p><p><b>  單擊%鍵</b></p><p>  if(e.getSource()==buttbai){</p><p>  String a=t1.getText();</p><p>  Double s=Double.valueOf(a).doubleValue()/100;</p><

42、p>  //if(this.shu!=0.0)</p><p>  //this.shu=this.shu/100;</p><p>  String t=String.valueOf(s);</p><p>  t1.setText(t);</p><p>  // System.out.println(shu);</p>

43、<p><b>  }</b></p><p><b>  單擊C</b></p><p>  if(e.getSource()==buttc){</p><p>  t1.setText("0");</p><p>  this.s="";&l

44、t;/p><p>  this.shu=0.0;</p><p><b>  }</b></p><p><b>  退格</b></p><p>  if(e.getSource()==buttb)</p><p><b>  {</b></p>

45、;<p>  String s = t1.getText(); </p><p>  t1.setText(""); </p><p>  for (int i = 0; i < s.length() - 1; i++)</p><p><b>  { </b></p><p> 

46、 char a = s.charAt(i); </p><p>  t1.setText(t1.getText() + a); </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  六、運算演示</b></p>

47、<p>  下面演示一下程序的部分功能:</p><p><b>  2平方根的結(jié)果</b></p><p><b>  3的倒數(shù)</b></p><p>  98.5-487.92的結(jié)果</p><p><b>  9.25*2的結(jié)果</b></p>

48、<p><b>  七、結(jié)束語</b></p><p>  到此本次課程報告快接近尾聲了,通過本次課程設(shè)計我學(xué)到了好多,也發(fā)現(xiàn)了自己的好多 不足! 很顯然最明顯的收獲是理解和較熟練的掌握了 JavaApplet 圖形界面的基本方法,尤其在 JavaApplet 圖形界面的布局方面學(xué)到頗多,以前布局很亂并且很多布局都是無效的.在此次課設(shè) 中通過查閱很多資料和同學(xué)的互相幫助,充分發(fā)

49、揮了 JavaApplet 界面布局的優(yōu)越性.另外按鈕 功能的實現(xiàn)也是本次課設(shè)的一大難點,怎樣實現(xiàn)那些功能是關(guān)鍵.通過這次課設(shè)我又學(xué)會了好 函數(shù)。另外我這次課設(shè)部分程序是通過外部資料得到的,這使得我認(rèn)識到查閱資料和開外多看書 籍的重要性.但不主張照搬,因為那不是我們自己成果,那是不光彩的 !! 總之通過此次課設(shè)我學(xué)到了好多,也掌握了好多關(guān)于 JavaApplet 的事件管理和按鈕功能實 現(xiàn)方法,這次課程設(shè)計給我的感受就是:只要你有心,不

50、怕你完成不了課程設(shè)計!!!!!</p><p><b>  八、致謝</b></p><p>  首先我要感謝我的老師在課程設(shè)計上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識,而且也開闊了視野,提高了自己的設(shè)計能力。其次,我要感謝幫助過我

51、的同學(xué),他們也為我解決了不少我不太明白的設(shè)計商的難題。同時也感謝學(xué)院為我提供良好的做畢業(yè)設(shè)計的環(huán)境。</p><p><b>  九、參考資料</b></p><p><b>  參考文獻: </b></p><p>  [1]葉核亞 《java 程序設(shè)計實用教程》(第三版) 電子工業(yè)出版社</p><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論