java課程設(shè)計-- 實現(xiàn)計算器功能的應(yīng)用程序_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  學(xué)生課程設(shè)計(論文)</p><p>  題 目: 實現(xiàn)計算器功能的應(yīng)用程序 </p><p>  學(xué)生姓名: 學(xué) 號: </p><p>  所在院(系): 數(shù)學(xué)與計算機(jī)學(xué)院 </p>

2、<p>  專 業(yè): 計算機(jī)科學(xué)與技術(shù) </p><p>  班 級: 2010級計本一班 </p><p>  指 導(dǎo) 教 師: 職稱: 講師 </p><p>  2013年 6月 9日

3、</p><p><b>  課程設(shè)計任務(wù)書</b></p><p>  注:任務(wù)書由指導(dǎo)教師填寫。</p><p><b>  摘 要</b></p><p>  自從java語言誕生以來,java語言就以不可抵擋的趨勢很快成為國際上廣泛流行的面向?qū)ο缶幊陶Z言,它既具有高級語言的特點,又少了C語

4、言中指針特點,因而變得簡單了很多。Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,其具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于個人PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算機(jī)、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢和廣闊前景。</p><p>  本文介紹了用java語言編寫一個簡易計算器。實現(xiàn)數(shù)學(xué)上的加、減、乘

5、、除、乘方、開方、階乘、正弦、余弦運算等相關(guān)運算。利用這個程序可以方便的進(jìn)行日常性的小規(guī)模運算,小巧簡易,是個實用的工具。</p><p>  關(guān)鍵詞: 程序設(shè)計,計算器,java語言</p><p><b>  Abstract</b></p><p>  Since the inception of the java language, j

6、ava language Take irresistible trend soon became widespread international popular object-oriented programming language, both with advanced language features, and less of the C language pointer characteristics, and thus b

7、ecomes a lot simpler . Java is a cross-platform application software can write object-oriented programming language, which has excellent versatility, efficiency, platform portability, and security, are widely used in per

8、sonal PC, data ce</p><p>  Keywords: program design, calculator, java language</p><p><b>  目錄</b></p><p>  摘要……………………………………………………………………………………..……………….4</p><p

9、>  Abstract…………………………………………………………………………………………..5</p><p><b>  1 前言7</b></p><p>  1.1 課程設(shè)計背景7</p><p>  1.2 需求環(huán)境7</p><p>  1.3 課程設(shè)計思路7</p>&

10、lt;p>  2 課程設(shè)計概要8</p><p>  3 計算器詳細(xì)設(shè)計9</p><p>  3.1 計算器界面9</p><p>  3.1.1 CAL主類的顯示布局9</p><p>  3.1.2 計算器顯示界面實現(xiàn)代碼9</p><p>  3.2 監(jiān)聽各個按鈕的類10</p>

11、;<p>  3.2.1 編寫監(jiān)聽類目的10</p><p>  3.2.2 監(jiān)聽類實現(xiàn)代碼11</p><p>  3.3 按鍵響應(yīng)類12</p><p>  3.3.1響應(yīng)類編寫的目的12</p><p>  3.3.2 響應(yīng)類實現(xiàn)代碼12</p><p>  3.4 運算處理類13<

12、;/p><p>  3.4.1 處理方式13</p><p>  3.4.2 處理類實現(xiàn)代碼13</p><p>  4 運行與調(diào)試15</p><p>  4.1 進(jìn)入程序主界面15</p><p>  4.2 加減乘除功能實現(xiàn)15</p><p>  4.3 正余弦、正切功能實現(xiàn)16

13、</p><p>  4.4、階乘功能實現(xiàn)16</p><p>  4.5、乘方、開方功能實現(xiàn)17</p><p>  5 課程設(shè)計總結(jié)18</p><p><b>  參考文獻(xiàn)19</b></p><p><b>  附錄:源代碼20</b></p>

14、<p><b>  1 前言</b></p><p>  1.1 課程設(shè)計背景</p><p>  日常生活中我們經(jīng)常會遇到一些小型數(shù)據(jù)計算的問題,本課程設(shè)計就是以此為出發(fā)點,設(shè)計了這樣一個簡單的計算器,用以實現(xiàn)基本的數(shù)學(xué)運算。在java語言當(dāng)中通過定義類,類中的各種方法實現(xiàn)對計算器相關(guān)功能的實現(xiàn),并通過與用戶自己手動輸入并選擇運算功能實現(xiàn)計算功能,

