2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  《JAVA程序設計》課程設計報告</p><p><b>  簡單計算器</b></p><p>  學 號: </p><p>  姓 名: </p><p>  班 級: 10級計科一班 </

2、p><p>  指導教師: </p><p>  成 績: </p><p>  完成時間: </p><p><b>  設計內容和要求</b></p><p>  1、簡單計算器模擬程序的基本

3、要求</p><p>  模擬Windows中附件里面的計算器軟件,能實現(xiàn)整數(shù)的加、減、乘、除四則運算。 </p><p>  2、需要實現(xiàn)的主要功能</p><p>  該計算器模擬程序使用Java的awt包和Swing包的類庫設計圖形界面的計算器顯示用戶界面并且使用圖形界面中的事件event委托機制來處理事件響應,以及用java語言設計實現(xiàn)整數(shù)的加、減、乘、除四

4、則運算。(附加功能:清零和異常處理機制)</p><p><b>  系統(tǒng)分析與概要設計</b></p><p><b>  1、面板</b></p><p>  JPanel txtpanel:用于放置文本框</p><p>  Panel btnpanel: 用于放置按鈕(0-9和+,-,*,/

5、,=) </p><p><b>  2、顯示部分</b></p><p> ?。?)第一個面板:txtpanel</p><p>  位置以及排列方式BorderLayout.NORTH </p><p>  txtpanel.add(txtinput):添加文本框到txtpanel面板中</p>

6、<p>  (2)第二個面板:btnpanel</p><p>  排列方式:setLayout(gl)</p><p><b>  3、基本按鈕 </b></p><p>  btnpanel.add(b7) btnpanel.add(b8) btnpanel.add(b9);</p><

7、p>  btnpanel.add(multiply) btnpanel.add(b4) btnpanel.add(b5);</p><p>  btnpanel.add(b6) btnpanel.add(divide) btnpanel.add(b1);</p><p>  btnpanel.add(b2) btnpanel.add(b3)

8、 btnpanel.add(add);</p><p>  btnpanel.add(b0) .add(bdes) btnpanel.add(equal);</p><p>  btnpanel.add(subtract) </p><p>  以上是在第二個面板btnpanelH中添加的0到9和+,-,*,/,=的按鈕。</p><

9、;p><b>  4、附加功能</b></p><p><b> ?。?)“清零”:</b></p><p>  用于清空文本框和下一次的運算</p><p> ?。?)“異常處理” </p><p>  除數(shù)為零:當除數(shù)為零時,彈出“除數(shù)不能為零”窗體</p><p>

10、;  錯誤輸入:當只單擊運算符時,彈出“錯誤輸入”窗體</p><p><b>  詳細設計和編碼</b></p><p><b>  1、總體功能圖</b></p><p><b>  1、類的定義及關系</b></p><p>  Jsq類繼承JFrame類創(chuàng)建主界面,在主

11、界面上由文本框JTextField和JButton組件構成,JTextField和JButton組件分別放置在兩個不同的面板JPanel上,同時利用按鈕注冊監(jiān)聽器,獲取事件源。添加實現(xiàn)0--9和加、減、乘、除按鈕并實現(xiàn)四則運算并獲得運算結果以及“清零”和“異常處理機制”。</p><p><b>  2、運行效果圖</b></p><p><b>  3、源

12、代碼</b></p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  public class Calculator extends JFrame implements Act

