基于java的標(biāo)準(zhǔn)型計(jì)算器設(shè)計(jì)【畢業(yè)論文】_第1頁(yè)
已閱讀1頁(yè),還剩38頁(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><b>  本科畢業(yè)設(shè)計(jì)</b></p><p><b> ?。?0 屆)</b></p><p>  基于Java的標(biāo)準(zhǔn)型計(jì)算器設(shè)計(jì)</p><p>  所在學(xué)院 </p><p>  專業(yè)班級(jí) 通信工程

2、 </p><p>  學(xué)生姓名 學(xué)號(hào) </p><p>  指導(dǎo)教師 職稱 </p><p>  完成日期 年 月 </p><p><b>  摘 要</b>&

3、lt;/p><p>  Java語(yǔ)言是由美國(guó)Sun Microsystems公司開(kāi)發(fā)的一種程序設(shè)計(jì)語(yǔ)言,現(xiàn)在已經(jīng)成為Internet的主力開(kāi)發(fā)語(yǔ)言。它采用了面向?qū)ο蠹夹g(shù),具有支持分布式、安全、結(jié)構(gòu)中立、可移植性強(qiáng)和多線程等特點(diǎn),現(xiàn)在已經(jīng)成為網(wǎng)絡(luò)編程的首先語(yǔ)言。</p><p>  基于Java的標(biāo)準(zhǔn)型計(jì)算器設(shè)計(jì)旨在熟悉使用Java語(yǔ)言,并且運(yùn)用于實(shí)踐。目前計(jì)算器運(yùn)用領(lǐng)域非常廣泛。以體積小、分量

4、輕、便于攜帶等優(yōu)點(diǎn),倍受室外工作者的青睞;另外,其更大的優(yōu)點(diǎn)是價(jià)格低廉、可靠耐用。進(jìn)一步熟悉并了解了Java語(yǔ)言中多種方法和類的使用。</p><p>  通過(guò)JBuilder開(kāi)發(fā)工具編程基本實(shí)現(xiàn)預(yù)期目標(biāo)。課題運(yùn)用到大量的理論基礎(chǔ)作為支持,在設(shè)計(jì)Java計(jì)算器時(shí)按步驟進(jìn)行了設(shè)計(jì):分析系統(tǒng)總功能,確定計(jì)算器軟件的基本功能;初步、粗略設(shè)計(jì)系統(tǒng)界面。使用Java進(jìn)行編寫(xiě)程序,實(shí)現(xiàn)算術(shù)操作、平方根、百分比等基本運(yùn)算功能;

5、設(shè)計(jì)Java計(jì)算器各個(gè)模塊實(shí)現(xiàn)記憶功能,恢復(fù)以前保存的運(yùn)算結(jié)果;編寫(xiě)各模塊代碼實(shí)現(xiàn)計(jì)算器的其他高級(jí)功能;調(diào)試Java計(jì)算器,完善計(jì)算器功能。</p><p>  經(jīng)過(guò)長(zhǎng)時(shí)間的研究和學(xué)習(xí)。目前已經(jīng)基本實(shí)現(xiàn)了算術(shù)操作、平方根、百分比等基本運(yùn)算功能;實(shí)現(xiàn)記憶功能,恢復(fù)以前保存的運(yùn)算結(jié)果;實(shí)現(xiàn)計(jì)算器的其他高級(jí)功能;實(shí)現(xiàn)的客戶端界面友好美觀。</p><p>  關(guān)鍵詞:Java;JBuilder;

6、 廣泛;計(jì)算器;記憶;界面;</p><p><b>  Abstract</b></p><p>  Java language is from the developed from Microsystems a programming language, the internet has now become the main development langua

7、ge. It uses object-oriented technology, with support distributed, safety, structural neutral, portability, and strong characteristics such as multithreaded programming, have become the first language network. </p>

8、<p>  Based on Java standard calculator designed to familiar with use Java language and applied in practice. Currently calculator using field is very wide. With small volume, light weight, easy to carry, much outdo

9、or workers advantages of favour. In ddition, its greater advantage is cheap, reliable and durable. Further recognition and understanding the Java language in the use of various methods and classes.</p><p>  

10、Through the JBuilder development tools programming basic achieve the desired goals. Subject to apply a lot of theoretical basis as support. In design according to the procedures when Java calculator designed. Analysis th

11、e system total function, determine the basic functions; calculators software Preliminary, rough design system interface. Use Java for program, realize arithmetic operations, square root, basic computing functions; the pe

12、rcentage of Design Java calculator modules realize memory fu</p><p>  After a long time. research and study. At present already basically achieved arithmetic operations, square root, basic computing function

13、 percentage. Realize memory function, restore before the operation result. The other senior function realization calculator. Achieve client friendly interface beautiful. </p><p>  Key Words: Java; JBuilder;

14、widely; calculator; memory; interface </p><p><b>  目 錄</b></p><p><b>  1 概述1</b></p><p>  1.1 課題研究背景及意義1</p><p>  1.2 開(kāi)發(fā)工作與論文的主要內(nèi)容2</p>

15、;<p>  1.2.1 開(kāi)發(fā)工作主要內(nèi)容2</p><p>  1.2.2 論文主要內(nèi)容2</p><p><b>  2 事件處理2</b></p><p>  2.1 接口和包3</p><p>  2.1.1接口…………………………………………………………………….3</p>

16、<p>  2.1.2包.............................................................................................................4</p><p>  2.2 組件事件處理4</p><p>  2.3 GUI程序設(shè)計(jì)常用容器6</p><p&

17、gt;  2.3.1框架…………………………………………………………………….6</p><p>  2.3.2面板…………………………………………………………………….6</p><p>  2.4 布局管理器8</p><p>  2.4.1 FlowLayout布局管理器……………………………………………….9</p><p>  2

18、.4.2 BorderLayout布局管理器………………………………………………………...9</p><p>  2.4.3 GridLayout布局管理器………………………………………………10</p><p>  2.4.4 CardLayout布局管理器…………………………………………...…10</p><p>  2.5本章小結(jié)…………………………………

19、……………………………….….11</p><p><b>  3 軟件設(shè)計(jì)11</b></p><p>  3.1總體方案11</p><p>  3.2 開(kāi)發(fā)平臺(tái)的選擇……………………………………………………………12</p><p>  3.3總體程序流程圖…………………………………………………………….13&