15、是一個完全由用戶控制的簡易計算器。</p><p>  在完成課程設(shè)計的期間,參閱了相關(guān)的書籍并在網(wǎng)絡(luò)上查找相關(guān)的資料,對實現(xiàn)這個設(shè)計提供了很大的幫助。由于設(shè)計水平和知識方面的匱乏,本次課程設(shè)計還存在缺點和不足,希望大家提出寶貴的意見,互相交流以期提高。</p><p><b>  1.2 需求環(huán)境</b></p><p>  本課程設(shè)計需要

16、的設(shè)備為硬件要求和軟件配置要求具體要求如下:</p><p>  ①硬件要求:一臺計算機(jī)。</p><p> ?、谲浖渲茫篧INDOWS系統(tǒng)、JDK 1.7、eclipse</p><p>  1.3 課程設(shè)計思路</p><p>  做計算器最主要的就是實用性,要簡單,便于操作。程序界面是一個窗口的形式展現(xiàn)并由用戶自己完全手動控制。并以

17、設(shè)計的要求為基礎(chǔ),在實現(xiàn)課程設(shè)計所給的功能以外,要對界面的美觀進(jìn)行了優(yōu)化,看起來更人性化,由此一個簡潔美觀的計算器就建立起來了。</p><p><b>  2 課程設(shè)計概要</b></p><p>  在設(shè)計程序的時候,考慮到計算器的功能,首先編寫一個CAL類,在該類中按照其功能分別寫了一個方法實現(xiàn),在程序開始后,可以看到一個控制面板形式的計算器界面展現(xiàn)在用戶面前

18、,用戶自己輸入數(shù)據(jù)和選擇要運算的功能進(jìn)行計算。具體方法有:加減乘除運算、乘方開方運算、正余弦正切運算、刪除階乘運算等</p><p>  具體的關(guān)系結(jié)構(gòu)如表2-1:</p><p><b>  表2-1 </b></p><p>  流程功能實現(xiàn)的流程圖詳解:</p><p>  3 計算器詳細(xì)設(shè)計</p>

19、<p><b>  3.1 計算器界面</b></p><p>  3.1.1 CAL主類的顯示布局</p><p>  為了方便用戶的使用,創(chuàng)建了一個帶按鈕的控制面板。將所有的運算鍵、數(shù)字鍵等都放在該面板中方便用戶選擇與使用。所有的運算選擇都完全由用戶掌控。</p><p>  3.1.2 計算器顯示界面實現(xiàn)代碼</p&g

