java課程設(shè)計(jì)計(jì)算器報(bào)告書(shū)模版(軟件工程)_第1頁(yè)
java課程設(shè)計(jì)計(jì)算器報(bào)告書(shū)模版(軟件工程)_第2頁(yè)
java課程設(shè)計(jì)計(jì)算器報(bào)告書(shū)模版(軟件工程)_第3頁(yè)
java課程設(shè)計(jì)計(jì)算器報(bào)告書(shū)模版(軟件工程)_第4頁(yè)
java課程設(shè)計(jì)計(jì)算器報(bào)告書(shū)模版(軟件工程)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)(論文)任務(wù)書(shū)1本課程設(shè)計(jì)的目的(1)使學(xué)生鞏固和提高Java編程技術(shù)(2)培養(yǎng)學(xué)生掌握程序設(shè)計(jì)的基本思路和方法; (3)加強(qiáng)學(xué)生研發(fā)、調(diào)試程序的能力;(4)培養(yǎng)學(xué)生分析、解決問(wèn)題的能力;(5)提高學(xué)生的科技論文寫(xiě)作能力。2課程設(shè)計(jì)的任務(wù)及要求(以制作一個(gè)圖形編輯系統(tǒng)作為模板)1)任務(wù): 設(shè)計(jì)一個(gè)圖形界面(GUI)的計(jì)算器應(yīng)用程序,完成簡(jiǎn)單的算術(shù)運(yùn)算、 設(shè)計(jì)的計(jì)算器應(yīng)用程序可以完成加法、減法、乘法、除法和取余運(yùn)算。且有小數(shù)點(diǎn)、正負(fù)號(hào)、求倒數(shù)、退格和清零等功能。用鼠標(biāo)單擊相應(yīng)的數(shù)字鍵和運(yùn)算符號(hào)鍵,然后單擊=按鈕,窗口上方的文本框?qū)?huì)顯示計(jì)算出來(lái)的結(jié)果,要將文本編輯框清零,可單擊清零按鈕。

2、 2)創(chuàng)新要求: 在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如:如何利用鼠標(biāo)選取圖形,刪除。3)課程設(shè)計(jì)論文編寫(xiě)要求(1)課程設(shè)計(jì)任務(wù)及要求(2)需求分析(3)設(shè)計(jì)思路-工作原理、功能規(guī)劃(4)詳細(xì)設(shè)計(jì)-數(shù)據(jù)分析、算法思路、類(lèi)設(shè)計(jì)、功能實(shí)現(xiàn)(含程序流程圖、主要代碼及注釋?zhuān)⒔缑娴?。?)運(yùn)行調(diào)試與分析討論-給出運(yùn)行屏幕截圖,分析運(yùn)行結(jié)果,有何改進(jìn)想法等。(5)設(shè)計(jì)體會(huì)與小結(jié)-設(shè)計(jì)遇到的問(wèn)題及解決辦法,通過(guò)設(shè)計(jì)學(xué)到了哪些新知識(shí),鞏固了哪些知識(shí),有哪些提高。(6)參考文獻(xiàn)(必須按標(biāo)準(zhǔn)格式列出,可參考教材后面的參考文獻(xiàn)格式)(7) 報(bào)告按規(guī)定排版打印,要求裝訂平整,否則要求返工;(8) 課設(shè)報(bào)告的裝訂順序如

3、下:封面-任務(wù)書(shū)-中文摘要-目錄-正文-附錄(代碼及相關(guān)圖片)(9)嚴(yán)禁抄襲,如有發(fā)現(xiàn),按不及格處理。一、課設(shè)任務(wù)及要求1二、需求分析2三、設(shè)計(jì)思路7四、 詳細(xì)設(shè)計(jì).8五、 運(yùn)行調(diào)試與分析討論.15六、 設(shè)計(jì)體會(huì)與小結(jié)21七、參考文獻(xiàn)22八、源代碼.2330 / 33文檔可自由編輯打印一、課設(shè)任務(wù)及要求 設(shè)計(jì)一個(gè)圖形界面(GUI)的計(jì)算器應(yīng)用程序,完成簡(jiǎn)單的算術(shù)運(yùn)算、 設(shè)計(jì)的計(jì)算器應(yīng)用程序可以完成加法、減法、乘法、除法和取余運(yùn)算。且有小數(shù)點(diǎn)、正負(fù)號(hào)、求倒數(shù)、退格和清零等功能。用鼠標(biāo)單擊相應(yīng)的數(shù)字鍵和運(yùn)算符號(hào)鍵,然后單擊=按鈕,窗口上方的文本框?qū)?huì)顯示計(jì)算出來(lái)的結(jié)果,要將文本編輯框清零,可單擊清