20、lt;/p><p>  3.4 制作和調(diào)試…………………………………………………………………14</p><p>  3.4.1基本思路…………………………………………………………....................…143.4.2關(guān)鍵代碼分析……………………………………………………………………14</p><p>  4 運(yùn)行結(jié)果分析16</p>

21、<p>  4.1 運(yùn)行情況16</p><p>  4.2 有待完善方面21</p><p>  5 結(jié)論……………………………………………………………………………...22</p><p><b>  致 謝23</b></p><p><b>  參考文獻(xiàn)24</b>&l

22、t;/p><p>  附錄1 主要源程序代碼25</p><p>  附錄2 畢業(yè)設(shè)計(jì)作品說(shuō)明書(shū)38</p><p><b>  1 概述</b></p><p>  1.1 課題研究背景及意義</p><p>  Java語(yǔ)言是由美國(guó)Sun Microsystems公司開(kāi)發(fā)的一種程序設(shè)計(jì)語(yǔ)言

23、,現(xiàn)在已經(jīng)成為Internet的主力開(kāi)發(fā)語(yǔ)言。它采用了面向?qū)ο蠹夹g(shù),具有支持分布式、安全、結(jié)構(gòu)中立、可移植性強(qiáng)和多線程等特點(diǎn),現(xiàn)在已經(jīng)成為網(wǎng)絡(luò)編程的首先語(yǔ)言。[1]</p><p>  隨著社會(huì)的進(jìn)步,科學(xué)的發(fā)展,計(jì)算器的使用經(jīng)歷了小編程容量計(jì)算器向較大編程容量計(jì)算器普及的過(guò)程。在這期間,又有不斷的升級(jí)換代,功能更加強(qiáng)勁。但編程的基本原理還是大同小易,目的都是為生產(chǎn)建設(shè)提供方便的服務(wù)。</p>&l

24、t;p>  基于Java的標(biāo)準(zhǔn)型計(jì)算器設(shè)計(jì)旨在熟悉使用Java語(yǔ)言,并且運(yùn)用于實(shí)踐。目前計(jì)算器運(yùn)用領(lǐng)域非常廣泛。計(jì)算器不僅在土木工程、森林調(diào)查、應(yīng)用化學(xué)領(lǐng)域中使用,而且在工程測(cè)量計(jì)算、測(cè)量機(jī)械作業(yè)面積等方面依然運(yùn)用廣泛[2]。以體積小、分量輕、便于攜帶等優(yōu)點(diǎn),倍受室外工作者的青睞;另外,其更大的優(yōu)點(diǎn)是價(jià)格低廉、可靠耐用。</p><p>  自己編寫(xiě)的基于Java計(jì)算器具備以下優(yōu)勢(shì):</p>

25、<p>  可維護(hù)性強(qiáng);Java語(yǔ)言具有支持分布式、安全結(jié)構(gòu)中立、可移植性強(qiáng)和多線程等特點(diǎn)。做一個(gè)基于Java的計(jì)算器可維護(hù)性較強(qiáng)。</p><p>  可升級(jí)性強(qiáng);自己編寫(xiě)的計(jì)算器熟悉代碼,發(fā)現(xiàn)不足之處可以及時(shí)的修改升級(jí)。</p><p>  具有友好的界面;計(jì)算器軟件界面可以設(shè)計(jì)的五花八門,根據(jù)用戶的需要可以編寫(xiě)更適合的界面。例如按鍵的顏色、形狀都可以改變。</p>

26、;<p>  4 人性化;現(xiàn)在大多數(shù)手機(jī)等移動(dòng)設(shè)備都支持Java,可能手機(jī)等設(shè)備都有計(jì)算器軟件,但是大多數(shù)都沒(méi)有強(qiáng)勁的功能或者友好的界面環(huán)境。因此可以根據(jù)需要在移動(dòng)設(shè)備中加入自己編寫(xiě)好的計(jì)算器軟件。</p><p>  1.2 開(kāi)發(fā)工作與論文的主要內(nèi)容</p><p>  1.2.1 開(kāi)發(fā)工作主要內(nèi)容</p><p>  本次課題主要研究的內(nèi)容是基

27、于Java平臺(tái),通過(guò)JBuilder進(jìn)行軟件編程測(cè)試和運(yùn)行。</p><p>  1.2.2 論文主要內(nèi)容</p><p>  論文分成五章來(lái)介紹在Java平臺(tái)下標(biāo)準(zhǔn)型計(jì)算器開(kāi)發(fā),包括了開(kāi)發(fā)所需要的相關(guān)知識(shí)、開(kāi)發(fā)的方案以及開(kāi)發(fā)過(guò)程。</p><p>  第一章為本次課題的概述,介紹了課題研究背景及意義,同時(shí)簡(jiǎn)單介紹了Java的地位以及前景。本次計(jì)算器軟件開(kāi)發(fā)需要做的

28、事項(xiàng)以及論文的主要內(nèi)容也略有涉及。</p><p>  第二章為介紹事件處理,接口和包的介紹以及GUI布局管理器。介紹組件事件處理程序。著重介紹了了布局管理器最基本的4種。分別是FlowLayout 布局管理器(Panel類和Applet類的默認(rèn)布局管理器)、BorderLayout 布局管理器(Window/Dialog類和Frame類的默認(rèn)布局管理器)、 GridLayout 布局管理器 CardLayout

29、布局管理器。</p><p>  第三章為開(kāi)發(fā)設(shè)計(jì),介紹了總體的方案和開(kāi)發(fā)平臺(tái),同時(shí)還介紹Jbuilder開(kāi)發(fā)平臺(tái)的優(yōu)缺點(diǎn),最后重點(diǎn)介紹了軟件開(kāi)發(fā)的思路以及程序中的關(guān)鍵代碼。并且介紹了基于Java的標(biāo)準(zhǔn)型計(jì)算器軟件設(shè)計(jì)的基本流程圖。</p><p>  第四章為運(yùn)行結(jié)果分析,主要是進(jìn)行測(cè)試,給出測(cè)試結(jié)果分析,同時(shí)給出了截圖。同時(shí)分析本次設(shè)計(jì)的不足的地方,還有后期有待完善和開(kāi)發(fā)的方面。<

30、;/p><p>  第五章為結(jié)論,是對(duì)本次設(shè)計(jì)做的一個(gè)全面總結(jié)。指出了課題設(shè)計(jì)Java基礎(chǔ)知識(shí)的重要性,還有Java語(yǔ)言的博大精深。目前計(jì)算器運(yùn)用領(lǐng)域非常廣泛。然而在編寫(xiě)Java計(jì)算器的時(shí)候還有很多地方存在著缺陷,主要的都體現(xiàn)在功能的完善和界面的美化上面等。</p><p><b>  2 事件處理</b></p><p><b>  2