20、t;<p><b>  程序如下:</b></p><p>  public class cal extends Applet {</p><p>  // 定義所有需要使用的全局變量</p><p>  String str = "0";// 暫存顯示屏數(shù)據(jù)</p><p>  Str

21、ing sign = "null";// 暫存符號數(shù)據(jù)</p><p>  double num = 0;// 暫存內(nèi)部運算數(shù)據(jù)</p><p>  boolean change = false;// 暫存內(nèi)部四則運算起用</p><p>  GridLayout g0, g1;// 定義AWT布局部件</p><p> 

22、 JTextField number;</p><p>  Button num_p, num_0, num_1, num_2, num_3, num_4, num_5, num_6, num_7,</p><p>  num_8, num_9;</p><p>  Button act_add, act_mul, act_div, act_sub;</p&g

23、t;<p>  Button mat_sin, mat_cos, mat_tan;</p><p>  Button do_ans, do_del;</p><p>  Button fac, sqr,inv,blank;</p><p>  Panel p0, p1;</p><p>  public void init()/

24、/ 主程序部分</p><p>  {// 定義各個控件的樣式</p><p>  number = new JTextField(20);// 顯示屏</p><p>  number.setHorizontalAlignment(JTextField.RIGHT);</p><p>  number.setEnabled(false);

25、</p><p>  number.setText("0");</p><p>  num_p = new Button("。");// 小數(shù)點的按鈕</p><p>  num_p.setForeground(Color.red);</p><p>  num_p.addActionListener(

26、new getbt());</p><p>  num_0 = new Button("0");// 數(shù)字0的按鈕</p><p>  num_0.setForeground(Color.red);</p><p>  num_0.addActionListener(new getbt());</p><p>  num_

27、1 = new Button("1");// 數(shù)字1的按鈕</p><p>  num_1.setForeground(Color.red);</p><p>  num_1.addActionListener(new getbt());</p><p>  //此處省略了部分代碼</p><p>  num_9 = ne

28、w Button("9");// 數(shù)字9的按鈕</p><p>  num_9.setForeground(Color.red);</p><p>  num_9.addActionListener(new getbt());</p><p>  act_add = new Button("+");// 加法的按鈕</p

29、><p>  act_add.setForeground(Color.red);</p><p>  act_add.addActionListener(new getbt());</p><p>  //此處省略了部分代碼</p><p>  blank = new Button("blank");// blank的按鈕&l

30、t;/p><p>  blank.setForeground(Color.red);</p><p>  blank.addActionListener(new getbt());</p><p>  // 布局整個計算器</p><p>  g0 = new GridLayout(1, 1, 10, 10);// 布局輸入輸出大體位置</

31、p><p>  g1 = new GridLayout(4, 6, 10, 10);</p><p>  p0 = new Panel(); // 顯示屏的布局</p><p>  p0.setLayout(g0);</p><p>  p0.add(number);</p><p>  p0.setBounds(0, 0

32、, 100, 50);</p><p><b>  // 按紐的布局</b></p><p>  p1 = new Panel();</p><p>  p1.setLayout(g1);</p><p>  p1.add(num_1);// 第一排按紐</p><p>  p1.add(num_

33、2);</p><p>  p1.add(num_3);</p><p>  p1.add(act_add);</p><p>  p1.add(act_sub);</p><p>  p1.add(fac);</p><p>  //此處省略了部分代碼</p><p>  p1.setBoun

34、ds(5, 60, 400, 250);</p><p>  p1.setBackground(Color.cyan);// 設(shè)置按鈕背景顏色</p><p>  setLayout(null);</p><p><b>  add(p0);</b></p><p><b>  add(p1);</b&g

35、t;</p><p>  this.setBackground(Color.cyan);// 設(shè)置背景整體顏色</p><p><b>  }</b></p><p>  3.2 監(jiān)聽各個按鈕的類</p><p>  3.2.1 編寫監(jiān)聽類目的</p><p>  編寫監(jiān)聽類的目的主要監(jiān)聽用戶所按

36、下的數(shù)字鍵和運算鍵,為了計算機(jī)后續(xù)的取得數(shù)據(jù)并進(jìn)行運算做預(yù)備工作。給后續(xù)計算工作提供保障。</p><p>  3.2.2 監(jiān)聽類實現(xiàn)代碼</p><p>  class getbt implements ActionListener // 監(jiān)聽作出反應(yīng)的類</p><p><b>  {</b></p><p>  p

37、ublic void actionPerformed(ActionEvent e)// 對每個每個按鈕做出響應(yīng)</p><p><b>  {</b></p><p>  if (e.getSource() == num_0)</p><p><b>  press0();</b></p><p>

38、  else if (e.getSource() == num_1)</p><p><b>  press1();</b></p><p>  else if (e.getSource() == num_2)</p><p><b>  press2();</b></p><p>  else i

39、f (e.getSource() == num_3)</p><p><b>  press3();</b></p><p>  else if (e.getSource() == num_4)</p><p><b>  press4();</b></p><p>  else if (e.get

40、Source() == num_5)</p><p><b>  press5();</b></p><p>  else if (e.getSource() == num_6)</p><p><b>  press6();</b></p><p>  else if (e.getSource()

41、 == num_7)</p><p><b>  press7();</b></p><p>  else if (e.getSource() == num_8)</p><p><b>  press8();</b></p><p>  else if (e.getSource() == num_

42、9)</p><p><b>  press9();</b></p><p>  else if (e.getSource() == num_p)</p><p><b>  pressp();</b></p><p>  else if (e.getSource() == act_add)<

43、/p><p>  pressadd();</p><p>  else if (e.getSource() == act_mul)</p><p>  pressmul();</p><p>  else if (e.getSource() == act_div)</p><p>  pressdiv();</p&g