4、零按鈕。二、需求分析1、 狀態(tài)定義1,剛啟動(dòng)計(jì)算器時(shí)的狀態(tài):開(kāi)始計(jì)算按鍵開(kāi)始鍵ON2清零:計(jì)算剛啟動(dòng)時(shí),或者任何時(shí)候鍵入了清零鍵,計(jì)算器所處的狀態(tài)。2一個(gè)操作數(shù):輸入了一個(gè)操作數(shù)時(shí)計(jì)算器所處的狀態(tài),如鍵入“2”后的狀態(tài),此時(shí)操作數(shù)為“2”,或者依次鍵入“3”、“8”后的狀態(tài),此時(shí)操作數(shù)為“38”。3運(yùn)算結(jié)果:鍵入了“=”鍵后計(jì)算器所處的狀態(tài),如依次鍵入“35=”之后計(jì)算器的狀態(tài)。在此狀態(tài)如果輸入數(shù)字,輸入的數(shù)字將作為第一個(gè)操作數(shù),開(kāi)始一次新的計(jì)算。4一個(gè)操作數(shù)和一個(gè)兩元符號(hào):輸入了一個(gè)操作數(shù)和加減乘除中的一個(gè)鍵后計(jì)算器的狀態(tài),如依次輸入“2”或“315=”之后計(jì)算器的狀態(tài)。5操作數(shù)兩元符操作數(shù)

5、:輸入了一個(gè)操作數(shù)、一個(gè)加減乘除符號(hào)和另一個(gè)操作數(shù)后計(jì)算器所處的狀態(tài),如依次鍵入“304”或“35=5”后計(jì)算器的狀態(tài)。6操作數(shù)兩元符運(yùn)算結(jié)果:輸入了一個(gè)操作數(shù)、一個(gè)加減乘除符號(hào)和另一個(gè)操作數(shù)后緊接著鍵入開(kāi)方鍵計(jì)算器所處的狀態(tài)。7錯(cuò)誤:執(zhí)行非法計(jì)算后所處的狀態(tài),如執(zhí)行0計(jì)算或者對(duì)負(fù)數(shù)的開(kāi)方計(jì)算后的狀態(tài)。比如6/0后計(jì)算的結(jié)果是“0不能做除數(shù)”。二、本計(jì)算器具有以下功能 :用表說(shuō)明狀態(tài)操作計(jì)算器響應(yīng)結(jié)果狀態(tài)清零鍵入數(shù)字鍵,如1顯示鍵入的數(shù)字,操作數(shù)=鍵入的數(shù)字一個(gè)操作數(shù)鍵入減號(hào)鍵相當(dāng)于鍵入了0,但負(fù)號(hào)不顯示,只顯示0。一個(gè)操作數(shù)鍵入除減號(hào)鍵和數(shù)字鍵以外的鍵忽略鍵入的鍵,仍保留清零狀態(tài)清零一個(gè)操作

6、數(shù)鍵入數(shù)字鍵顯示新操作數(shù),新操作數(shù)=當(dāng)前操作數(shù)*10+鍵入的數(shù)字一個(gè)操作數(shù)鍵入回退鍵顯示新操作數(shù),新操作數(shù)=當(dāng)前操作數(shù)除以10取整一個(gè)操作數(shù)清屏鍵顯示0,但操作數(shù)不變一個(gè)操作數(shù)鍵入清零(任何狀態(tài)下,鍵入清零鍵都會(huì)到清零狀態(tài)下,以下的狀態(tài)不再重復(fù))清零清零鍵入加減乘除中任意鍵仍顯示操作數(shù),跳轉(zhuǎn)到狀態(tài)“一個(gè)操作數(shù)和一個(gè)兩元符號(hào)”一個(gè)操作數(shù)和一個(gè)兩元符號(hào)鍵入開(kāi)方鍵對(duì)操作數(shù)執(zhí)行開(kāi)方運(yùn)算,顯示運(yùn)算結(jié)果運(yùn)算結(jié)果鍵入=鍵顯示操作數(shù),如果操作數(shù)為負(fù)數(shù),顯示負(fù)號(hào)和操作數(shù),如“32”運(yùn)算結(jié)果一個(gè)操作數(shù)和一個(gè)兩元符號(hào)鍵入%忽略,不做任何處理一個(gè)操作數(shù)和一個(gè)兩元符號(hào)鍵入加減乘除之一用新操作符替換原操作符,如當(dāng)前是“3