13、ionListener</p><p><b>  {</b></p><p>  JPanel txtpanel,btnpanel;</p><p>  JTextField txtinput;</p><p>  JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,

14、divide,add,</p><p>  subtract,clear,equal;</p><p>  GridLayout gl;</p><p>  double d1,d2;</p><p><b>  String s;</b></p><p>  public Calculator(

15、)</p><p><b>  {</b></p><p>  super("計算器");</p><p>  txtpanel=new JPanel();</p><p>  btnpanel=new JPanel();</p><p>  txtinput=new JTex

16、tField(25);</p><p>  txtinput.setEditable(false);</p><p>  txtinput.setHorizontalAlignment(JTextField.RIGHT);</p><p>  txtinput.setText("");</p><p>  b1=new J

17、Button("1");</p><p>  b2=new JButton("2");</p><p>  b3=new JButton("3");</p><p>  b4=new JButton("4");</p><p>  b5=new JButton(&

18、quot;5");</p><p>  b6=new JButton("6");</p><p>  b7=new JButton("7");</p><p>  b8=new JButton("8");</p><p>  b9=new JButton("9&q

19、uot;);</p><p>  b0=new JButton("0");</p><p>  bdes=new JButton(".");</p><p>  add=new JButton("+");</p><p>  subtract=new JButton("-&

20、quot;);</p><p>  multiply=new JButton("*");</p><p>  divide=new JButton("/");</p><p>  clear=new JButton("清 零");</p><p>  equal=new JButto

21、n("=");</p><p>  clear.addActionListener(new ActionListener()</p><p>  { public void actionPerformed(ActionEvent argh)</p><p>  { btnCancelActionPerformed();}</p>

22、<p><b>  });</b></p><p>  b1.addActionListener(this);</p><p>  b2.addActionListener(this);</p><p>  b3.addActionListener(this);</p><p>  b4.addActionLi

23、stener(this);</p><p>  b5.addActionListener(this);</p><p>  b6.addActionListener(this);</p><p>  b7.addActionListener(this);</p><p>  b8.addActionListener(this);</p&

24、gt;<p>  b9.addActionListener(this);</p><p>  b0.addActionListener(this);</p><p>  bdes.addActionListener(this);</p><p>  multiply.addActionListener(this);</p><p&g

25、t;  divide.addActionListener(this);</p><p>  add.addActionListener(this);</p><p>  subtract.addActionListener(this);</p><p>  equal.addActionListener(this);</p><p>  ge

26、tContentPane().add(txtpanel,BorderLayout.NORTH);</p><p>  txtpanel.add(txtinput);</p><p>  txtpanel.add(clear);</p><p>  gl=new GridLayout(4,4,5,5);</p><p>  btnpanel.s

27、etLayout(gl);</p><p>  getContentPane().add(btnpanel);</p><p>  btnpanel.add(b7);</p><p>  btnpanel.add(b8);</p><p>  btnpanel.add(b9);</p><p>  btnpanel.a

28、dd(multiply);</p><p>  btnpanel.add(b4);</p><p>  btnpanel.add(b5);</p><p>  btnpanel.add(b6);</p><p>  btnpanel.add(divide);</p><p>  btnpanel.add(b1);<

29、;/p><p>  btnpanel.add(b2);</p><p>  btnpanel.add(b3);</p><p>  btnpanel.add(add);</p><p>  btnpanel.add(b0);</p><p>  btnpanel.add(bdes);</p><p>

30、;  btnpanel.add(equal);</p><p>  btnpanel.add(subtract);</p><p>  setSize(250,220);</p><p>  setVisible(true);</p><p>  setLocation(300,200);</p><p>  setD

31、efaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);</p><p><b>  }</b></p><p>  public void btnCancelActionPerformed()</p><p>  { txtinput.setText("");}</p&