44、t;<p>  else if (e.getSource() == act_sub)</p><p>  presssub();</p><p>  else if (e.getSource() == mat_sin)</p><p>  presssin();</p><p>  else if (e.getSource()

45、== mat_tan)</p><p>  presstan();</p><p>  else if (e.getSource() == mat_cos)</p><p>  presscos();</p><p>  else if (e.getSource() == do_ans)</p><p>  press

46、ans();</p><p>  else if (e.getSource() == do_del)</p><p>  pressdel();</p><p>  else if (e.getSource() == fac)</p><p>  pressfac();</p><p>  else if (e.get

47、Source() == sqr)</p><p>  presssqr();</p><p>  else if (e.getSource() == inv)</p><p>  pressinv();</p><p><b>  }</b></p><p><b>  }</b&

48、gt;</p><p><b>  3.3 按鍵響應(yīng)類</b></p><p>  3.3.1響應(yīng)類編寫的目的</p><p>  通過監(jiān)聽類的監(jiān)聽,采集用戶所按下的按鍵信息進(jìn)行分析,并將分析結(jié)果保存為不同的方法和標(biāo)記,通過不同的標(biāo)記在運算過程中調(diào)用處理類中的不同方法實現(xiàn)計算功能。</p><p>  3.3.2 響應(yīng)類

49、實現(xiàn)代碼</p><p>  public void press0()// 對按0作出反應(yīng)</p><p><b>  {</b></p><p>  if (str.length() < 16 && str != "0" && change == false) {</p>

50、<p>  str += "0";</p><p>  } else if (str == "0" || sign != "null") {</p><p>  str = "0";</p><p><b>  }</b></p><

51、p>  number.setText(str);</p><p><b>  }</b></p><p>  //此處省略部分代碼</p><p>  public void pressp()// 對按。作出反應(yīng)</p><p><b>  {</b></p><p>

52、  boolean p = false;</p><p>  for (int i = 0; i < str.length(); i++)</p><p>  if (str.charAt(i) == '.')</p><p><b>  p = true;</b></p><p>  if (st

53、r.length() < 16 && str != "0" && sign == "null" && p == false) {</p><p>  str += ".";</p><p>  } else if ((str == "0" || sign !

54、= "null") && p == false) {</p><p>  str = "0.";</p><p><b>  }</b></p><p>  number.setText(str);</p><p><b>  }</b><

55、;/p><p>  public void pressfac()// 對按fac作出反應(yīng)</p><p><b>  {</b></p><p>  sign = "fac";</p><p>  num = Double.parseDouble(str);</p><p>  c

56、hange = true;</p><p><b>  }</b></p><p>  //此處省略部分代碼</p><p>  public void presscos()// 對按cos作出反應(yīng)</p><p><b>  {</b></p><p>  if (str

57、!= "0." && str != "-0" && str != "-0.") {</p><p>  sign = "null";</p><p>  num = Double.parseDouble(str);</p><p>  num = Math

58、.cos(num);</p><p>  str = Double.toString(num);</p><p>  if (str.length() > 16)</p><p>  str = str.substring(0, 16);</p><p><b>  num = 0;</b></p>

59、<p><b>  }</b></p><p>  number.setText(str);</p><p><b>  }</b></p><p><b>  3.4 運算處理類</b></p><p>  3.4.1 處理方式</p><p&g

60、t;  通過獲得上訴用戶所按下數(shù)字鍵和運算功能鍵的信息,用響應(yīng)類的處理結(jié)果信息進(jìn)行判斷標(biāo)示符的形式對號入座進(jìn)行調(diào)用不同運算處理并把運算結(jié)果顯示在輸入數(shù)據(jù)框中。</p><p>  3.4.2 處理類實現(xiàn)代碼</p><p>  public void pressans()// 對按=作出反應(yīng)</p><p><b>  {</b></p&

61、gt;<p>  if (sign == "null")</p><p>  number.setText(str);</p><p>  else if (sign == "fac") {</p><p>  int sum=1;</p><p>  for(int i=1;i<=

62、num;i++){</p><p>  sum= sum*i;</p><p><b>  }</b></p><p>  str = Double.toString(sum);</p><p>  number.setText(str);</p><p><b>  }</b&g