7、0”,接著鍵入“”則變?yōu)椤?0”一個(gè)操作數(shù)和一個(gè)兩元符號(hào)鍵入=如果操作符為加法,則加0,顯示結(jié)果;如果操作符為減法,顯示為負(fù)數(shù);如果操作符為乘法,顯示為第一個(gè)操作數(shù)相乘,如鍵入12*=,結(jié)果為144;如果鍵入為除法,結(jié)果為1。運(yùn)算結(jié)果鍵入回退鍵第一個(gè)操作數(shù)回退一位,操作符保持不變,如:123+,鍵入回退鍵后顯示12,操作符仍然為+一個(gè)操作數(shù)和一個(gè)兩元符號(hào)鍵入開(kāi)方鍵執(zhí)行開(kāi)方操作,操作符保持不變;例如:當(dāng)前是“9”,鍵入開(kāi)方鍵則顯示3。運(yùn)算結(jié)果鍵入數(shù)字鍵、小數(shù)點(diǎn)鍵入的為第二個(gè)操作數(shù),例如:當(dāng)前是“9”,鍵入8,顯示為8操作數(shù)2元操作符操作數(shù)運(yùn)算結(jié)果鍵入加減乘除中任意鍵結(jié)果作為一個(gè)操作數(shù),例如:當(dāng)前

8、是“45”,鍵入*,顯示仍然是45,操作符是*,將執(zhí)行乘法。一個(gè)操作數(shù)和一個(gè)兩元符號(hào)鍵入數(shù)字和小數(shù)點(diǎn)清除結(jié)果,鍵入的數(shù)值作為新的操作數(shù);例如當(dāng)前是“16開(kāi)方”后的運(yùn)算結(jié)果,顯示是“4”;鍵入56,顯示“56”。一個(gè)操作數(shù)鍵入%、=鍵顯示結(jié)果。如:當(dāng)前是“16+開(kāi)方”后的運(yùn)算結(jié)果,鍵入=,顯示的結(jié)果為20。執(zhí)行16+16開(kāi)方的運(yùn)算;當(dāng)前顯示的結(jié)果9,或者任意其它值,輸入%,運(yùn)算結(jié)果顯示“0”。運(yùn)算結(jié)果鍵入開(kāi)方鍵運(yùn)算結(jié)果再執(zhí)行開(kāi)方運(yùn)算運(yùn)算結(jié)果鍵入回退鍵結(jié)果回退一位,如當(dāng)前顯示“123”,鍵入回退鍵,顯示“12”。運(yùn)算結(jié)果操作數(shù)2元操作符操作數(shù)鍵入加減乘除中任意鍵先執(zhí)行前面的計(jì)算,顯示結(jié)果并記下下一

9、個(gè)操作符;例如:起始狀態(tài)鍵入的是12*6,然后鍵入+,則顯示72一個(gè)操作數(shù)和一個(gè)兩元符號(hào)鍵入%例如輸入:12+3%,結(jié)果0.36; 12-3%,結(jié)果0.36;12*3%,結(jié)果0.36;123%,結(jié)果0.36;一律按照乘法計(jì)算。運(yùn)算結(jié)果鍵入=執(zhí)行運(yùn)算,得出結(jié)果。例如當(dāng)前是鍵入了“1+2”,再鍵入“=”,顯示“3”。運(yùn)算結(jié)果鍵入數(shù)字鍵、回退鍵、小數(shù)點(diǎn)鍵等待鍵入第二個(gè)操作數(shù)完畢操作數(shù)2元操作符操作數(shù)開(kāi)方鍵第二個(gè)操作數(shù)開(kāi)方操作數(shù)2元操作符運(yùn)算結(jié)果操作符為除號(hào),第二個(gè)操作數(shù)為0;負(fù)數(shù)開(kāi)方不正確的運(yùn)算錯(cuò)誤操作數(shù)2元操作符運(yùn)算結(jié)果鍵入數(shù)字鍵、小數(shù)點(diǎn)鍵忽略開(kāi)方步驟,直接進(jìn)行操作數(shù)與鍵入數(shù)字進(jìn)行操作符的運(yùn)算。例

