

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課程設計(論文)任務書</p><p> 經管 學 院 電子商務 ?!I(yè) ******** 班</p><p> 一、課程設計(論文)題目: 簡易計算器設計 </p><p> 二、課程設計(論文)工作:</p><p> 自 年 月 日起至 年 月 日止&l
2、t;/p><p> 三、課程設計(論文) 地點: </p><p> 四、課程設計(論文)內容要求:</p><p> 1.本課程設計的目的</p><p> ?。?)使學生掌握軟件開發(fā)的基本工作流程; </p><p> ?。?)鞏固JAVA程序設計課程所學的內容;
3、 </p><p> ?。?)培養(yǎng)學生的計算機思維能力以及合作的精神;</p><p> ?。?)培養(yǎng)學生分析、解決問題的能力;</p><p> ?。?)提高學生的科技論文寫作能力。 </p><p> 2.課程設計的任務及要求</p><p><b> 1)基本要求:</b></p
4、><p> ?。?)研究課程設計任務,并進行系統(tǒng)需求分析;</p><p> ?。?)對系統(tǒng)進行總體設計,分解系統(tǒng)功能模塊,進行任務分配,以實現分工合作;</p><p> ?。?)實現各功能模塊代碼; </p><p> ?。?)系統(tǒng)組裝,測試、完善系統(tǒng)。</p><p><b> 2)創(chuàng)新要求: </
5、b></p><p> 在基本要求達到后,可進行創(chuàng)新設計,如改進界面、增加功能或進行代碼優(yōu)化。</p><p> 3)課程設計論文編寫要求</p><p> ?。?)要按照書稿的規(guī)格打印謄寫課程設計論文</p><p> (2)論文包括封面、設計任務書(含評語)、摘要、目錄、設計內容、設計小結</p><p&g
6、t; ?。?)論文裝訂按學校的統(tǒng)一要求完成</p><p><b> 4)參考文獻:</b></p><p> ?。?)丁振凡,《JAVA語言程序設計》,清華大學出版社.</p><p> ?。?)丁振凡,《JAVA語言程序設計實驗指導與習題解答》,清華大學出版社.</p><p><b> ?。?) <
7、;/b></p><p> 5)課程設計進度安排</p><p> 內容 天數 地點</p><p> 系統(tǒng)總體設計 1 實驗室</p><p> 軟件設計及調試 2 實驗室</p><p> 答辯
8、及撰寫報告 2 實驗室、圖書館</p><p> 學生簽名: </p><p><b> 2012年6月8日</b></p><p> 課程設計(論文)評審意見</p><p> ?。?)課程設計過程(20分):優(yōu)(?。?、良(?。?、中(?。?、一般(?。?、差
9、(?。?; </p><p> ?。?)是否完成調試,系統(tǒng)運行效果(30分):優(yōu)(?。?、良(?。?、中(?。?、一般(?。?、差(?。?; </p><p> ?。?)回答問題(20分):優(yōu)(?。?、良( )、中(?。?、一般(?。?、差(?。?;</p><p> ?。?)課程設計報告(30分):優(yōu)(?。?、良(?。?、中(?。?、一般(?。?、差(?。?;</p><p
10、> ?。?)格式規(guī)范性及考勤是否降等級:是(?。?、否(?。?lt;/p><p> 2011年 6月10日</p><p><b> 計算器設計</b></p><p><b> 摘要:</b></p><p> 利用Java語言設計出一個簡易的計算器,能實現加減乘除等簡單運算。該應用涉及圖
11、形界面的布局,按鈕的動作事件處理,窗體的事件處理。由于所有按鈕均用窗體作為事件監(jiān)聽者,在程序中通過區(qū)分事件源對不同的按鈕點擊區(qū)分處理。</p><p><b> ?。?00字以上)</b></p><p><b> 目 錄</b></p><p> 1、項目內容、要求與分組情況總體介紹2</p>&l
12、t;p><b> 2、概要設計2</b></p><p> 2.1開發(fā)工具及環(huán)境2</p><p> 2.2 任務及需求分析2</p><p> 2.3 功能模塊設計2</p><p> 2.4 工作原理3</p><p><b> 3、 具體實現3<
13、/b></p><p><b> 3.1 類設計3</b></p><p> 3.2 模塊及實現代碼介紹3</p><p> 4、運行調試與分析討論4</p><p> 5、設計體會與小結6</p><p><b> 6、參考文獻7</b></
14、p><p> 附錄:(源程序)7</p><p> 1、項目內容、要求與分組情況總體介紹</p><p> 本次實驗的目標是制作一個計算器,可以進行簡單的四則運算(加、減、乘、除)。小組的具體分工情況見下表:</p><p><b> 2、概要設計</b></p><p> 2.1開發(fā)工具
15、及環(huán)境</p><p> 文本編輯器:記事本;</p><p> 運行環(huán)境:命令提示符(DOS環(huán)境)。</p><p> 2.2 任務及需求分析</p><p> 設計簡易計算器程序,實現簡單的運算(加減乘除),具體任務如下:</p><p> ?。?)計算器窗口界面布局設計;</p><p
16、> ?。?)各種計算功能的算法分析;</p><p> ?。?)編程實現具體的計算功能,實現類的封裝處理;</p><p> ?。?)運行測試程序,調試糾正運行錯誤。</p><p><b> 2.3 工作原理</b></p><p><b> ?。?)工作過程</b></p>
17、<p> 點擊相應的數字鍵,即會在顯示文檔中顯示該數字。進行相應的運算,首先輸入第一個計算數字,然后輸入運算符,再輸入第二個計算數字,點擊“=”按鈕即得計算結果。同時,還有歸零功能,點擊該按鈕,顯示欄中即可歸零。</p><p><b> ?。?)工作原理</b></p><p> 利用圖形界面編程實現,利用到的知識點包括:</p>&l
18、t;p> 窗體的創(chuàng)建和應用界面布局;</p><p> 事件處理,包括按鈕的動作事件處理,窗體事件。</p><p> 接口知識:事件處理中通過接口約束事件監(jiān)聽者必須實現相應接口中定義的方法。</p><p> 流程控制語句:通過條件判斷區(qū)分不同按鈕,作不同操作處理。</p><p><b> 3、 具體實現<
19、/b></p><p><b> 3.1 類設計</b></p><p> (1) 類名:jisuanqi</p><p> 作用:實現窗口的布局設定,事件注冊。</p><p> 該類繼承WindowAdapter類。</p><p> 類中含有的方法介紹:</p>
20、<p> frame()方法:實現窗體的界面布局及按鈕的事件注冊。</p><p> main()方法:應用程序的入口,完成創(chuàng)建對象并調用frame()方法。</p><p> (2) 類名:close</p><p> 該類為jisuanqi的內嵌類,作用是實現對關閉按鈕的動作事件監(jiān)聽處理。</p><p> 該類實現
21、ActionListener接口。</p><p> 類中含有的方法介紹:</p><p> actionPerformed方法:實現關閉按鈕的動作事件處理。</p><p> (3) 類名:buttonlistener</p><p> 該類為jisuanqi的內嵌類,作用是實現計算器中數字按鈕和各類運算按鈕等的動作事件監(jiān)聽處理。&
22、lt;/p><p> 該類實現ActionListener接口。</p><p> 類中含有的方法介紹:</p><p> actionPerformed方法:實現各類按鈕的動作事件處理。</p><p> jisuan()方法:實現具體運算操作。</p><p> 3.2 關鍵技術處理</p>&
23、lt;p> (1) 窗體界面設計及注冊事件監(jiān)聽</p><p> Frame fm = new Frame("簡單計算器");</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> 注:此方法主要設置窗口、面板、各個按鍵。對各個按鍵進行定義(定義好各按鍵該實現什么功能)、排布,將各個按鍵注冊到監(jiān)聽器上。</p><p>
27、(2) 按鈕事件處理</p><p> 區(qū)分事件源:通過事件對象的getSource()方法得到事件源。關鍵代碼如下:</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> 改變計算器的結果。更改文本框的顯示,先讀原有的數據。</p><p> txt.setText(txt.getText() + btn.getLabel());</p><p><b> 清除計算器的顯示</
29、b></p><p> if (btn.getLabel() == "歸零")</p><p> txt.setText(""); </p><p><b> (3) 窗體關閉</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()方法實現窗體關閉。</p><p> (4) 記住前一個運算符</p><p> 引入一個字符串類型的類變量 s記錄前一個運算符,每次按運算符是先執(zhí)行前一個運算符的結果。</p><p> 4、運行調試與分析討論</p><p> 調試運行4*5運算,運算過程如下所示:</p&g
32、t;<p> 測試程序,點擊數字鍵可將數據輸入到文本框,點擊“+”、“-”、“*”、“/”按鈕可進行前一個運算,點擊“=”可完成整個運算。從而達到能進行加、減、乘、除運算的簡易計算器的功能。點擊關閉圖標可關閉計算器。</p><p><b> 5、設計體會與小結</b></p><p> 通過這次課程設計,我了解到java也是可以分工合作的,雖然最
33、后的整合過程非常麻煩,但是在整合完后,我們發(fā)現,課本被翻過很多遍,很多以前不知道的東西就這樣豁然開朗了。我們還引用了很多從來沒有用過的語句塊,大多是從網上找到,然后自己整合進入代碼,再實現我們想要的功能。</p><p> 編程是個艱難的過程,很多功能語句都需要上網或者是查其他書籍來查看他們的用法,課本上的東西對我們來說遠遠不夠,我們要把目光放長遠一些。</p><p> 這次的課程設
34、計使我對JAVA的許多東西都有了更深一步的了解,以前對自己的要求是看得懂就行,現在才發(fā)現,光能看懂是遠遠不夠的,能看懂并不代表你會!只有自己真的親身體驗到了,才會知道。</p><p> 這個禮拜的課程設計是這個學期最累的一個禮拜,但是,我們的付出總算有回報,雖然我們的計算器可能還存在不少的問題,但是,至少它可以正常運行四則運算,基本達到了我們預期的要求,所以,這個禮拜同樣是我最充實的一個禮拜。</p&g
35、t;<p><b> 6、參考文獻</b></p><p> [1] 丁振凡,《JAVA語言程序設計》,清華大學出版社.</p><p> [2] 丁振凡,《JAVA語言程序設計實驗指導與習題解答》,清華大學出版社.</p><p> [3] 杜春濤,《面向對象程序設計—Java語言》,中國鐵道出版社.</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", "=", "/", "關閉" };</p><p> static double a;</p><p> static String s, str;//定義變量 創(chuàng)建對像&
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("簡單計算器");</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);//都是些窗中設置 添加相關組件和監(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)聽器事件 通過按鍵得出結果</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() {//編寫具體計算方法 </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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論