63、t;</p><p>  else if (sign == "sqr") {</p><p>  double sum;</p><p>  sum=Math.sqrt(Double.parseDouble(str)); </p><p>  str = Double.toString(sum);</p>&

64、lt;p>  number.setText(str);</p><p><b>  }</b></p><p>  else if (sign == "inv") {</p><p>  double sum=num;</p><p>  for(int i=1;i<Double.pars

65、eDouble(str);i++){</p><p>  sum=sum*num;</p><p><b>  }</b></p><p>  str = Double.toString(sum);</p><p>  number.setText(str);</p><p><b> 

66、 }</b></p><p>  else if (sign == "add") {</p><p>  num += Double.parseDouble(str);</p><p>  str = Double.toString(num);</p><p>  number.setText(str);<

67、;/p><p>  } else if (sign == "sub") {</p><p>  num -= Double.parseDouble(str);</p><p>  str = Double.toString(num);</p><p>  number.setText(str);</p><

68、p>  } else if (sign == "mul") {</p><p>  num *= Double.parseDouble(str);</p><p>  str = Double.toString(num);</p><p>  number.setText(str);</p><p>  } else

69、 if (sign == "div") {</p><p>  if (num != 0) {</p><p>  num /= Double.parseDouble(str);</p><p>  str = Double.toString(num);</p><p>  number.setText(str);<

70、/p><p><b>  } else {</b></p><p>  str = "0";</p><p>  number.setText(str);</p><p><b>  }</b></p><p><b>  }</b>&l

71、t;/p><p>  sign = "null";</p><p><b>  }</b></p><p><b>  4 運行與調(diào)試</b></p><p>  4.1 進(jìn)入程序主界面</p><p>  4.2 加減乘除功能實現(xiàn)</p>&l

72、t;p>  例如;333333乘于555555</p><p>  4.3 正余弦、正切功能實現(xiàn)</p><p><b>  例如:30的tan</b></p><p>  4.4、階乘功能實現(xiàn)</p><p><b>  例如:9的階乘</b></p><p>  4

73、.5、乘方、開方功能實現(xiàn)</p><p><b>  例如;36開方</b></p><p><b>  5 課程設(shè)計總結(jié)</b></p><p>  在這次課程設(shè)計中,獨自編寫計算器的各個功能,并對其進(jìn)行按鍵的排版、監(jiān)聽、處理、運算等各個步驟的親力親為,基本上完成了任務(wù)書上的各項內(nèi)容。</p><p

74、>  雖然在這次的課程設(shè)計中有很多的不足,但是我也收獲了很多。由于本身計算器這個課題就比較簡單,涉及的知識不是很多,所以我一個人一組,通過與同學(xué)們的交流,解決了不少長久以來困擾我的java語言問題,讓我深切體會到了大家共同努力的重要性。在設(shè)計這個系統(tǒng)的時候,我查閱了很多相關(guān)的書籍,并通過網(wǎng)絡(luò)解決了不少問題。通過這次課程式設(shè)計,我對eclipse的開發(fā)環(huán)境有了更多的認(rèn)識和了解,讓我對java語言的認(rèn)識又加深了一步,不僅使我學(xué)會了如何

75、查閱資料,同時也讓我發(fā)現(xiàn)了網(wǎng)絡(luò)這個好老師,總之收獲了很多</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 朱福喜.《Java語言程序設(shè)計》(第二版).科學(xué)出版社</p><p>  [2] 陳國君等.《Java程序設(shè)計基礎(chǔ)》(第二版).清華大學(xué)出版社</p><p>  [3] Deitel.《

76、Java大學(xué)基礎(chǔ)教程》(第六版).電子工業(yè)出版社 </p><p>  [4] MaryCampione.《Java語言導(dǎo)學(xué)》(第四版).機(jī)械工業(yè)出版社</p><p>  [5] Y.Daniel Liang.《Java語言程序設(shè)計基礎(chǔ)篇》(第六版).機(jī)械工業(yè)出版社</p><p>  [6] Kathy Sierra.《Head First Java》(第二版

77、).東南大學(xué)出版社</p><p>  [7](美)埃克爾 著,陳昊鵬 譯 《Java編程思想》(第4版).機(jī)械工業(yè)出版社</p><p>  [8] 李興華 《Java從入門到精通》 人民郵電出版社 2010-4-1版</p><p>  [9] 臧萌 編著 《Java入門1·2·3》清華大學(xué)出版社2010-5-1版</p>&l

