java編程語(yǔ)言設(shè)計(jì)課程設(shè)計(jì)--- 簡(jiǎn)易計(jì)算器設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  課程設(shè)計(jì)(論文)任務(wù)書</p><p>  經(jīng)管 學(xué) 院  電子商務(wù) ?!I(yè) ******** 班</p><p>  一、課程設(shè)計(jì)(論文)題目:   簡(jiǎn)易計(jì)算器設(shè)計(jì)   </p><p>  二、課程設(shè)計(jì)(論文)工作:</p><p>  自 年 月 日起至 年 月 日止&l

2、t;/p><p>  三、課程設(shè)計(jì)(論文) 地點(diǎn): </p><p>  四、課程設(shè)計(jì)(論文)內(nèi)容要求:</p><p>  1.本課程設(shè)計(jì)的目的</p><p> ?。?)使學(xué)生掌握軟件開發(fā)的基本工作流程; </p><p> ?。?)鞏固JAVA程序設(shè)計(jì)課程所學(xué)的內(nèi)容;

3、 </p><p>  (3)培養(yǎng)學(xué)生的計(jì)算機(jī)思維能力以及合作的精神;</p><p>  (4)培養(yǎng)學(xué)生分析、解決問(wèn)題的能力;</p><p> ?。?)提高學(xué)生的科技論文寫作能力。 </p><p>  2.課程設(shè)計(jì)的任務(wù)及要求</p><p><b>  1)基本要求:</b></p

4、><p>  (1)研究課程設(shè)計(jì)任務(wù),并進(jìn)行系統(tǒng)需求分析;</p><p> ?。?)對(duì)系統(tǒng)進(jìn)行總體設(shè)計(jì),分解系統(tǒng)功能模塊,進(jìn)行任務(wù)分配,以實(shí)現(xiàn)分工合作;</p><p> ?。?)實(shí)現(xiàn)各功能模塊代碼; </p><p>  (4)系統(tǒng)組裝,測(cè)試、完善系統(tǒng)。</p><p><b>  2)創(chuàng)新要求: </

5、b></p><p>  在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如改進(jìn)界面、增加功能或進(jìn)行代碼優(yōu)化。</p><p>  3)課程設(shè)計(jì)論文編寫要求</p><p> ?。?)要按照書稿的規(guī)格打印謄寫課程設(shè)計(jì)論文</p><p>  (2)論文包括封面、設(shè)計(jì)任務(wù)書(含評(píng)語(yǔ))、摘要、目錄、設(shè)計(jì)內(nèi)容、設(shè)計(jì)小結(jié)</p><p&g

6、t; ?。?)論文裝訂按學(xué)校的統(tǒng)一要求完成</p><p><b>  4)參考文獻(xiàn):</b></p><p> ?。?)丁振凡,《JAVA語(yǔ)言程序設(shè)計(jì)》,清華大學(xué)出版社.</p><p> ?。?)丁振凡,《JAVA語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題解答》,清華大學(xué)出版社.</p><p><b> ?。?) <

7、;/b></p><p>  5)課程設(shè)計(jì)進(jìn)度安排</p><p>  內(nèi)容 天數(shù)      地點(diǎn)</p><p>  系統(tǒng)總體設(shè)計(jì) 1       實(shí)驗(yàn)室</p><p>  軟件設(shè)計(jì)及調(diào)試 2       實(shí)驗(yàn)室</p><p>  答辯