10、如:4+9開(kāi)方32結(jié)果為36; 5-9開(kāi)方65結(jié)果為-60。操作數(shù)2元操作符操作數(shù)鍵入=計(jì)算結(jié)果。例如:12+9開(kāi)方=,先計(jì)算9開(kāi)方=3,再12+3=15;12*64開(kāi)方=,結(jié)果96。運(yùn)算結(jié)果鍵入%例如輸入:12+9開(kāi)方,再鍵入%結(jié)果0.36;12-9開(kāi)方,再鍵入%結(jié)果0.36;12*9開(kāi)方,再鍵入%結(jié)果0.36;129開(kāi)方,再鍵入%結(jié)果0.36;一律按照乘法計(jì)算。運(yùn)算結(jié)果鍵入加減乘除中任意鍵得到運(yùn)算結(jié)果,并記憶操作符;例如12+9開(kāi)方,鍵入+得到15+。一個(gè)操作數(shù)和一個(gè)兩元符號(hào)鍵入開(kāi)方、回退鍵運(yùn)算結(jié)果再次執(zhí)行開(kāi)方或者回退操作數(shù)2元操作符運(yùn)算結(jié)果錯(cuò)誤清零以外的任何鍵忽略,計(jì)算器不做任何響應(yīng)錯(cuò)誤

11、清零鍵清零清零三、設(shè)計(jì)思路 本應(yīng)用程序繼承自框架類(lèi)(Frame),此程序使用Frame布局管理器GridBagLayout,將單行文本框加入到0行0列,包含各種按鈕的面板Panel 3 采用4行5列的網(wǎng)格布局,然后將數(shù)字按鈕和運(yùn)算符按鈕以及控制按鈕添加到面板中。同時(shí)注冊(cè)按鈕事件監(jiān)聽(tīng)器。如:Button b1=new Button();b1.addActionListener(this); b2.addActionListener(this); 事件監(jiān)聽(tīng)器中的事件處理方法void actionPerformed(ActionEvent evt)完成主要的按鈕事件的處理。事件處理分以下幾種情況:數(shù)

12、字按鈕事件(”0”,”1”,”2”8”,”9”)、運(yùn)算符按鈕事件(”+”,”“,”*”,”/”,”%”)、正負(fù)號(hào)按鈕事件(”+/-“)、小數(shù)點(diǎn)按鈕事件(”.”)、等號(hào)按鈕事件(”)、求倒按鈕事件(”1/x”)、退格按鈕事件(”退格”)、清楚按鈕事件(“C”)。在事件處理。觸發(fā)按鈕事件時(shí),要進(jìn)一步分析,是重新開(kāi)始計(jì)算時(shí)觸發(fā)的按鈕事件還是計(jì)算中間觸發(fā)的按鈕事件。四、詳細(xì)設(shè)計(jì)一 import語(yǔ)句,使用import語(yǔ)句引入java.awt.,java.awt.event.,javax.swing.,Javax.swing.border包中所有的類(lèi)。Java.awt.event.*引入系統(tǒng)事件類(lèi)包。im

13、port java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;二實(shí)現(xiàn)動(dòng)作事件監(jiān)聽(tīng)接口public class JiSuanQi extends JFrame implements ActionListener注冊(cè)事件源的動(dòng)作監(jiān)聽(tīng)者menuitem1.addActionListener(this); menuitem2.addActionListener(this); menuitem3.addActionListener(this);/注冊(cè)事件監(jiān)聽(tīng)器b1.addActionLis