78、t;p>  [10] 李鐘尉,周小彤,陳丹丹等編著 《Java從入門到精通》(第2版)清華大學(xué)出版社</p><p>  [11] 李輝 《打通經(jīng)脈 Java 基礎(chǔ)入門編程詳解》中國鐵道出版社2010-11-01版</p><p>  [12] (美)卡登赫斯第 《Java編程入門經(jīng)典》(第4版) 人民郵電出版社</p><p>  [13] 喻桃陽 《Jav

79、a快速入門與商用項目培訓(xùn)》清華大學(xué)出版社2011-03-01版</p><p>  [14] 溫沿書 《Java入門與實戰(zhàn)教程》人民郵電出版社2010-03-01版</p><p>  [15] 李鐘尉 《Java范例完全自學(xué)手冊》 人民郵電出版社 2009-10-1</p><p>  [16] (美)斯采爾德 著,馬海軍 《Java2實用教程

80、》清華大學(xué)出版社2004-1-1</p><p>  [17] (美)貝茨(Bates,B.)《Head First Java(中文版)》中國電力出版社2007-2-1版</p><p>  [18] 辛運幃 《Java程序設(shè)計》(第二版) 清華大學(xué)出版社</p><p><b>  附錄:源代碼</b></p><p>

81、;  package gefangyu;</p><p>  import java.applet.*;</p><p>  import java.awt.*;</p><p>  import javax.swing.*;</p><p>  import java.awt.event.*;</p><p>  /