31、.1 接口和包</b></p><p><b>  2.1.1接口</b></p><p>  Java提供接口概念,它允許一個(gè)類同時(shí)實(shí)現(xiàn)多個(gè)接口,它就相當(dāng)于部分實(shí)現(xiàn)多繼承。Java提供的包與此類似。</p><p>  接口就是一系列常量和空方法的集合,它提供了多個(gè)類共有的方法,但不限制每個(gè)類如何實(shí)現(xiàn)這些方法。接口繼承和實(shí)現(xiàn)繼承的

32、規(guī)則不同,一個(gè)類只有一個(gè)直接父類,但可以實(shí)現(xiàn)多個(gè)接口。[3]</p><p>  Java接口本身沒(méi)有任何實(shí)現(xiàn),因?yàn)镴ava接口不涉及表象,而只描述public行為,所以Java接口比Java抽象類更抽象化。Java接口的方法只能是抽象的和公開(kāi)的,Java接口不能有構(gòu)造器,Java接口可以有public,靜態(tài)的和final屬性。接口把方法的特征和方法的實(shí)現(xiàn)分割開(kāi)來(lái)。這種分割體現(xiàn)在接口常常代表一個(gè)角色,它包裝與該角

33、色相關(guān)的操作和屬性,而實(shí)現(xiàn)這個(gè)接口的類便是扮演這個(gè)角色的演員。一個(gè)角色由不同的演員來(lái)演,而不同的演員之間除了扮演一個(gè)共同的角色之外,并不要求其它的共同之處。</p><p>  1、Java接口常用方法[4]</p><p><b>  (1)單方法接口 </b></p><p><b>  以下是引用片段: </b>&l

34、t;/p><p>  public interface Actionlistener{ </p><p>  public abstract void actionPerformed(ActionEvent event); </p><p><b>  } </b></p><p>  僅且只有一個(gè)方法,只有實(shí)現(xiàn)了這個(gè)接口(

35、重寫(xiě)這個(gè)接口中的唯一一個(gè)方法),你才有資格去事件監(jiān)聽(tīng)器列表里注冊(cè)(參數(shù)為Actionlistener類型),當(dāng)事件源變動(dòng)時(shí),自動(dòng)調(diào)用這個(gè)唯一的actionPerformed方法. </p><p><b>  (2)標(biāo)識(shí)接口 </b></p><p>  是沒(méi)有任何方法和屬性的接口。標(biāo)識(shí)接口不對(duì)實(shí)現(xiàn)它的類有任何語(yǔ)意上的要求,它僅僅表明了實(shí)現(xiàn)它的類屬于一個(gè)特定的類型(傳

36、遞)。 </p><p><b>  (3)常量接口 </b></p><p>  用Java接口來(lái)聲明一些常量,然后由實(shí)現(xiàn)這個(gè)接口的類使用這些常量(以前在做畫(huà)板的時(shí)候這么干過(guò))。建議不要模仿這種常量接口的做法。</p><p><b>  2.1.2包</b></p><p><b> 

37、 1、Java包</b></p><p>  為了更好地組織類,Java提供了包機(jī)制。包是類的容器,用于分隔類名空間。如果沒(méi)有指定包名,所有的示例都屬于一個(gè)默認(rèn)的無(wú)名包。Java中的包一般均包含相關(guān)的類,例如,所有關(guān)于交通工具的類都可以放到名為Transportation的包中。程序員可以使用package指明源文件中的類屬于哪個(gè)具體的包。包語(yǔ)句的格式為: package pkg1[.pkg2[.pk

38、g3…]] [3] </p><p>  程序中如果有package語(yǔ)句,該語(yǔ)句一定是源文件中的第一條可執(zhí)行語(yǔ)句,它的前面只能有注釋或空行。另外,一個(gè)文件中最多只能有一條package語(yǔ)句。 </p><p>  包的名字有層次關(guān)系,各層之間以點(diǎn)分隔。包層次必須與Java開(kāi)發(fā)系統(tǒng)的文件系統(tǒng)結(jié)構(gòu)相同。通常包名中全部用小寫(xiě)字母,這與類名以大寫(xiě)字母開(kāi)頭,且各字的首字母亦大寫(xiě)的命名約定有所不同。

39、</p><p>  當(dāng)使用包說(shuō)明時(shí),程序中無(wú)需再引用(import)同一個(gè)包或該包的任何元素。import語(yǔ)句只用來(lái)將其他包中的類引入當(dāng)前名字空間中。而當(dāng)前包總是處于當(dāng)前名字空間中。 </p><p>  如果文件聲明如下: package java.a(chǎn)wt.image </p><p>  則此文件必須存放在Windows的java\awt\image目錄下或u

40、nix的java/awt/image目錄下。 </p><p>  2.2 組件事件處理</p><p>  1、JButton與Button區(qū)別</p><p>  Button是在java.awt.*中的,JButton是在javax.swing.*中的</p><p>  swing類是awt的一個(gè)擴(kuò)展,它是由純JAVA語(yǔ)言編寫(xiě)的,它

41、有一個(gè)與平臺(tái)無(wú)關(guān)的實(shí)現(xiàn),而且具有一個(gè)藝術(shù)狀態(tài)的屬性集。</p><p>  2、Button事件處理[6]</p><p>  當(dāng)用戶用鼠標(biāo)單擊Button對(duì)象時(shí),僅僅產(chǎn)生一種ActionEvent事件。監(jiān)聽(tīng)者必須實(shí)現(xiàn)ActionListener接口,并通過(guò)addActionListener()方法向事件源注冊(cè)。ActionListener接口僅有一個(gè)方法,它的定義是:</p>

42、<p>  Public interface ActionListener extends EventListener{</p><p>  Public void actionPerformed(ActionEvent e);}</p><p>  actionPerformed()方法中的e.getActionCommand()是獲取與此動(dòng)作相關(guān)的命令名。testEven

43、tButton()構(gòu)造函數(shù)的a1.addActionListener(this),是將當(dāng)前對(duì)象(this指代的對(duì)象)注冊(cè)為a1對(duì)象的事件監(jiān)聽(tīng)者,每當(dāng)a1對(duì)象被單擊時(shí),將調(diào)用actionPerformed()進(jìn)行事件處理。</p><p>  3、JTextField事件處理</p><p>  JTextField是處理單行文本的,當(dāng)在這些對(duì)象中輸入數(shù)據(jù)并按下Enter鍵是,將觸發(fā)一個(gè)事件