14、tener(this); b2.addActionListener(this); b3.addActionListener(this);b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this);b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this);b10.addActionListener(this); b11.addActionListener(this); b12.addA

15、ctionListener(this);b13.addActionListener(this); b14.addActionListener(this); b15.addActionListener(this);b16.addActionListener(this); b17.addActionListener(this); b18.addActionListener(this);b19.addActionListener(this); b20.addActionListener(this);b01.addActionListener(this); b02.addActionListener(

16、this); b03.addActionListener(this);b04.addActionListener(this); b05.addActionListener(this);三組件的布局管理采用了AWT布局管理器當(dāng)中最復(fù)雜的,同時(shí)功能也是最強(qiáng)大的GridBagLayout布局方式.GridBagLayout g=new GridBagLayout();GridBagConstraints c=new GridBagConstraints();添加了三個(gè)面板進(jìn)行組件布局panel1=new JPanel();panel2=new JPanel();panel3=new JPanel()

17、;面板penel1中包括顯示操作結(jié)果的文本區(qū),penel中包括退格按鈕Backspace,全部清除按鈕CE,本次清除按鈕C,開(kāi)始按鈕ON,關(guān)閉按鈕OFF。Penel3中包括數(shù)字按鈕0,1,2,3,4,5,6,7,8,9小數(shù)點(diǎn)按鈕. ,除號(hào)按鈕(/),求根按鈕sqrt,乘號(hào)按鈕*,求余按鈕%,減號(hào)按鈕-,求倒數(shù)按鈕1/x,正負(fù)號(hào)按鈕+/-),加號(hào)按鈕+,等號(hào)按鈕=設(shè)置Penel1在0行0列即開(kāi)始的地方 GridBagConstraints c=new GridBagConstraints();c.gridx=0; c.gridy=0設(shè)置并添加penel2面板按鈕panel1.add(panel2

18、);GridBagLayout i=new GridBagLayout();GridBagConstraints j=new GridBagConstraints();panel2.setLayout(i);j.gridx=0; j.gridy=0;j.gridwidth=68; j.gridheight=40;j.fill=GridBagConstraints.BOTH; j.insets=new Insets(1,1,1,1);j.weightx=3.0; j.weighty=3.0;i.setConstraints(b04,j);panel2.add(b04);j.gridx=70;i.