82、/import java.math.*;</p><p>  public class cal extends Applet {</p><p>  // 定義所有需要使用的全局變量</p><p>  String str = "0";// 暫存顯示屏數(shù)據(jù)</p><p>  String sign = "nu

83、ll";// 暫存符號數(shù)據(jù)</p><p>  double num = 0;// 暫存內(nèi)部運算數(shù)據(jù)</p><p>  boolean change = false;// 暫存內(nèi)部四則運算起用</p><p>  GridLayout g0, g1;// 定義AWT布局部件</p><p>  JTextField number;

84、</p><p>  Button num_p, num_0, num_1, num_2, num_3, num_4, num_5, num_6, num_7,</p><p>  num_8, num_9;</p><p>  Button act_add, act_mul, act_div, act_sub;</p><p>  Butt

85、on mat_sin, mat_cos, mat_tan;</p><p>  Button do_ans, do_del;</p><p>  Button fac, sqr,inv,blank;</p><p>  Panel p0, p1;</p><p>  public void init()// 主程序部分</p>

86、<p><b>  {</b></p><p>  // 定義各個控件的樣式</p><p>  number = new JTextField(20);// 顯示屏</p><p>  number.setHorizontalAlignment(JTextField.RIGHT);</p><p>  num

87、ber.setEnabled(false);</p><p>  number.setText("0");</p><p>  num_p = new Button("。");// 小數(shù)點的按鈕</p><p>  num_p.setForeground(Color.red);</p><p>  nu

88、m_p.addActionListener(new </p><p><b>  getbt());</b></p><p>  num_0 = new Button("0");// 數(shù)字0的按鈕</p><p>  num_0.setForeground(Color.red);</p><p>  

89、num_0.addActionListener(new getbt());</p><p>  num_1 = new Button("1");// 數(shù)字1的按鈕</p><p>  num_1.setForeground(Color.red);</p><p>  num_1.addActionListener(new getbt());<

90、;/p><p>  num_2 = new Button("2");// 數(shù)字2的按鈕</p><p>  num_2.setForeground(Color.red);</p><p>  num_2.addActionListener(new getbt());</p><p>  num_3 = new Button(&

91、quot;3");// 數(shù)字3的按鈕</p><p>  num_3.setForeground(Color.red);</p><p>  num_3.addActionListener(new getbt());</p><p>  num_4 = new Button("4");// 數(shù)字4的按鈕</p><p

92、>  num_4.setForeground(Color.red);</p><p>  num_4.addActionListener(new getbt());</p><p>  num_5 = new Button("5");// 數(shù)字5的按鈕</p><p>  num_5.setForeground(Color.red);<

93、;/p><p>  num_5.addActionListener(new getbt());</p><p>  num_6 = new Button("6");// 數(shù)字6的按鈕</p><p>  num_6.setForeground(Color.red);</p><p>  num_6.addActionListe

94、ner(new getbt());</p><p>  num_7 = new Button("7");// 數(shù)字7的按鈕</p><p>  num_7.setForeground(Color.red);</p><p>  num_7.addActionListener(new getbt());</p><p>  

95、num_8 = new Button("8");// 數(shù)字8的按鈕</p><p>  num_8.setForeground(Color.red);</p><p>  num_8.addActionListener(new getbt());</p><p>  num_9 = new Button("9");// 數(shù)字9

96、的按鈕</p><p>  num_9.setForeground(Color.red);</p><p>  num_9.addActionListener(new getbt());</p><p>  act_add = new Button("+");// 加法的按鈕</p><p>  act_add.setFo

97、reground(Color.red);</p><p>  act_add.addActionListener(new getbt());</p><p>  act_sub = new Button("-");// 減法的按鈕</p><p>  act_sub.setForeground(Color.red);</p><

98、;p>  act_sub.addActionListener(new getbt());</p><p>  act_mul = new Button("*");// 乘法的按鈕</p><p>  act_mul.setForeground(Color.red);</p><p>  act_mul.addActionListener(n

99、ew getbt());</p><p>  act_div = new Button("/");// 除法的按鈕</p><p>  act_div.setForeground(Color.red);</p><p>  act_div.addActionListener(new getbt());</p><p>  

100、do_ans = new Button("=");// 等于的按鈕</p><p>  do_ans.setForeground(Color.red);</p><p>  do_ans.addActionListener(new getbt());</p><p>  do_del = new Button("del");/

101、/ 刪除的按鈕</p><p>  do_del.setForeground(Color.red);</p><p>  do_del.addActionListener(new getbt());</p><p>  mat_sin = new Button("sin");// sin的按鈕</p><p>  mat_

102、sin.setForeground(Color.red);</p><p>  mat_sin.addActionListener(new getbt());</p><p>  mat_cos = new Button("cos");// cos的按鈕</p><p>  mat_cos.setForeground(Color.red);<

103、;/p><p>  mat_cos.addActionListener(new getbt());</p><p>  mat_tan = new Button("tan");// tan的按鈕</p><p>  mat_tan.setForeground(Color.red);</p><p>  mat_tan.addA

104、ctionListener(new getbt());</p><p>  fac = new Button("fac");// fac的按鈕</p><p>  fac.setForeground(Color.red);</p><p>  fac.addActionListener(new getbt());</p><p

105、>  sqr = new Button("sqr");// sqr的按鈕</p><p>  sqr.setForeground(Color.red);</p><p>  sqr.addActionListener(new getbt());</p><p>  inv= new Button("x^y");// In

106、volution的按鈕</p><p>  inv.setForeground(Color.red);</p><p>  inv.addActionListener(new getbt());</p><p>  blank = new Button("blank");// blank的按鈕</p><p>  blan

107、k.setForeground(Color.red);</p><p>  blank.addActionListener(new getbt());</p><p>  // 布局整個計算器</p><p>  g0 = new GridLayout(1, 1, 10, 10);// 布局輸入輸出大體位置</p><p>  g1 = ne

108、w GridLayout(4, 6, 10, 10);</p><p>  p0 = new Panel(); // 顯示屏的布局</p><p>  p0.setLayout(g0);</p><p>  p0.add(number);</p><p>  p0.setBounds(0, 0, 100, 50);</p>&l

109、t;p><b>  // 按紐的布局</b></p><p>  p1 = new Panel();</p><p>  p1.setLayout(g1);</p><p>  p1.add(num_1);// 第一排按紐</p><p>  p1.add(num_2);</p><p> 

110、 p1.add(num_3);</p><p>  p1.add(act_add);</p><p>  p1.add(act_sub);</p><p>  p1.add(fac);</p><p>  p1.add(num_4);// 第二排按紐</p><p>  p1.add(num_5);</p>

111、<p>  p1.add(num_6);</p><p>  p1.add(act_mul);</p><p>  p1.add(act_div);</p><p>  p1.add(sqr);</p><p>  p1.add(num_7);// 第三排按紐</p><p>  p1.add(num_8

112、);</p><p>  p1.add(num_9);</p><p>  p1.add(mat_sin);</p><p>  p1.add(mat_cos);</p><p>  p1.add(inv);</p><p>  p1.add(num_0);// 第四排按鈕</p><p>  