44、。如果程序注冊(cè)一個(gè)事件監(jiān)聽(tīng)者,那么監(jiān)聽(tīng)者就可以處理這個(gè)事件,并可以使用此時(shí)的文本數(shù)據(jù)。</p><p>  當(dāng)有多個(gè)事件源時(shí),可以使用ActionEvent參數(shù)的getSource()方法來(lái)確定用戶到底與哪一個(gè)GUI構(gòu)件進(jìn)行了交互操作,通過(guò)這個(gè)方法可以獲取事件產(chǎn)生的對(duì)象。</p><p>  在actionPerformed()方法中,通過(guò)getActionCommand()方法可以獲取文

45、本框中的內(nèi)容。對(duì)于Button按鈕,通過(guò)此方法可以獲取按鈕表面的信息。在構(gòu)造函數(shù)中f1.addActionListener(handler)是將handler注冊(cè)為f1對(duì)象的監(jiān)聽(tīng)者。一個(gè)handler對(duì)象可以同時(shí)監(jiān)聽(tīng)對(duì)個(gè)事件源,為了區(qū)別當(dāng)前事件是由那個(gè)事件源引起的,在actionPerformed()方法中,通過(guò)if-else語(yǔ)句進(jìn)行了事件源判別。雖然f1對(duì)象不可被編輯,但仍然可以響應(yīng)事件。當(dāng)鼠標(biāo)選中該對(duì)象以后,按Enter鍵同樣可以獲

46、取該對(duì)象的文本信息。JTextArea雖然也是與文本有關(guān)的組件,支持多行文本,但在其區(qū)域按Enter鍵不會(huì)產(chǎn)生事件。</p><p>  2.3 GUI程序設(shè)計(jì)常用容器</p><p>  GUI程序設(shè)計(jì)中的常用容器:框架和面板。</p><p><b>  2.3.1.框架</b></p><p>  框架(JFram

47、e)是一種獨(dú)立存在的容器,在Swing中采用JFrame類定義,JFrame對(duì)象包含有邊框,并且必須調(diào)用Window類的show()方法或Component類的setVisible()方法顯示框架,否則該框架不可見(jiàn)。</p><p>  SetDefaultCloseOperation()是Jframe類中的一個(gè)方法,它通過(guò)調(diào)用system.exit(0)結(jié)束程序。[5]</p><p>

48、  JFrame內(nèi)部由各種組件構(gòu)成。處理框架時(shí),通常不是直接處理框架,而是處理內(nèi)部的組件,這就要用到其中的內(nèi)容格。通過(guò)getContPane()方法取得內(nèi)空格,返回一個(gè)可用的Container,并在其中設(shè)置布局管理器和添加組件。[6]</p><p><b>  2.3.2.面板</b></p><p>  面板與框架不同,它必須包括包含在另一個(gè)容器中。同時(shí),在它的內(nèi)

49、部還可以布置其他組件和面板。面板在Swing中采用Jpanel定義,在AWT中采用Panel定義。面板必須包含在另一個(gè)容器中。同時(shí),在它的內(nèi)部,還可以布置其他組件和面板。面板是一個(gè)輕量級(jí)容器組件,用法與Panel相同,用于容納界面元素,以便在布局管理器的設(shè)置下容納更多的組件,實(shí)現(xiàn)容器的嵌套。JPanel, JScrollPane, JsplitPane和JInternalFrame都屬于常用的中間容器,是輕量級(jí)組件。JPanel的默認(rèn)布

50、局管理器是FlowLayout</p><p>  java.lang.Object </p><p>  +--java.awt.Component</p><p>  +--java.awt.Container</p><p>  +--javax.swing.JComponent </p><p&

51、gt;  +--javax.swing.JPanel</p><p> ?。?)分層面板(JLayeredPane)</p><p>  Swing提供兩種分層面板:JLayeredPane和JDesktopPane。JDesktopPane是JLayeredPane的子類,專門為容納內(nèi)部框架(JInternalFrame)而設(shè)置。向一個(gè)分層面板中添加組件,需要說(shuō)明將其加入哪一層,指明組件

52、在該層中的位置:add(Component c, Integer Layer, int position)。</p><p>  (2)滾動(dòng)窗口(JScrollPane)</p><p>  JScrollPane是帶滾動(dòng)條的面板,主要通過(guò)移動(dòng)JViewport(視口)來(lái)實(shí)現(xiàn)。JViewport是一種特殊的對(duì)象,用于查看基層組件,滾動(dòng)條實(shí)際就是沿著組件移動(dòng)視口,同時(shí)描繪出它“看到”的內(nèi)容。

53、</p><p> ?。?)分隔板(JSplitPane)</p><p>  java.lang.Object</p><p>  +--java.awt.Component</p><p>  +--java.awt.Container</p><p>  +--javax.swing.JComponent<

54、/p><p>  +--javax.swing.JSplitPane</p><p> ?。?)選項(xiàng)板(JTabbedPane)</p><p>  JTabbedPane提供一組可供用戶選擇的帶有標(biāo)簽或圖標(biāo)的開(kāi)關(guān)鍵。常用的方法如下:add(String title,Component component) //增加一個(gè)帶特定標(biāo)簽的組件 addChangeListene

55、r(ChangeListener l) //選項(xiàng)板注冊(cè)一個(gè)變化監(jiān)聽(tīng)器</p><p> ?。?)工具欄(JToolBar)</p><p>  JToolBar是用于顯示常用工具控件的容器。用戶可以拖拽出一個(gè)獨(dú)立的可顯示工具控件的窗口。常用的方法如下:</p><p>  JToolBar(String name) //構(gòu)造方法</p><p&g

56、t;  getComponentIndex(Component c) //返回一個(gè)組件的序號(hào)</p><p>  getComponentAtIndex(int i) //得到一個(gè)指定序號(hào)的組件</p><p> ?。?)內(nèi)部框架(JInternalFrame)</p><p>  內(nèi)部框架JInternalFrame就如同一個(gè)窗口在另一個(gè)窗口內(nèi)部,其特點(diǎn)如下:必須