19、setConstraints(b01,j);panel2.add(b01);j.gridx=140;i.setConstraints(b02,j);panel2.add(b02);j.gridx=210;i.setConstraints(b03,j);panel2.add(b03);j.gridx=280;i.setConstraints(b05,j);panel2.add(b05);c.gridy=120;c.gridheight=80;c.weighty=10.0;Penel3面板設(shè)置為4行5列共20個(gè)網(wǎng)格panel3.setLayout(new GridLayout(4,5);按布置好的

20、方式添加按鈕panel3.add(b1); panel3.add(b2); panel3.add(b3); panel3.add(b4); panel3.add(b5);panel3.add(b6); panel3.add(b7); panel3.add(b8); panel3.add(b9); panel3.add(b10);panel3.add(b11); panel3.add(b12); panel3.add(b13); panel3.add(b14); panel3.add(b15);panel3.add(b16); panel3.add(b17); panel3.add(b18);

21、panel3.add(b19); panel3.add(b20);panel3.setLayout(new GridLayout(4,5);四 在窗口中加入菜單定義一個(gè)菜單JMenuBar menubar;定義菜單組件各個(gè)部分的對(duì)象JMenu menu1,menu2,menu3;定義對(duì)象下的菜單項(xiàng)JMenuItem menuitem1,menuitem2,menuitem3,menuitem4,menuitem5;以下生成菜單組件對(duì)象menubar=new JMenuBar();menu1=new JMenu(File);menu2=new JMenu(Edit);menu3=new JMen

22、u(Help);menuitem1=new JMenuItem(ON);menuitem2=new JMenuItem(OFF);menuitem3=new JMenuItem(Close);menuitem4=new JMenuItem(Copy);menuitem5=new JMenuItem(Help);添加菜單條File,Edit,Help.菜單File中有菜單項(xiàng)ON,OFF,Close.菜單Edit中菜單項(xiàng)Copy,Help中菜單項(xiàng)Helppanel1.add(menubar);menubar.add(menu1);menubar.add(menu2);menubar.add(men

23、u3);menu1.add(menuitem1);menu1.add(menuitem2);menu1.addSeparator();menu1.add(menuitem3);menu2.add(menuitem4);menu3.add(menuitem5);五 處理按鈕事件if(e.getSource()=menuitem1)label.setText(a); b=true;else if(e.getSource()=menuitem2)label.setText(); b=false;else if(e.getSource()=menuitem3)System.exit(0);else i

24、f(e.getSource()=b04)label.setText(a); b=true;else if(e.getSource()=b05)label.setText(); b=false;if(b)if(e.getSource()=b1)if(label.getText().equals(0)label.setText(7); else if(!c)label.setText(label.getText().concat(7); elselabel.setText(7); c=false; n=0.0; if(e.getSource()=b2)if(label.getText().equa

25、ls(0)label.setText(8); else if(!c)label.setText(label.getText().concat(8); elselabel.setText(8); c=false; n=0.0; if(e.getSource()=b3)if(label.getText().equals(0)label.setText(9); else if(!c)label.setText(label.getText().concat(9); elselabel.setText(9); c=false; n=0.0; if(e.getSource()=b6)if(label.ge

26、tText().equals(0)label.setText(4); else if(!c)label.setText(label.getText().concat(4); elselabel.setText(4); c=false; n=0.0; if(e.getSource()=b7)if(label.getText().equals(0)label.setText(5); else if(!c)label.setText(label.getText().concat(5); elselabel.setText(5); c=false; n=0.0; if(e.getSource()=b8

27、)if(label.getText().equals(0)label.setText(6); else if(!c)label.setText(label.getText().concat(6); elselabel.setText(6); c=false; n=0.0; if(e.getSource()=b11)if(label.getText().equals(0)label.setText(1); else if(!c)label.setText(label.getText().concat(1); elselabel.setText(1); c=false; n=0.0; if(e.g

28、etSource()=b12)if(label.getText().equals(0)label.setText(2); else if(!c)label.setText(label.getText().concat(2); elselabel.setText(2); c=false; n=0.0; if(e.getSource()=b13)if(label.getText().equals(0)label.setText(3); else if(!c)label.setText(label.getText().concat(3); elselabel.setText(3); c=false;

29、 n=0.0; if(e.getSource()=b16)if(label.getText().equals(0)label.setText(0); else if(!c)label.setText(label.getText().concat(0); elselabel.setText(0); c=false; n=0.0; if(e.getSource()=b18) if(!label.getText().contains(.)label.setText(label.getText().concat(.); if(e.getSource()=b4) c=true; d=1; m=m.val

30、ueOf(label.getText(); if(e.getSource()=b9) c=true; d=2; m=m.valueOf(label.getText(); if(e.getSource()=b14) c=true; d=3; m=m.valueOf(label.getText(); if(e.getSource()=b19) c=true; d=4; m=m.valueOf(label.getText(); 異?,F(xiàn)象處理 if(e.getSource()=b15) m=m.valueOf(label.getText(); if(m=0)label.setText(0沒(méi)有倒數(shù));

31、elsem=1/m; if(e.getSource()=b5) m=m.valueOf(label.getText(); if(m0)label.setText(負(fù)數(shù)不能被開(kāi)方);流程圖五、運(yùn)行調(diào)試與分析討論剛開(kāi)始界面啟動(dòng)計(jì)算器:按鍵ON,也可以通過(guò)菜單中File中ON。關(guān)閉按鍵OFF開(kāi)始或清零界面實(shí)現(xiàn)5的根號(hào)6的倒數(shù)兩數(shù)相乘583*2516=1466828退格鍵正負(fù)號(hào)按鈕實(shí)現(xiàn)還可實(shí)現(xiàn)加法,減法,除法,求余等功能6、 設(shè)計(jì)體會(huì)與小結(jié) 通過(guò)這個(gè)星期每天通宵達(dá)旦的做課設(shè),雖然最后是完成了任務(wù)。但是做起來(lái)很費(fèi)力 ,有些地方還是沒(méi)怎么搞懂,時(shí)間又不允許總在一個(gè)問(wèn)題上糾結(jié)。所以只是很表面的學(xué)習(xí)了一下東西

32、 ,通過(guò)這次課設(shè)使我明白, 要腳踏實(shí)地學(xué)習(xí),快餐式的學(xué)習(xí)不可取 。在編寫(xiě)代碼的時(shí)候出現(xiàn)了很多錯(cuò)誤,都是一些平時(shí)不怎么關(guān)注的,所以,平時(shí)還是要多實(shí)踐。還有最重要的一點(diǎn)就是 不到萬(wàn)不得已才去請(qǐng)教別人要知道獨(dú)立思考的能力對(duì)你很重要。要知道程序員的時(shí)間是很寶貴的。七、參考文獻(xiàn)1 作者1,作者2. 參考書(shū)籍名稱(chēng)M. 出版地:出版社名稱(chēng),出版年限參考資料宏維恩 Java 2 面向?qū)ο蟪绦蛟O(shè)計(jì) 中國(guó)鐵道出版社 2002徐迎曉 Java語(yǔ)法及網(wǎng)絡(luò)應(yīng)用設(shè)計(jì) 清華大學(xué)出版社 2002戴特爾(美)Java 大學(xué)簡(jiǎn)明教程實(shí)例程序設(shè)計(jì) 2005八,源代碼import java.awt.*;import java.awt

33、.event.*;import javax.swing.*;import javax.swing.border.*;public class JiSuanQi extends JFrame implements ActionListener/ JiSuanQi 繼承Frame實(shí)現(xiàn)ActionListener接口JMenuBar menubar;/定義一個(gè)菜單JMenu menu1,menu2,menu3;/定義菜單組件各個(gè)部分的對(duì)象JMenuItem menuitem1,menuitem2,menuitem3,menuitem4,menuitem5;/定義對(duì)象下的菜單項(xiàng)JLabel label

34、;JButtonb1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b01,b02,b03,b04,b05;JPanel panel1,panel2,panel3;/定義三個(gè)面板String a=0;boolean b,c;Double m=0.0,n=0.0,r=0.0;Integer h=0;int d;public JiSuanQi()setTitle(jisuanqi);panel1=new JPanel();panel2=new JPanel();panel3=new JPanel();menu

35、bar=new JMenuBar();/以下生成菜單組件對(duì)象menu1=new JMenu(File);menu2=new JMenu(Edit);menu3=new JMenu(Help);menuitem1=new JMenuItem(ON);menuitem2=new JMenuItem(OFF);menuitem3=new JMenuItem(Close);menuitem4=new JMenuItem(Copy);menuitem5=new JMenuItem(Help);label=new JLabel();b1=new JButton(7); b2=new JButton(8);

36、 b3=new JButton(9); b4=new JButton(/);b5=new JButton(sqrt); b6=new JButton(4); b7=new JButton(5); b8=new JButton(6);b9=new JButton(*); b10=new JButton(%); b11=new JButton(1); b12=new JButton(2);b13=new JButton(3); b14=new JButton(-); b15=new JButton(1/x); b16=new JButton(0);b17=new JButton(+/-); b18

37、=new JButton(.); b19=new JButton(+); b20=new JButton(=);b01=new JButton(Backspace); b02=new JButton(CE); b03=new JButton(C);b04=new JButton(ON); b05=new JButton(OFF);setSize(350,240);設(shè)置計(jì)算器的長(zhǎng)寬label.setBorder(BorderFactory.createBevelBorder(1);/建立一個(gè)立體的邊界label.setOpaque(true);/設(shè)置不透明,以便設(shè)置背景色label.setBac

38、kground(Color.white);/設(shè)置背景色白色label.setHorizontalAlignment(SwingConstants.RIGHT);顯示在右邊label.setCursor(new Cursor(Cursor.TEXT_CURSOR);add(panel1);GridBagLayout g=new GridBagLayout();GridBagConstraints c=new GridBagConstraints();panel1.setSize(350,200);panel1.setLayout(g);c.gridx=0; c.gridy=0;/這個(gè)屬性是用來(lái)描

39、述組件在布局時(shí)應(yīng)處于那個(gè)網(wǎng)格位置,即描述網(wǎng)格開(kāi)始的位置.gridx=0,gridy=0時(shí)放在0行0列.c.gridwidth=350; c.gridheight=20;/這兩個(gè)屬性用來(lái)描述組件在布局中的所占的網(wǎng)格的個(gè)數(shù),gridwidth描述了該組件在橫向上所占網(wǎng)格的個(gè)數(shù),gridheight描述了該組件在縱向上所占網(wǎng)格的個(gè)數(shù)c.fill=GridBagConstraints.BOTH;c.insets=new Insets(1,1,1,1);/ 設(shè)置組件之間彼此的間距。c.weightx=10.0; c.weighty=0.0;g.setConstraints(menubar,c);pane

40、l1.add(menubar);menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);menu1.add(menuitem1);menu1.add(menuitem2);menu1.addSeparator();menu1.add(menuitem3);menu2.add(menuitem4);menu3.add(menuitem5);c.gridy=20;c.gridheight=50;g.setConstraints(label,c);panel1.add(label);c.gridy=70;c.gridheight=50;c.w

41、eighty=3.0;g.setConstraints(panel2,c);panel1.add(panel2);GridBagLayout i=new GridBagLayout();GridBagConstraints j=new GridBagConstraints();panel2.setLayout(i);j.gridx=0; j.gridy=0;j.gridwidth=68; j.gridheight=40;j.fill=GridBagConstraints.BOTH; j.insets=new Insets(1,1,1,1);j.weightx=3.0; j.weighty=3.

42、0;i.setConstraints(b04,j);panel2.add(b04);j.gridx=70;i.setConstraints(b01,j);panel2.add(b01);j.gridx=140;i.setConstraints(b02,j);panel2.add(b02);j.gridx=210;i.setConstraints(b03,j);panel2.add(b03);j.gridx=280;i.setConstraints(b05,j);panel2.add(b05);c.gridy=120;c.gridheight=80;c.weighty=10.0;g.setCon

43、straints(panel3,c);panel1.add(panel3);panel3.setLayout(new GridLayout(4,5);/pencel3面板設(shè)置為4行5列共20個(gè)網(wǎng)格panel3.add(b1); panel3.add(b2); panel3.add(b3); panel3.add(b4); panel3.add(b5);/添加按鈕panel3.add(b6); panel3.add(b7); panel3.add(b8); panel3.add(b9); panel3.add(b10);panel3.add(b11); panel3.add(b12); pane

44、l3.add(b13); panel3.add(b14); panel3.add(b15);panel3.add(b16); panel3.add(b17); panel3.add(b18); panel3.add(b19); panel3.add(b20);menuitem1.addActionListener(this); menuitem2.addActionListener(this); menuitem3.addActionListener(this);/注冊(cè)菜單項(xiàng)的事件監(jiān)聽(tīng)器b1.addActionListener(this); b2.addActionListener(this)

45、; b3.addActionListener(this);b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this);b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this);b10.addActionListener(this); b11.addActionListener(this); b12.addActionListener(this);b13.addActionListen

46、er(this); b14.addActionListener(this); b15.addActionListener(this);b16.addActionListener(this); b17.addActionListener(this); b18.addActionListener(this);b19.addActionListener(this); b20.addActionListener(this);b01.addActionListener(this); b02.addActionListener(this); b03.addActionListener(this);b04.

47、addActionListener(this); b05.addActionListener(this);/給按鈕注冊(cè)事件監(jiān)視器public void actionPerformed(ActionEvent e)/處理按鈕事件if(e.getSource()=menuitem1)label.setText(a); b=true;else if(e.getSource()=menuitem2)label.setText(); b=false;else if(e.getSource()=menuitem3)System.exit(0);else if(e.getSource()=b04)label

48、.setText(a); b=true;else if(e.getSource()=b05)label.setText(); b=false;if(b)if(e.getSource()=b1)if(label.getText().equals(0)label.setText(7); else if(!c)label.setText(label.getText().concat(7); elselabel.setText(7); c=false; n=0.0; if(e.getSource()=b2)if(label.getText().equals(0)label.setText(8); else if(!c)label.setText(label.getText().concat(8); elselabel.setText(8); c=false

溫馨提示

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

評(píng)論

0/150

提交評(píng)論