8、及撰寫報(bào)告 2       實(shí)驗(yàn)室、圖書館</p><p>  學(xué)生簽名: </p><p><b>  2012年6月8日</b></p><p>  課程設(shè)計(jì)(論文)評(píng)審意見</p><p> ?。?)課程設(shè)計(jì)過(guò)程(20分):優(yōu)(?。⒘迹ā。⒅校ā。?、一般( )、差

9、( ); </p><p>  (2)是否完成調(diào)試,系統(tǒng)運(yùn)行效果(30分):優(yōu)(?。?、良(?。?、中(?。⒁话悖ā。⒉睿ā。?; </p><p> ?。?)回答問(wèn)題(20分):優(yōu)(?。?、良(?。?、中(?。⒁话悖ā。⒉睿ā。?;</p><p>  (4)課程設(shè)計(jì)報(bào)告(30分):優(yōu)(?。?、良( )、中(?。?、一般(?。?、差(?。?lt;/p><p

10、> ?。?)格式規(guī)范性及考勤是否降等級(jí):是(?。⒎瘢ā。?lt;/p><p>  2011年 6月10日</p><p><b>  計(jì)算器設(shè)計(jì)</b></p><p><b>  摘要:</b></p><p>  利用Java語(yǔ)言設(shè)計(jì)出一個(gè)簡(jiǎn)易的計(jì)算器,能實(shí)現(xiàn)加減乘除等簡(jiǎn)單運(yùn)算。該應(yīng)用涉及圖

11、形界面的布局,按鈕的動(dòng)作事件處理,窗體的事件處理。由于所有按鈕均用窗體作為事件監(jiān)聽者,在程序中通過(guò)區(qū)分事件源對(duì)不同的按鈕點(diǎn)擊區(qū)分處理。</p><p><b> ?。?00字以上)</b></p><p><b>  目 錄</b></p><p>  1、項(xiàng)目?jī)?nèi)容、要求與分組情況總體介紹2</p>&l

12、t;p><b>  2、概要設(shè)計(jì)2</b></p><p>  2.1開發(fā)工具及環(huán)境2</p><p>  2.2 任務(wù)及需求分析2</p><p>  2.3 功能模塊設(shè)計(jì)2</p><p>  2.4 工作原理3</p><p><b>  3、 具體實(shí)現(xiàn)3<

13、/b></p><p><b>  3.1 類設(shè)計(jì)3</b></p><p>  3.2 模塊及實(shí)現(xiàn)代碼介紹3</p><p>  4、運(yùn)行調(diào)試與分析討論4</p><p>  5、設(shè)計(jì)體會(huì)與小結(jié)6</p><p><b>  6、參考文獻(xiàn)7</b></

14、p><p>  附錄:(源程序)7</p><p>  1、項(xiàng)目?jī)?nèi)容、要求與分組情況總體介紹</p><p>  本次實(shí)驗(yàn)的目標(biāo)是制作一個(gè)計(jì)算器,可以進(jìn)行簡(jiǎn)單的四則運(yùn)算(加、減、乘、除)。小組的具體分工情況見下表:</p><p><b>  2、概要設(shè)計(jì)</b></p><p>  2.1開發(fā)工具

15、及環(huán)境</p><p>  文本編輯器:記事本;</p><p>  運(yùn)行環(huán)境:命令提示符(DOS環(huán)境)。</p><p>  2.2 任務(wù)及需求分析</p><p>  設(shè)計(jì)簡(jiǎn)易計(jì)算器程序,實(shí)現(xiàn)簡(jiǎn)單的運(yùn)算(加減乘除),具體任務(wù)如下:</p><p> ?。?)計(jì)算器窗口界面布局設(shè)計(jì);</p><p

16、> ?。?)各種計(jì)算功能的算法分析;</p><p> ?。?)編程實(shí)現(xiàn)具體的計(jì)算功能,實(shí)現(xiàn)類的封裝處理;</p><p>  (4)運(yùn)行測(cè)試程序,調(diào)試糾正運(yùn)行錯(cuò)誤。</p><p><b>  2.3 工作原理</b></p><p><b>  (1)工作過(guò)程</b></p>

17、<p>  點(diǎn)擊相應(yīng)的數(shù)字鍵,即會(huì)在顯示文檔中顯示該數(shù)字。進(jìn)行相應(yīng)的運(yùn)算,首先輸入第一個(gè)計(jì)算數(shù)字,然后輸入運(yùn)算符,再輸入第二個(gè)計(jì)算數(shù)字,點(diǎn)擊“=”按鈕即得計(jì)算結(jié)果。同時(shí),還有歸零功能,點(diǎn)擊該按鈕,顯示欄中即可歸零。</p><p><b> ?。?)工作原理</b></p><p>  利用圖形界面編程實(shí)現(xiàn),利用到的知識(shí)點(diǎn)包括:</p>&l

18、t;p>  窗體的創(chuàng)建和應(yīng)用界面布局;</p><p>  事件處理,包括按鈕的動(dòng)作事件處理,窗體事件。</p><p>  接口知識(shí):事件處理中通過(guò)接口約束事件監(jiān)聽者必須實(shí)現(xiàn)相應(yīng)接口中定義的方法。</p><p>  流程控制語(yǔ)句:通過(guò)條件判斷區(qū)分不同按鈕,作不同操作處理。</p><p><b>  3、 具體實(shí)現(xiàn)<

19、/b></p><p><b>  3.1 類設(shè)計(jì)</b></p><p>  (1) 類名:jisuanqi</p><p>  作用:實(shí)現(xiàn)窗口的布局設(shè)定,事件注冊(cè)。</p><p>  該類繼承WindowAdapter類。</p><p>  類中含有的方法介紹:</p>

20、<p>  frame()方法:實(shí)現(xiàn)窗體的界面布局及按鈕的事件注冊(cè)。</p><p>  main()方法:應(yīng)用程序的入口,完成創(chuàng)建對(duì)象并調(diào)用frame()方法。</p><p>  (2) 類名:close</p><p>  該類為jisuanqi的內(nèi)嵌類,作用是實(shí)現(xiàn)對(duì)關(guān)閉按鈕的動(dòng)作事件監(jiān)聽處理。</p><p>  該類實(shí)現(xiàn)

21、ActionListener接口。</p><p>  類中含有的方法介紹:</p><p>  actionPerformed方法:實(shí)現(xiàn)關(guān)閉按鈕的動(dòng)作事件處理。</p><p>  (3) 類名:buttonlistener</p><p>  該類為jisuanqi的內(nèi)嵌類,作用是實(shí)現(xiàn)計(jì)算器中數(shù)字按鈕和各類運(yùn)算按鈕等的動(dòng)作事件監(jiān)聽處理。&

22、lt;/p><p>  該類實(shí)現(xiàn)ActionListener接口。</p><p>  類中含有的方法介紹:</p><p>  actionPerformed方法:實(shí)現(xiàn)各類按鈕的動(dòng)作事件處理。</p><p>  jisuan()方法:實(shí)現(xiàn)具體運(yùn)算操作。</p><p>  3.2 關(guān)鍵技術(shù)處理</p>&

23、lt;p>  (1) 窗體界面設(shè)計(jì)及注冊(cè)事件監(jiān)聽</p><p>  Frame fm = new Frame("簡(jiǎn)單計(jì)算器");</p><p>  for (int i = 0; i <= 16; i++) {</p><p>  b[i] = new Button(ss[i]);</p><p>  }

24、 </p><p>  for (int i = 0; i <= 15; i++) {</p><p>  p2.add(b[i]);</p><p>  } //創(chuàng)建按鈕 并添加到P2</p><p>  b[16].s

25、etBackground(Color.yellow);</p><p>  txt = new TextField(15);</p><p>  txt.setEditable(false);</p><p>  for (int i = 0; i <= 16; i++) {</p><p>  b[i].addActionListen

26、er(new buttonlistener());</p><p><b>  …… </b></p><p><b>  }</b></p><p>  注:此方法主要設(shè)置窗口、面板、各個(gè)按鍵。對(duì)各個(gè)按鍵進(jìn)行定義(定義好各按鍵該實(shí)現(xiàn)什么功能)、排布,將各個(gè)按鍵注冊(cè)到監(jiān)聽器上。</p><p>  

27、(2) 按鈕事件處理</p><p>  區(qū)分事件源:通過(guò)事件對(duì)象的getSource()方法得到事件源。關(guān)鍵代碼如下:</p><p>  Button btn = (Button) e.getSource();</p><p>  if (btn.getLabel() == "=") {</p><p><b&g

28、t;  ……</b></p><p><b>  }</b></p><p>  改變計(jì)算器的結(jié)果。更改文本框的顯示,先讀原有的數(shù)據(jù)。</p><p>  txt.setText(txt.getText() + btn.getLabel());</p><p><b>  清除計(jì)算器的顯示</

29、b></p><p>  if (btn.getLabel() == "歸零")</p><p>  txt.setText(""); </p><p><b>  (3) 窗體關(guān)閉</b></p><p>  class close implements ActionLis

30、tener {//退出</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p&

31、gt;  【注】也可以執(zhí)行窗體的dispose()方法實(shí)現(xiàn)窗體關(guān)閉。</p><p>  (4) 記住前一個(gè)運(yùn)算符</p><p>  引入一個(gè)字符串類型的類變量 s記錄前一個(gè)運(yùn)算符,每次按運(yùn)算符是先執(zhí)行前一個(gè)運(yùn)算符的結(jié)果。</p><p>  4、運(yùn)行調(diào)試與分析討論</p><p>  調(diào)試運(yùn)行4*5運(yùn)算,運(yùn)算過(guò)程如下所示:</p&g

32、t;<p>  測(cè)試程序,點(diǎn)擊數(shù)字鍵可將數(shù)據(jù)輸入到文本框,點(diǎn)擊“+”、“-”、“*”、“/”按鈕可進(jìn)行前一個(gè)運(yùn)算,點(diǎn)擊“=”可完成整個(gè)運(yùn)算。從而達(dá)到能進(jìn)行加、減、乘、除運(yùn)算的簡(jiǎn)易計(jì)算器的功能。點(diǎn)擊關(guān)閉圖標(biāo)可關(guān)閉計(jì)算器。</p><p><b>  5、設(shè)計(jì)體會(huì)與小結(jié)</b></p><p>  通過(guò)這次課程設(shè)計(jì),我了解到j(luò)ava也是可以分工合作的,雖然最

33、后的整合過(guò)程非常麻煩,但是在整合完后,我們發(fā)現(xiàn),課本被翻過(guò)很多遍,很多以前不知道的東西就這樣豁然開朗了。我們還引用了很多從來(lái)沒有用過(guò)的語(yǔ)句塊,大多是從網(wǎng)上找到,然后自己整合進(jìn)入代碼,再實(shí)現(xiàn)我們想要的功能。</p><p>  編程是個(gè)艱難的過(guò)程,很多功能語(yǔ)句都需要上網(wǎng)或者是查其他書籍來(lái)查看他們的用法,課本上的東西對(duì)我們來(lái)說(shuō)遠(yuǎn)遠(yuǎn)不夠,我們要把目光放長(zhǎng)遠(yuǎn)一些。</p><p>  這次的課程設(shè)

34、計(jì)使我對(duì)JAVA的許多東西都有了更深一步的了解,以前對(duì)自己的要求是看得懂就行,現(xiàn)在才發(fā)現(xiàn),光能看懂是遠(yuǎn)遠(yuǎn)不夠的,能看懂并不代表你會(huì)!只有自己真的親身體驗(yàn)到了,才會(huì)知道。</p><p>  這個(gè)禮拜的課程設(shè)計(jì)是這個(gè)學(xué)期最累的一個(gè)禮拜,但是,我們的付出總算有回報(bào),雖然我們的計(jì)算器可能還存在不少的問(wèn)題,但是,至少它可以正常運(yùn)行四則運(yùn)算,基本達(dá)到了我們預(yù)期的要求,所以,這個(gè)禮拜同樣是我最充實(shí)的一個(gè)禮拜。</p&g

35、t;<p><b>  6、參考文獻(xiàn)</b></p><p>  [1] 丁振凡,《JAVA語(yǔ)言程序設(shè)計(jì)》,清華大學(xué)出版社.</p><p>  [2] 丁振凡,《JAVA語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題解答》,清華大學(xué)出版社.</p><p>  [3] 杜春濤,《面向?qū)ο蟪绦蛟O(shè)計(jì)—Java語(yǔ)言》,中國(guó)鐵道出版社.</p>

36、<p>  [4] http://cai.ecjtu.jx.cn/</p><p><b>  附錄:(源程序)</b></p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  public class jisuan

37、qi extends WindowAdapter {</p><p>  Panel p1 = new Panel();</p><p>  Panel p2 = new Panel();</p><p>  Panel p3 = new Panel();</p><p>  TextField txt;</p><p&g

38、t;  private Button[] b = new Button[17];</p><p>  private String ss[] = { "7", "8", "9", "+", "4", "5", "6", "-", "1"

39、, "2", "3", "*", "歸零", "0", "=", "/", "關(guān)閉" };</p><p>  static double a;</p><p>  static String s, str;//定義變量 創(chuàng)建對(duì)像&

40、lt;/p><p>  public static void main(String args[]) {</p><p>  (new jisuanqi()).frame();</p><p><b>  }</b></p><p>  public void frame() {</p><p>  

41、Frame fm = new Frame("簡(jiǎn)單計(jì)算器");</p><p>  for (int i = 0; i <= 16; i++) {</p><p>  b[i] = new Button(ss[i]);</p><p>  } </p><p>

42、  for (int i = 0; i <= 15; i++) {</p><p>  p2.add(b[i]);</p><p>  } //創(chuàng)建按鈕 并添加到P2</p><p>  b[16].setBackground(Color.yellow);</p><p>  t

43、xt = new TextField(15);</p><p>  txt.setEditable(false);</p><p>  for (int i = 0; i <= 16; i++) {</p><p>  b[i].addActionListener(new buttonlistener());//添加監(jiān)聽器</p><p&g

44、t;<b>  }</b></p><p>  b[16].addActionListener(new close());</p><p>  fm.addWindowListener(this);</p><p>  fm.setBackground(Color.red);</p><p>  p1.setLayout

45、(new BorderLayout());</p><p>  p1.add(txt, "North");</p><p>  p2.setLayout(new GridLayout(4, 4));</p><p>  p3.setLayout(new BorderLayout());</p><p>  p3.add(b

46、[16]);</p><p>  fm.add(p1, "North");</p><p>  fm.add(p2, "Center");</p><p>  fm.add(p3, "South");</p><p>  fm.pack();</p><p>

47、  fm.setVisible(true);//都是些窗中設(shè)置 添加相關(guān)組件和監(jiān)聽器</p><p><b>  }</b></p><p>  public void windowClosing(WindowEvent e) {</p><p>  System.exit(0);//退出系統(tǒng)</p><p><b

48、>  }</b></p><p>  class buttonlistener implements ActionListener {</p><p>  //編寫監(jiān)聽器事件 通過(guò)按鍵得出結(jié)果</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  B

49、utton btn = (Button) e.getSource();</p><p>  if (btn.getLabel() == "=") {</p><p><b>  jisuan();</b></p><p>  str = String.valueOf(a);</p><p>  txt

50、.setText(str);</p><p><b>  s = "";</b></p><p>  } else if (btn.getLabel() == "+") {</p><p><b>  jisuan();</b></p><p>  txt.s

51、etText("");</p><p><b>  s = "+";</b></p><p>  } else if (btn.getLabel() == "-") {</p><p><b>  jisuan();</b></p><p>

52、;  txt.setText("");</p><p><b>  s = "-";</b></p><p>  } else if (btn.getLabel() == "/") {</p><p><b>  jisuan();</b></p>

53、<p>  txt.setText("");</p><p><b>  s = "/";</b></p><p>  } else if (btn.getLabel() == "*") {</p><p><b>  jisuan();</b><

54、/p><p>  txt.setText("");</p><p><b>  s = "*";</b></p><p><b>  } else {</b></p><p>  txt.setText(txt.getText() + btn.getLabel()

55、);</p><p>  if (btn.getLabel() == "歸零")</p><p>  txt.setText("");</p><p><b>  }</b></p><p><b>  }</b></p><p>  

56、public void jisuan() {//編寫具體計(jì)算方法 </p><p>  if (s == "+")</p><p>  a += Double.parseDouble(txt.getText());</p><p>  else if (s == "-")</p><p>  a -=

57、Double.parseDouble(txt.getText());</p><p>  else if (s == "*")</p><p>  a *= Double.parseDouble(txt.getText());</p><p>  else if (s == "/")</p><p> 

58、 a /= Double.parseDouble(txt.getText());</p><p><b>  else</b></p><p>  a = Double.parseDouble(txt.getText());</p><p><b>  }</b></p><p><b>

59、  }</b></p><p><b>  }</b></p><p>  class close implements ActionListener { //退出</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  System

溫馨提示

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

評(píng)論

0/150

提交評(píng)論