57、把內(nèi)部框架添加到一個(gè)容器中(通常為JDesktopPane),否則不顯示;不必調(diào)用show()或setVisible()方法,內(nèi)部框架隨所在的容器一起顯示; 必須用setSize()、pack()或setBounds方法設(shè)置框架尺寸,否則尺寸為零,框架不能顯示;可以用setLocation()或setBounds()方法設(shè)置內(nèi)部框架在容器中的位置,默認(rèn)值為(0, 0),即容器的左上角; 像頂層JFrame一樣,對(duì)內(nèi)部框架添加組件也要加在

58、它的內(nèi)容面板上;在內(nèi)部框架中建立對(duì)話框,不能使用JDialog作為頂層窗口,必須用JOptionPane或JinternalFrame;內(nèi)部框架不能監(jiān)聽(tīng)窗口事件,可以通過(guò)監(jiān)聽(tīng)與窗口事件類似的內(nèi)部框架(JInternalFrameEvent)處理內(nèi)部框架窗口的操作。</p><p><b>  2.4 布局管理器</b></p><p>  Java語(yǔ)言中包含以下幾種布

59、局管理器:FlowLayout (Panel類和Applet類的默認(rèn)布局管理器);BorderLayout (Window/Dialog類和Frame類的默認(rèn)布局管理器); GridLayout ; CardLayout ; </p><p>  2.4.1FlowLayout布局管理器</p><p>  FlowLayout 有三種構(gòu)造方法:</p><p> 

60、 public FlowLayout( )</p><p>  public FlowLayout(int align)</p><p>  public FlowLayout(int align, int hgap, int vgap)</p><p>  在默認(rèn)情況下,F(xiàn)lowLayout將組件居中放置在容器的某一行上,FlowLayout的構(gòu)造方法中提供了一個(gè)

61、對(duì)齊方式的可選項(xiàng)align</p><p><b>  align的可取值</b></p><p>  FlowLayout.LEFT 左對(duì)齊</p><p>  FlowLayout.RIGHT 右對(duì)齊</p><p>  FlowLayout.CENTER 居中</p><p>  如:p2=

62、new Panel(new FlowLayout(FlowLayout.RIGHT))</p><p>  創(chuàng)建了一個(gè)左對(duì)齊方式的FlowLayout的實(shí)例。</p><p>  FlowLayout的構(gòu)造方法中還有一對(duì)可選項(xiàng)hgap和vgap,可以設(shè)定組件的水</p><p><b>  平間距和垂直間距。</b></p>&l

63、t;p>  FlowLayout布局管理器并不強(qiáng)行設(shè)定組件的大小,而是允許組件擁有它們自己所希望的尺寸。</p><p>  2.4.2 BorderLayout布局管理器</p><p>  BorderLayout是Dialog類和Frame類的默認(rèn)布局管理器,它提供了一種較為復(fù)雜的組件布局管理方案,每個(gè)被BorderLayout管理的容器均被劃分成五個(gè)區(qū)域:東(East)、南(

64、South)、西(West)、北(North)、中(Center)。North 在容器的上部,East在容器的右部,其他依此類推。Center當(dāng)然就是East,South,West和North所圍繞的中部。[7]</p><p>  BorderLayout布局管理器有兩種構(gòu)造方法:</p><p>  BorderLayout()構(gòu)造一個(gè)各部分間距為0的BorderLayout實(shí)例。&l

65、t;/p><p>  BorderLayout(int, int)構(gòu)造一個(gè)各部分具有指定間距的BorderLayout實(shí)例。</p><p>  在BorderLayout 布局管理器的管理下,組件必須通過(guò)add( )方法加入到容器的五個(gè)命名區(qū)域之一。</p><p>  p1.add(p3,BorderLayout.CENTER);</p><p&

66、gt;  在容器的每個(gè)區(qū)域,只能加入一個(gè)組件。</p><p>  可以使用內(nèi)部容器在BorderLayout的一個(gè)區(qū)域內(nèi)間接放入多個(gè)組件。</p><p>  如果某個(gè)區(qū)域沒(méi)有使用,那么它的大小將變?yōu)榱?,此時(shí)Center區(qū)域?qū)?huì)擴(kuò)展并占據(jù)這個(gè)未用區(qū)域的位置。[8] </p><p>  2.4.3 GridLayout布局管理器</p><p&

67、gt;  GridLayout是一種網(wǎng)格式的布局管理器[9],它將容器空間劃分成若干行乘若干列的網(wǎng)格,組件依次放入其中,每個(gè)組件占據(jù)一格。</p><p>  GridLayout三種構(gòu)造方法:</p><p>  public GridLayout( )</p><p>  public GridLayout(int rows, int cols)</p&g

68、t;<p>  public GridLayout(int rows, int cols, int hgap, int vgap)</p><p>  第一種不帶參數(shù)的構(gòu)造方法創(chuàng)建一個(gè)只有一行的網(wǎng)格,網(wǎng)格的列數(shù)根據(jù)實(shí)際需要而定。</p><p>  參數(shù):rows和cols分別指定網(wǎng)格的行數(shù)和列數(shù),hgap和vgap分別表示網(wǎng)格間的水平間距和垂直間距。</p>

69、<p>  如:new GridLayout(3,2) ,可以創(chuàng)建一個(gè)三行乘兩列的布局管理器。</p><p>  rows和cols中的一個(gè)值可以為0,但是兩個(gè)值不能都是0。</p><p>  如果rows為0,那么網(wǎng)格的行數(shù)將根據(jù)實(shí)際需要而定;</p><p>  如果cols為0,那么網(wǎng)格的列數(shù)將根據(jù)實(shí)際需要而定。</p><p

70、>  2.4.4 CardLayout布局管理器</p><p>  CardLayout是一種卡片式的布局管理器,它將容器中的組件處理為一系列卡片,每一時(shí)刻只顯示出其中的一張。</p><p>  示例:為Frame類的實(shí)例f指定了一個(gè) CardLayout類型的布局管理器,然后向其中加入了五張卡片,每張卡片都是Panel類的一個(gè)實(shí)例,并且具有不同的背景色。每當(dāng)在程序窗口單擊鼠標(biāo)時(shí)

71、,下一張卡片就會(huì)顯示出來(lái)。</p><p><b>  2.5 本章小結(jié)</b></p><p>  在GUI程序中,最重要的事實(shí)現(xiàn)用戶與程序的交互。組件事件處理:Button,TextField等事件處理方法,用鼠標(biāo)事件處理,分別從不同的角度對(duì)組件、容器和時(shí)間進(jìn)行綜合分析。產(chǎn)生一種ActionEvent事件。監(jiān)聽(tīng)者必須實(shí)現(xiàn)ActionListener接口,并通過(guò)ad