113、p1.add(num_p);</p><p>  p1.add(do_ans);</p><p>  p1.add(do_del);</p><p>  p1.add(mat_tan);</p><p>  p1.add(blank);// 為了占位排版美觀</p><p>  p1.setBounds(5, 60,

114、400, 250);</p><p>  p1.setBackground(Color.cyan);// 設(shè)置按鈕背景顏色</p><p>  setLayout(null);</p><p><b>  add(p0);</b></p><p><b>  add(p1);</b></p&g

115、t;<p>  this.setBackground(Color.cyan);// 設(shè)置背景整體顏色</p><p><b>  }</b></p><p>  class getbt implements ActionListener // 監(jiān)聽作出反應(yīng)的類</p><p><b>  {</b></

116、p><p>  public void actionPerformed(ActionEvent e)// 對每個每個按鈕做出響應(yīng)</p><p><b>  {</b></p><p>  if (e.getSource() == num_0)</p><p><b>  press0();</b>&l

117、t;/p><p>  else if (e.getSource() == num_1)</p><p><b>  press1();</b></p><p>  else if (e.getSource() == num_2)</p><p><b>  press2();</b></p>

118、<p>  else if (e.getSource() == num_3)</p><p><b>  press3();</b></p><p>  else if (e.getSource() == num_4)</p><p><b>  press4();</b></p><p&

119、gt;  else if (e.getSource() == num_5)</p><p><b>  press5();</b></p><p>  else if (e.getSource() == num_6)</p><p><b>  press6();</b></p><p>  els

120、e if (e.getSource() == num_7)</p><p><b>  press7();</b></p><p>  else if (e.getSource() == num_8)</p><p><b>  press8();</b></p><p>  else if (e.

121、getSource() == num_9)</p><p><b>  press9();</b></p><p>  else if (e.getSource() == num_p)</p><p><b>  pressp();</b></p><p>  else if (e.getSourc

122、e() == act_add)</p><p>  pressadd();</p><p>  else if (e.getSource() == act_mul)</p><p>  pressmul();</p><p>  else if (e.getSource() == act_div)</p><p>  

123、pressdiv();</p><p>  else if (e.getSource() == act_sub)</p><p>  presssub();</p><p>  else if (e.getSource() == mat_sin)</p><p>  presssin();</p><p>  else

124、 if (e.getSource() == mat_tan)</p><p>  presstan();</p><p>  else if (e.getSource() == mat_cos)</p><p>  presscos();</p><p>  else if (e.getSource() == do_ans)</p>

125、;<p>  pressans();</p><p>  else if (e.getSource() == do_del)</p><p>  pressdel();</p><p>  else if (e.getSource() == fac)</p><p>  pressfac();</p><p&

126、gt;  else if (e.getSource() == sqr)</p><p>  presssqr();</p><p>  else if (e.getSource() == inv)</p><p>  pressinv();</p><p><b>  }</b></p><p>

127、<b>  }</b></p><p>  public void press0()// 對按0作出反應(yīng)</p><p><b>  {</b></p><p>  if (str.length() < 16 && str != "0" && change == f

128、alse) {</p><p>  str += "0";</p><p>  } else if (str == "0" || sign != "null") {</p><p>  str = "0";</p><p><b>  }</b&g

129、t;</p><p>  number.setText(str);</p><p><b>  }</b></p><p>  public void press1()// 對按1作出反應(yīng)</p><p><b>  {</b></p><p>  if (str.lengt

130、h() < 16 && str != "0" && change == false) {</p><p>  str += "1";</p><p>  } else if (str == "0" || sign != "null") {</p><p&

131、gt;  str = "1";</p><p>  change = false;</p><p><b>  }</b></p><p>  number.setText(str);</p><p><b>  }</b></p><p>  publi

溫馨提示

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

評論

0/150

提交評論