32、gt;<p>  public void actionPerformed(ActionEvent e)</p><p><b>  { try{</b></p><p>  Object obj=e.getSource();</p><p>  if(obj==b1)</p><p>  txtinput.

33、setText(txtinput.getText()+"1");</p><p>  else if(obj==b2)</p><p>  txtinput.setText(txtinput.getText()+"2");</p><p>  else if(obj==b3)</p><p>  txt

34、input.setText(txtinput.getText()+"3");</p><p>  else if(obj==b4)</p><p>  txtinput.setText(txtinput.getText()+"4");</p><p>  else if(obj==b5)</p><p>

35、;  txtinput.setText(txtinput.getText()+"5");</p><p>  else if(obj==b6)</p><p>  txtinput.setText(txtinput.getText()+"6");</p><p>  else if(obj==b7)</p>&l

36、t;p>  txtinput.setText(txtinput.getText()+"7");</p><p>  else if(obj==b8)</p><p>  txtinput.setText(txtinput.getText()+"8");</p><p>  else if(obj==b9)</p&g

37、t;<p>  txtinput.setText(txtinput.getText()+"9");</p><p>  else if(obj==b0)</p><p>  txtinput.setText(txtinput.getText()+"0");</p><p>  else if(obj==bdes)

38、</p><p>  txtinput.setText(txtinput.getText()+".");</p><p>  else if(obj==add)</p><p>  { d1=Double.parseDouble(txtinput.getText());</p><p><b>  s="

39、;+";</b></p><p>  txtinput.setText("");</p><p><b>  }</b></p><p>  else if(obj==subtract)</p><p>  { d1=Double.parseDouble(txtinput.get

40、Text());</p><p><b>  s="-";</b></p><p>  txtinput.setText(""); </p><p><b>  }</b></p><p>  else if(obj==divide)</p>&

41、lt;p>  { d1=Double.parseDouble(txtinput.getText());</p><p><b>  s="/";</b></p><p>  txtinput.setText("");</p><p><b>  }</b></p>

42、<p>  else if(obj==multiply)</p><p>  { d1=Double.parseDouble(txtinput.getText());</p><p><b>  s="*";</b></p><p>  txtinput.setText("");</p&

43、gt;<p><b>  }</b></p><p>  else if(obj==equal)</p><p>  { if(s=="+")</p><p>  { d2=d1+Double.parseDouble(txtinput.getText());</p><p>  txti

44、nput.setText(Double.toString(d2));</p><p><b>  }</b></p><p>  else if(s=="-")</p><p>  { d2=d1-Double.parseDouble(txtinput.getText());</p><p>  tx

45、tinput.setText(Double.toString(d2));</p><p><b>  }</b></p><p>  else if(txtinput.equals(txtinput.getText())&&obj==subtract)</p><p>  { d2=d1-Double.parseDouble(t

46、xtinput.getText());</p><p>  txtinput.setText(Double.toString(d2)); }</p><p>  else if(s=="/")</p><p>  { if(Double.parseDouble(txtinput.getText())==0)</p><p>

47、;  JOptionPane.showMessageDialog(this, "除數(shù)不能為0");</p><p>  d2=d1/Double.parseDouble(txtinput.getText());</p><p>  txtinput.setText(Double.toString(d2));</p><p><b>  

48、}</b></p><p>  else if(s=="*")</p><p>  { d2=d1*Double.parseDouble(txtinput.getText());</p><p>  txtinput.setText(Double.toString(d2)); </p><p><b>

49、;  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  catch(Exception ouch)</p><p>  { JOptionPane.showMessageDialog(null,"錯誤輸入"

50、,"error",</p><p>  JOptionPane.ERROR_MESSAGE); }</p><p><b>  }</b></p><p>  public static void main(String args[])</p><p><b>  { try {</b

51、></p><p>  UIManager.setLookAndFeel ("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}</p><p>  catch(Exception e){}</p><p>  new Calculator();</p><p&g

52、t;<b>  }</b></p><p><b>  }</b></p><p><b>  測試結果</b></p><p>  本次課程設計的計算器能夠滿足加、減、乘、除四則基本運算,而且通過自己的努力為此計算器添加了兩個附加的功能:“清零”和“異常處理機制”,并能很好的實現(xiàn)其功能。</p

53、><p>  但是此計算器的功能還是很單薄,不能進行開方、取余、三角函數(shù)等其他計算器的常用功能。一是因為這些功能相對復雜一些,二是自己有點懶惰。所以造成此計算器功能不是很完善。</p><p><b>  小結</b></p><p>  在此次的課程設計實踐中,我學到了教科書上沒有的東西。這次課程設計,我按照課程設計的要求,分塊實現(xiàn)程序的功能。在

54、實踐中我遇到許多的問題,通過同學的幫助和翻閱資料以及網(wǎng)上查詢,最后都克服,最終我成功的完成了這次課程設計。從中我充分理解了Java面對對象的特性,通過編寫這個相對復雜的程序,讓我認識解決實際問題前應現(xiàn)建立模型,再通過建立的模型使問題簡單化,從而解決問題。這次編寫的程序大部分是通過調用各包中的方法來實現(xiàn)的,這也讓我充分理解了包和類調用的關系。并為其增加了兩個功能“清零”和“異常處理機制”。由于這次編寫的程序相對比較復雜,所以不能一次性編寫

55、、調試,也由此讓我學會把程序分塊,逐個編寫、調試。</p><p>  在實踐的同時,我又從中成長了許多,特別是在對程序的編譯和調試中掌握了許多的技巧和方法,為今后的其他計算機語言的學習奠定了一定的基礎。</p><p><b>  參考文獻</b></p><p>  [1] 張思民. Java語言程序設計[M]. 清華大學出版社. 2007

溫馨提示

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

評論

0/150

提交評論