72、dActionListener()方法向事件源注冊(cè)。</p><p>  每種容器都有一個(gè)默認(rèn)的布局管理器,例如:FlowLayout 默認(rèn)為Panel類和Applet類的布局管理器;BorderLayout 默認(rèn)為Window/Dialog類和Frame類的布局管理器。</p><p>  在程序設(shè)計(jì)中特別要注意這類問(wèn)題。同時(shí)巧妙運(yùn)用到基于Java的標(biāo)準(zhǔn)型計(jì)算器的編程中去。</p&

73、gt;<p><b>  3 軟件設(shè)計(jì)</b></p><p><b>  3.1 總體方案</b></p><p>  本次課題的目標(biāo)是設(shè)計(jì)一個(gè)基于Java平臺(tái)的標(biāo)準(zhǔn)計(jì)算器軟件。設(shè)計(jì)中會(huì)使用到Java.awt包Java.awt.event包。Java.awt是構(gòu)件圖形用戶界面(GUI)的類庫(kù)。我們可用它來(lái)建立低級(jí)繪圖操作、圖形界面

74、組件和布局管理如Container類、LayoutManger接口等,以及界面用戶交互控制和時(shí)間響應(yīng),如Event類。Java.awt.event包是GUI事件處理包。[9]</p><p>  Java.awt.event提供處理由 AWT 組件所激發(fā)的各類事件的接口和類。有關(guān) AWT 事件模型的細(xì)節(jié)。事件由事件源所激發(fā)。向事件源注冊(cè)的事件偵聽(tīng)器可接收有關(guān)特定事件類型的通知。此包定義了事件和事件偵聽(tīng)器,以及事件

75、偵聽(tīng)器適配器,它是讓事件偵聽(tīng)器的編寫(xiě)過(guò)程更為輕松的便捷類。</p><p>  本次程序設(shè)計(jì)中計(jì)劃將程序主要分成程序初始化主體、運(yùn)算處理部分、主程序三個(gè)部分。其中程序初始化主體部分主要用到了ActionListener類、BorderLayout類和Frame類,F(xiàn)rame類代表計(jì)算器的總體邊框。BorderLayout類代表了布局將容器空間分區(qū)域。ActionListener接口是為了產(chǎn)生ActionEvent

76、事件所準(zhǔn)備的。當(dāng)Button對(duì)象被單擊時(shí),將調(diào)用ActionPerformed()進(jìn)行事件處理。</p><p>  3.2 JBuilder開(kāi)發(fā)平臺(tái)的選擇</p><p>  JBuilder是Borland公司開(kāi)發(fā)的針對(duì)Java的開(kāi)發(fā)工具,是一個(gè)可視話Java開(kāi)發(fā)工具。使用JBuilder將可以快速,有效的開(kāi)發(fā)各類Java應(yīng)用。它是在Java2平臺(tái)上開(kāi)發(fā)商業(yè)應(yīng)用程序、數(shù)據(jù)庫(kù)、發(fā)布程序的

77、優(yōu)秀工具。[10] [11]</p><p>  JBuilder開(kāi)發(fā)系統(tǒng)的核心有一部采用了VCL技術(shù),使得程序條理非常清晰,即使是初學(xué)者都可以相對(duì)輕松得看完程度代碼。JBuilder還有另一個(gè)特點(diǎn),就是它簡(jiǎn)化了團(tuán)隊(duì)合作,它所采用的互聯(lián)網(wǎng)工作室設(shè)計(jì)使得即使是不同地區(qū),甚至是不同國(guó)家的開(kāi)發(fā)人員聯(lián)合開(kāi)發(fā)一個(gè)項(xiàng)目成為了可能。[12]</p><p>  Jbuilder支持最新的Java技術(shù),包

78、括Applets、JSP/Servlets、JavaBean以及EJB (Enterprise JavaBeans)的應(yīng)用。用戶可以自動(dòng)地生成基于后端數(shù)據(jù)庫(kù)表的EJB Java類,利用Jbuilder可創(chuàng)建(沒(méi)有專有代碼和標(biāo)記)純Java2應(yīng)用。由于Jbuilder是用純J ava語(yǔ)言編寫(xiě)的,其代碼不含任何專屬代碼和標(biāo)記,它支持最新的Java標(biāo)準(zhǔn)。Jbuilder擁有專業(yè)化的圖形調(diào)試界面,支持遠(yuǎn)程調(diào)試和多線程調(diào)試,調(diào)試器支持各種JDK版

79、本,包括J2ME/J2SE/J2EE。JBuilder環(huán)境開(kāi)發(fā)程序方便,它是純的Java 開(kāi)發(fā)環(huán)境,適合企業(yè)的J2EE開(kāi)發(fā);缺點(diǎn)是往往一開(kāi)始人們難于把握整個(gè)程序各部分之間的關(guān)系,對(duì)機(jī)器的硬件要求較高,比較吃內(nèi)存,這時(shí)運(yùn)行速度顯得較慢。[13]</p><p>  3.3 總體程序流程圖3-1</p><p>  圖3-1基于Java的標(biāo)準(zhǔn)型計(jì)算器程序流程圖</p><p

80、><b>  3.4 制作與調(diào)試</b></p><p>  3.4.1 基本思路</p><p>  本次設(shè)計(jì)是標(biāo)準(zhǔn)型計(jì)算器開(kāi)發(fā),第一步初始化設(shè)計(jì)出計(jì)算器的基本界面,首先需要建Button、Panel、TestField,還需要將各個(gè)組件分別加入到addActionListener()方法中向事件源注冊(cè)。</p><p>  在順利完成

81、這部分程序初步完成后,就開(kāi)始設(shè)計(jì)最重要的計(jì)算處理部分。這部分程序的編寫(xiě)public void actionPerformed(ActionEvent e),這部分程序的最大難點(diǎn)就是如何獲取TestField中的結(jié)果和記憶功能,尤其是按鍵監(jiān)聽(tīng)這部分,必須很好的與接收程序連接起來(lái)??紤]到按鍵的作用就是通過(guò)點(diǎn)擊按鍵,有2中方法。一種是設(shè)置監(jiān)聽(tīng)一種是MouseListener接口,我們選擇的事第一種方法。</p><p>

82、;  最后反復(fù)調(diào)試,修改程序錯(cuò)誤以及不足的地方。在允許的情況下優(yōu)化界面,添加一些其他功能。</p><p>  3.4.2 關(guān)鍵代碼分析</p><p><b>  1、Frame類</b></p><p>  Frame類用于定義整個(gè)計(jì)算器應(yīng)用程序所需的框架,同時(shí)創(chuàng)建了框架的標(biāo)題是“標(biāo)準(zhǔn)計(jì)算器”。并且定義了框架的大小尺寸和位置所在以及背景顏色

83、。</p><p>  Frame f=new Frame("標(biāo)準(zhǔn)計(jì)算器");</p><p>  f.setSize(260,190);//大小尺寸</p><p>  f.setLocation(500,320); //位置</p><p>  f.setLayout(new BorderLayout()); <

84、;/p><p>  2、TextField類和Panel類</p><p>  TextField類是處理單行文本的,用于顯示計(jì)算的結(jié)果。文本組件加入到框架中。并設(shè)置了文本組件顯示的最大長(zhǎng)度為30個(gè)字符。背景顏色白色。</p><p>  t1=new TextField(30);//設(shè)置t1的長(zhǎng)度</p><p>  t1.setEditabl

85、e(false);</p><p>  t1.setBackground(Color.WHITE);//設(shè)置顏色</p><p>  Panel類表示的也是組件。Panel1組件加入到框架Frame中。其它的Panel2、Panel3組件加入到Panel1中。同時(shí)也明確了p2、p3所在的方位是北和中。</p><p>  p1=new Panel(new Borde

86、rLayout());//新建一個(gè)組件Panel</p><p>  f.add(p1,BorderLayout.SOUTH);//p1所在位置南</p><p>  p1.add(p2,BorderLayout.NORTH);//p2所在的位置為北</p><p>  p1.add(p3,BorderLayout.CENTER);//p3所在位置為中</p&

87、gt;<p>  //其它的Button組件加入到p2和p3中去。</p><p>  p2=new Panel(new FlowLayout(FlowLayout.RIGHT));</p><p>  p2.add(t2);//把添t2加到p2中</p><p>  p3=new Panel(new GridLayout(4,6,2,2));<

88、/p><p>  // GridLayout(4,6,2,2)表示 行數(shù)、列數(shù)、水平和垂直間隔的設(shè)置</p><p>  p3.add(b14);</p><p><b>  3、運(yùn)算處理</b></p><p>  計(jì)算器軟件的主體部分主要事運(yùn)算的處理。用到了addActionListener類和ActionEvent類

89、。首先addActionListener類是按鍵監(jiān)聽(tīng)。</p><p>  a0.addActionListener(this);//a0加入監(jiān)聽(tīng) </p><p>  通過(guò)if else語(yǔ)句判斷輸入。通過(guò)e.getSource()獲取事件。</p><p>  if(e.getSource()==a7)//判斷是否等于a7(a7=7)</p><

90、;p>  { if(push==0.)//判斷是否有健按下</p><p>  t1.setText(e.getActionCommand());</p><p><b>  else</b></p><p>  t1.setText(t1.getText()+e.getActionCommand());</p><p

91、><b>  push=1;}</b></p><p><b>  4、記憶功能</b></p><p>  如果按下的鍵是M+或者M(jìn)s的話加入記憶,存取記憶的數(shù)值為cur,存取記憶的標(biāo)志為Ms,并且在t2文本框顯示字符M。如果按鍵為Mc則記憶清零。</p><p>  if(e.getSource()==b16||

92、e.getSource()==b17)//判斷輸入為M+或Ms</p><p><b>  {</b></p><p>  t2.setText("M");//在t2顯示框上顯示M</p><p>  cur=Double.parseDouble(t1.getText());//把記憶數(shù)值記入cur</p>&

93、lt;p>  Ms=1;//標(biāo)識(shí)Ms=1說(shuō)明有記憶值</p><p><b>  }</b></p><p>  if(e.getSource()==b15)//判斷如果輸入為MR</p><p>  {if(Ms==1)//二次判斷是有記憶標(biāo)記,如果Ms=1則如下</p><p>  t1.setText(Dou

94、ble.toString(cur));//在顯示框t1顯示記憶數(shù)值</p><p><b>  else</b></p><p>  t1.setText("0.");</p><p><b>  }</b></p><p>  if(e.getSource()==b14)//如

95、果輸入為MC</p><p><b>  {</b></p><p>  t2.setText(" ");//t2顯示框上空白</p><p>  Ms=0;//記憶標(biāo)識(shí)為0,無(wú)記憶</p><p><b>  }</b></p><p><b>

96、;  5、計(jì)算程序</b></p><p>  分多種計(jì)算的情況進(jìn)行分類。如果按下的事=鍵。則之前按下的運(yùn)算鍵有8種分類。分別是case0~case7這8種情況。</p><p>  if(e.getSource()==b12)//如果輸入為b12(b12為=符號(hào))</p><p>  { second=Double.parseDouble(t1.get

97、Text());//把第二次輸入的數(shù)存在second中</p><p>  if(num==0)//如果是第一次運(yùn)算</p><p>  m=second;//把第二次的數(shù)值給m中間量</p><p>  num=1;//標(biāo)示已經(jīng)經(jīng)過(guò)一次計(jì)算</p><p>  switch(flag)//flag標(biāo)示輸入運(yùn)算符的代碼</p>

98、<p>  { case 1: result=first+second;//加法運(yùn)算</p><p>  first=m;//把m的數(shù)值給first</p><p>  t1.setText(String.valueOf(result));//輸出顯示</p><p><b>  break;</b></p><p

99、><b>  4 運(yùn)行結(jié)果分析</b></p><p><b>  4.1 運(yùn)行情況</b></p><p>  1、用JBuilder2005編譯連接運(yùn)行Run。如圖4-1所示。</p><p>  圖4-1 運(yùn)行程序</p><p>  2、主要是參考了電腦的計(jì)算器進(jìn)行排版</p&

100、gt;<p>  圖4-2 電腦標(biāo)準(zhǔn)計(jì)算器界面對(duì)比</p><p>  3、經(jīng)過(guò)編譯運(yùn)行的計(jì)算器小程序顯示如下,如圖4-3所示。</p><p>  圖4-3 計(jì)算器界面</p><p>  4、之后就可以順利運(yùn)行了,運(yùn)行結(jié)果如圖4-4所示。</p><p>  圖4-4 運(yùn)算12+12的結(jié)果顯示</p>&

101、lt;p>  5、完成的計(jì)算機(jī)難道較大的部分記憶功能,運(yùn)行結(jié)果如圖4-5所示。其主要是通過(guò)定義一個(gè)Ms來(lái)標(biāo)識(shí),用cur來(lái)存記憶的數(shù)值。</p><p>  圖4-5 12*12記憶結(jié)果通過(guò)MR調(diào)出運(yùn)算結(jié)果</p><p>  6、當(dāng)用戶輸入錯(cuò)誤運(yùn)算時(shí),程序提醒用戶,運(yùn)行結(jié)果如圖4-6所示。</p><p>  圖4-5 計(jì)算12/0結(jié)果提示被除數(shù)不能為0&

102、lt;/p><p>  7、運(yùn)算結(jié)束后,點(diǎn)界面右上角的叉,退出程序。</p><p>  4.2 有待于開(kāi)發(fā)的地方</p><p>  經(jīng)過(guò)測(cè)試,在本程序的基礎(chǔ)還可以做出如下改進(jìn):</p><p>  1、進(jìn)一步美化界面。用Jbutton代替Button設(shè)置按鍵的大小顏色間距等。</p><p>  2、進(jìn)一步完善程序,可

103、以實(shí)現(xiàn)連續(xù)運(yùn)算。</p><p>  3、進(jìn)一步完善程序,把TextField改成TextArea一行結(jié)果變多行結(jié)果記錄。</p><p>  4、增加組選擇框功能。</p><p><b>  5 結(jié)論</b></p><p>  本次設(shè)計(jì)認(rèn)真按照要求,對(duì)Java語(yǔ)言有了初步認(rèn)識(shí)并且更加熟悉的使用Jbuilder開(kāi)發(fā)工

104、具編程,在了解Java的內(nèi)容以及熟悉面向?qū)ο笙嚓P(guān)技術(shù)之后,又進(jìn)一步對(duì)組件事件處理和GUI布局管理器進(jìn)行了解,在準(zhǔn)備工作完成之后,就開(kāi)始設(shè)計(jì)Java計(jì)算器的編程方案。隨著社會(huì)的進(jìn)步,科學(xué)的發(fā)展,計(jì)算器的使用經(jīng)歷了小編程容量計(jì)算器向較大編程容量計(jì)算器普及的過(guò)程。在這期間,又有不斷的升級(jí)換代,功能更加強(qiáng)勁。但編程的基本原理還是大同小易,目的都是為生產(chǎn)建設(shè)提供方便的服務(wù)。</p><p>  基于Java的標(biāo)準(zhǔn)型計(jì)算器設(shè)

105、計(jì)旨在熟悉使用Java語(yǔ)言,并且運(yùn)用于實(shí)踐。目前計(jì)算器運(yùn)用領(lǐng)域非常廣泛。然而在編寫(xiě)Java計(jì)算器的時(shí)候還有很多地方存在著缺陷,主要的都體現(xiàn)在功能的完善和界面的美化上面,具體的如下:</p><p>  1、可以把TextField單行文本框改成多行,一目了然。</p><p>  2、沒(méi)有把連續(xù)的運(yùn)算加進(jìn)去。</p><p>  3、界面太小可以適當(dāng)?shù)姆糯蠼缑妗?l

106、t;/p><p>  當(dāng)然,本次設(shè)計(jì)還存在其他的一些不足之處。通過(guò)這次的設(shè)計(jì),讓我對(duì)JAVA計(jì)算器有了更深一步的了解,也對(duì)組件事件處理和GUI布局管理有了比較全面的認(rèn)識(shí)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 顧孝烈,程效軍.fx-4850p計(jì)算器土木工程測(cè)量計(jì)算程序開(kāi)發(fā)與應(yīng)用[M].同濟(jì)大學(xué)出版社,2007,1

107、. </p><p>  [2] 劉婭. 表達(dá)式計(jì)算器的設(shè)計(jì)[J]. 電腦編程技巧與維護(hù),2008,(01):27~29.</p><p>  [3] http://baike.baidu.com/view/993516.htm [EB/OL]</p><p>  [4] http://baike.baidu.com/view/4414875.htm [EB/OL

108、]</p><p>  [5] 皮德常.Java2簡(jiǎn)明教程 [M].清華大學(xué)出版社.2006.7</p><p>  [6] 劉永華.Java網(wǎng)絡(luò)編程技術(shù)[M].清華大學(xué)出版社.2008.5</p><p>  [7] Mark A. White. Financial analysis with an electronic calculator [M].McGraw

109、-Hill Companies, Inc.2007</p><p>  [8] 陳雄華, 涂傳濱等. 精通JBuilder 2005[M]. 電子工業(yè)出版社,2005.6</p><p>  [9] 汪強(qiáng).計(jì)算機(jī)應(yīng)用基礎(chǔ)[M]. 中國(guó)人民大學(xué)出版社. 2010.1</p><p>  [10] 四維科技. JBuilder編程技術(shù)與實(shí)例[M]. 人民郵電出版社,20

110、06.</p><p>  [11]Y. Daniel Liang. Introduction to Java Programming[monograph][M]. Prentice Hall,2005.</p><p>  [12] 戚汝鵬. JBuilder 2005開(kāi)發(fā)實(shí)例完全剖析[M]. 中國(guó)電力出版社

111、,2006.</p><p>  [13] 楊建武,李蓉. 基于編譯原理的表達(dá)式計(jì)算器設(shè)計(jì)[J]. 現(xiàn)代計(jì)算機(jī)(專業(yè)版),2009,(07):151~153.</p><p>  附錄1 主要源程序代碼</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p

112、><p>  public class Calculator implements ActionListener</p><p><b>  {</b></p><p>  Panel p1,p2,p3;</p><p>  TextField t1,t2;</p><p>  Button b1,b

113、2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;</p><p>  Button a0,a1,a2,a3,a4,a5,a6,a7,a8,a9; //數(shù)字0-9</p><p>  int Ms=0;//標(biāo)識(shí)M+,Ms</p><p>  int flag=0;//運(yùn)算符標(biāo)識(shí)</p><

114、;p>  int num=0;//實(shí)現(xiàn)連續(xù)運(yùn)算</p><p>  double m=0;//實(shí)現(xiàn)連續(xù)運(yùn)算</p><p>  double k=0;//實(shí)現(xiàn)負(fù)號(hào)</p><p>  double cur=0;//保存記憶的值</p><p>  double k1;//Backspace</p><p>  d

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論