Java課程設(shè)計(jì)論文復(fù)雜計(jì)算器的設(shè)計(jì)_第1頁
Java課程設(shè)計(jì)論文復(fù)雜計(jì)算器的設(shè)計(jì)_第2頁
Java課程設(shè)計(jì)論文復(fù)雜計(jì)算器的設(shè)計(jì)_第3頁
Java課程設(shè)計(jì)論文復(fù)雜計(jì)算器的設(shè)計(jì)_第4頁
Java課程設(shè)計(jì)論文復(fù)雜計(jì)算器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄一 緒論 4二 設(shè)計(jì)思路 42.1 工作原理圖 . .42.2 功能規(guī)劃 .5三 具體實(shí)現(xiàn) 53.1 類設(shè)計(jì)與功能實(shí)現(xiàn).53.2 界面 .5四 運(yùn)行調(diào)試與分析討論 94.1 運(yùn)行屏幕截圖與分析 .94.2 改進(jìn)想法 .12五 設(shè)計(jì)體會(huì)與小結(jié) 12六 參考文獻(xiàn)12七 附錄 13一 題目內(nèi)容及要求:我選擇的是“復(fù)雜計(jì)算器的設(shè)計(jì)”,其目的主要是因?yàn)閣indows里有計(jì)算器,可以參照那個(gè)模板,并且對(duì)界面很熟悉,做起來更得心應(yīng)手。其次,我對(duì)鏈接數(shù)據(jù)庫還不太熟練,計(jì)算器可以由代碼直接生成,更符合我的知識(shí)水平。設(shè)計(jì)一個(gè)圖形界面(gui)的復(fù)雜計(jì)算器應(yīng)用程序,其組件包括09,+、-、*、/、c=按鈕,顯示

2、屏文本行和菜單。其功能完成簡單的加法、減法、乘法、除法算術(shù)運(yùn)算,具有進(jìn)制轉(zhuǎn)換功能,能關(guān)閉窗口,點(diǎn)擊按鈕或鍵盤數(shù)字會(huì)在現(xiàn)實(shí)屏上輸出結(jié)果。在計(jì)算器的界面上小數(shù)點(diǎn)、正負(fù)號(hào)、求倒數(shù)、退格和清零按鈕要實(shí)現(xiàn)其功能練習(xí)使用布局管理器設(shè)計(jì)一個(gè)計(jì)算器的界面,并練習(xí)使用事件監(jiān)聽器處理數(shù)據(jù)的輸入,并完成相關(guān)的計(jì)算。在我的計(jì)算器上實(shí)現(xiàn)了以上要求的基本功能,其界面參照系統(tǒng)的計(jì)算器。選中菜單項(xiàng)“查看”中的“標(biāo)準(zhǔn)型”菜單子項(xiàng),可以實(shí)現(xiàn)其加減乘除基本運(yùn)算,選中“科學(xué)型“可以實(shí)現(xiàn)進(jìn)制之間的轉(zhuǎn)換。在菜單項(xiàng)條中也設(shè)置了“編輯”,“幫助”等菜單項(xiàng),點(diǎn)擊相關(guān)按鈕可實(shí)現(xiàn)相關(guān)其功能。二 設(shè)計(jì)思路 2.1工作原理圖: 2.2功能規(guī)劃: 在本

3、程序中主要有四個(gè)類,分別是 jisuanqi , computepad ,numberbutton,operationbutton,其主類是jisuanqi。主類jisuanqi主要實(shí)現(xiàn)二,八,十 ,十六之間進(jìn)制轉(zhuǎn)換,但不能實(shí)現(xiàn)加減乘除基本運(yùn)算。computepad類,在此類中主要實(shí)現(xiàn)“查看”中的“標(biāo)準(zhǔn)型”,即實(shí)現(xiàn)十進(jìn)制的加減乘除基本運(yùn)算。在此類中記入numberbutton,operationbutton類,簡化程序。在菜單條中設(shè)置了“編輯”,“查看”“幫助”等菜單項(xiàng),“編輯”中可實(shí)現(xiàn)“復(fù)制”“粘帖”功能,在“查看”中可以選擇“科學(xué)型”“標(biāo)準(zhǔn)型”在“幫助”中實(shí)現(xiàn)“關(guān)于計(jì)算器”“作者主頁”點(diǎn)擊

4、相關(guān)按鈕可實(shí)現(xiàn)相關(guān)其功能。三 具體實(shí)現(xiàn) 3.1類設(shè)計(jì)及功能實(shí)現(xiàn):(1) 主類jisuanqi,即是“查看”中的科學(xué)性,主要實(shí)現(xiàn)二,八,十,十六之間進(jìn)制轉(zhuǎn)換,但不能實(shí)現(xiàn)加減乘除基本運(yùn)算。引入的包有:package my;import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; 3.2 界面如下:圖3.1界面設(shè)計(jì)思路:創(chuàng)建容器cp,創(chuàng)建3個(gè)面板cp1,cp2,cp3并加入到cp中,三個(gè)面板按照邊緣布局,cp.add(cp1,north); cp.add(cp2,cent

5、er); cp.add(cp3,south);在cp1中放置文本框,在cp2中放置進(jìn)制和c,ce,backspace按鈕,剩余的放置在cp3中。功能設(shè)計(jì)思路:先獲取點(diǎn)擊或者輸入的數(shù)字,再將其轉(zhuǎn)換成十進(jìn)制。代碼如下:int jin=10;string hex=text.gettext(); int inthex=integer.parseint(hex,jin);/先把數(shù)變?yōu)?0進(jìn)制 text.settext(convert.dechex(inthex);再將十進(jìn)制轉(zhuǎn)換成相應(yīng)進(jìn)制。代碼如下:例string strdecnum = integer.tostring(decnum); /10 for

6、 (int i = strdecnum.length(); i 15) currentnum = decnum % 16; decnum /= 16; else currentnum = decnum; decnum = 0; 選中相應(yīng)的進(jìn)制后,鍵盤上數(shù)字會(huì)有相應(yīng)的顯示和隱藏,例如,在選中十進(jìn)制后,a,b,c,d,e,f就會(huì)隱藏。代碼如下: (部分) aa.setenabled(false); /a bb.setenabled(false); /b在菜單條中設(shè)置了“編輯”,“查看”“幫助”等菜單項(xiàng),“編輯”中可實(shí)現(xiàn)“復(fù)制”“粘帖”功能,在“查看”中可以選擇“科學(xué)型”“標(biāo)準(zhǔn)型”在“幫助”中實(shí)現(xiàn)“

7、關(guān)于計(jì)算器”“作者主頁”點(diǎn)擊相關(guān)按鈕可實(shí)現(xiàn)相關(guān)其功能。代碼如下:(一部分)if(temp=copy) copycontent = text.gettext(); if(temp=about) joptionpane.showmessagedialog(frame, java計(jì)算器 孫丹丹,關(guān)于計(jì)算器,joptionpane.information_message); ; if(temp=me) try process p = runtime.getruntime().exec(explorer ); catch(exception eeee) 實(shí)現(xiàn)關(guān)閉窗口函數(shù),代碼如下: class wind

8、owdestroyer extends windowadapter /退出窗口動(dòng)作 public void windowclosing(windowevent e) system.exit(0); 實(shí)現(xiàn)正負(fù)號(hào)的轉(zhuǎn)換:if (isnumber = true) /如果當(dāng)前字符串首字母有-號(hào),代表現(xiàn)在是個(gè)負(fù)數(shù),再按下時(shí),則將首符號(hào)去掉 if (s.charat(0) = -) text.settext();對(duì)窗體事件進(jìn)行監(jiān)聽,在監(jiān)聽者的windowclosing方法中實(shí)現(xiàn)窗口的關(guān)閉處理。在處理窗體的“關(guān)閉”事件的監(jiān)聽者則采用繼承windowadapter的方式。 class closew exten

9、ds windowadapter/關(guān)閉窗口功能public void windowclosing(windowevent e)system.exit(0);(2) computepad類,在此類中主要實(shí)現(xiàn)“查看”中的“標(biāo)準(zhǔn)型”,即實(shí)現(xiàn)十進(jìn)制的加減乘除基本運(yùn)算。引入的包:package my;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import my.jisuanqi.windowdestroyer;import java.util.linkedlist;

10、import java.text.numberformat;界面如下:圖3.2界面設(shè)計(jì)思路:,一開始先把圖形界面的布局考慮好。首先是計(jì)算機(jī)顯示輸入及輸出的文本框:jtextfield field=new jtextfield(17);/定義最上面那個(gè)框,括號(hào)里的數(shù)字是框的長度界面采用邊緣布局,panel.setlayout(new gridlayout(4,5);四行五列排放。設(shè)計(jì)比較簡單。功能設(shè)計(jì)思路:次程序借助鏈表存儲(chǔ)數(shù)據(jù)及符號(hào)。并運(yùn)用了numberbutton類來定義按鈕上的數(shù)字,operationbutton類來定義按鈕上的符號(hào),先獲取按鈕上的數(shù)字,代碼如下:if(e.getsourc

11、e() instanceof numberbutton)numberbutton b=(numberbutton)e.getsource(); if(鏈表.size()=0) int number=b.getnumber(); /獲取按鈕上的數(shù)字 鏈表.add( +number); resultshow.settext( +number); 是否按下等號(hào)=false;在鏈表中根據(jù)鏈表的長度和是否按下等號(hào)來判斷是輸出數(shù)字還是進(jìn)行結(jié)算,代碼如下: else if (e.getsource()=等號(hào)按鈕)是否按下等號(hào)=true;if(鏈表.size()=1|鏈表.size()=2) string n

12、um=(string)鏈表.getfirst();resultshow.settext(+num);如果按下等號(hào)切鏈表長度為3,則取中間的為運(yùn)算符號(hào),代碼如下:else if(鏈表.size()=3)string number1=(string)鏈表.getfirst();string number2=(string)鏈表.getlast();string 運(yùn)算符號(hào)=(string)鏈表.get(1);進(jìn)行加減乘除運(yùn)算時(shí)判斷符號(hào)類型,并返回計(jì)算后的數(shù)值。(部分代碼)if(運(yùn)算符號(hào).equals(+)n=n1+n2;else if(運(yùn)算符號(hào).equals(/) n=n1/n2;resultsho

13、w.settext(+n); 菜單條中的設(shè)置和方法也主類一致.在實(shí)現(xiàn)“科學(xué)型”與“標(biāo)準(zhǔn)型”之間的轉(zhuǎn)換時(shí)應(yīng)用的代碼: 標(biāo)準(zhǔn)型.addactionlistener(/標(biāo)準(zhǔn)型和科學(xué)型進(jìn)行切換new actionlistener()public void actionperformed(actionevent e)/處理事件new computerpad();/生成一個(gè)科學(xué)計(jì)算機(jī)的對(duì)象 就會(huì)出現(xiàn)科學(xué)計(jì)算器的窗口exit(); (3)numberbutton,operationbutton類主要是實(shí)現(xiàn)獲取數(shù)字鍵上的數(shù)字和符號(hào)鍵上的符號(hào),并返回按鈕上的字符,用for循環(huán)直接可定義10個(gè)數(shù)字和4個(gè)運(yùn)算符號(hào),

14、可以簡化程序。for (int i=0;i4;i+)operationbuttoni=new operationbutton(運(yùn)算符號(hào)i);operationbuttoni.addactionlistener(this);四運(yùn)行調(diào)試與分析討論 4.1 運(yùn)行屏幕截圖與分析:1.運(yùn)行主類后,進(jìn)行運(yùn)算,首先選中十進(jìn)制,并從鍵盤上輸入445后,如圖: 圖4.12.在將其轉(zhuǎn)換成十六進(jìn)制,選中十六進(jìn)制后,如圖顯示: 圖4.23.當(dāng)選中十六進(jìn)制后,鍵盤上的數(shù)字全部顯示。經(jīng)計(jì)算后校對(duì)結(jié)果準(zhǔn)確。在選中八進(jìn)制后,如圖顯示: 圖4.34.經(jīng)計(jì)算后校對(duì)結(jié)果準(zhǔn)確。在選中二進(jìn)制后,如圖顯示: 圖4.45.經(jīng)計(jì)算后校對(duì)結(jié)果

15、準(zhǔn)確。在點(diǎn)擊正負(fù)號(hào)后,如圖顯示: 圖4.56.由于原來得到的是正數(shù),點(diǎn)擊正負(fù)號(hào)后,變成負(fù)數(shù)。既主類實(shí)現(xiàn)了進(jìn)制的轉(zhuǎn)換,并且計(jì)算無誤,測試成功。點(diǎn)擊“編輯”則出現(xiàn)“復(fù)制 ”“粘帖”功能均可實(shí)現(xiàn)。當(dāng)點(diǎn)擊“幫助”后出現(xiàn)“關(guān)于計(jì)算器”和“作者主頁”,當(dāng)點(diǎn)擊“作者主頁”后,聯(lián)網(wǎng)可進(jìn)入baidu主頁。當(dāng)點(diǎn)擊“關(guān)于計(jì)算器”后,彈出對(duì)話框。如圖: 圖4.67.點(diǎn)擊“查看”下的“標(biāo)準(zhǔn)型”就可以進(jìn)入下一個(gè)十進(jìn)制計(jì)算頁面。如圖:輸入了“1.9”“+”“3”按下“=”后: 圖4.78.在按下“1/x”后,顯示如圖: 圖4.89.當(dāng)點(diǎn)擊“退格”后,顯示如圖: 圖4.9當(dāng)按下“/”“0”后,則返回初值“0”。即測試成功。4

16、.2 改進(jìn)想法:倆個(gè)計(jì)算器布局方式相同,顯示不太相同,“科學(xué)型”的比“標(biāo)準(zhǔn)型”的更好看一點(diǎn),可以改一下。在“標(biāo)準(zhǔn)型”中只能實(shí)現(xiàn)+,-,/和1/x運(yùn)算,可以再添加sin,cos,tan,cot等運(yùn)算,增強(qiáng)實(shí)用型。五設(shè)計(jì)體會(huì)與小結(jié)大約一個(gè)星期的編寫java程序,發(fā)現(xiàn)自己不懂的地方很多,在做這個(gè)課程設(shè)計(jì)之前,我可以獨(dú)立編寫一些小程序,還很有成就感,以為自己的java語言水平還可以。但是在完成這個(gè)設(shè)計(jì)的時(shí)候,我總是被一些小的,細(xì)的問題擋住前進(jìn)的步伐,讓我總是為了解決一個(gè)小問題而花費(fèi)很長的時(shí)間,甚至做到晚上二點(diǎn)多鐘,最好猛然發(fā)現(xiàn)自己缺少一個(gè)定義或者還要查閱其他的書籍才能找出解決的辦法。例如,我定義了一個(gè)

17、鏈表,可是向里面添加?xùn)|西的時(shí)候,總是出錯(cuò),后來在上機(jī)的時(shí)候問老師,才知道鏈表沒有初始化,這是自己的粗心造成的。我在做設(shè)計(jì)的過程中發(fā)現(xiàn)有很多東西,我都還不知道。在做進(jìn)制轉(zhuǎn)換時(shí)不知道函數(shù)怎么寫,是我上網(wǎng)查到的,再經(jīng)過修改查到我的程序中。其實(shí)在用語言來編程的時(shí)候,基礎(chǔ)是一個(gè)不可缺少的知識(shí),但是往往一些核心的高層次的東西更是不可缺少。 在這次編程中,更加深我對(duì)事件監(jiān)聽,各方法的實(shí)現(xiàn)功能,還有布局方式及常用的gui標(biāo)準(zhǔn)組件更深刻的認(rèn)識(shí)。同時(shí),也鞏固了數(shù)據(jù)結(jié)構(gòu)的鏈表的應(yīng)用。在經(jīng)過這次課設(shè)使我知道在設(shè)計(jì)的過程中最好學(xué)習(xí)自己解決問題,無論是通過書籍還是網(wǎng)絡(luò),這樣可以增強(qiáng)自己解決問題的能力,同時(shí)加強(qiáng)記憶。任意一

18、次實(shí)踐都是在檢驗(yàn)自己學(xué)習(xí)的水平,也是強(qiáng)迫自己再提高編程水平。六參考文獻(xiàn) 1丁振凡 .java語言實(shí)用教程m. 北京郵電大學(xué)出版社2006.9 2丁振凡 .java語言實(shí)用教程實(shí)驗(yàn)指導(dǎo)m. 北京郵電大學(xué)出版社. 2006.93嚴(yán)蔚敏.數(shù)據(jù)結(jié)構(gòu)(c語言版).清華大學(xué)出版社.2008.34耿祥義.java課程設(shè)計(jì).清華大學(xué)出版社.2004.15七、附錄:源程序:(主類jisuanqi)package my; /把生成的所有class文件保存到一個(gè)文件夾里,便于引用。import javax.swing.*; import javax.swing.event.*; import java.awt.*;

19、 import java.awt.event.*; public class jisuanqi extends jframe implements actionlistener jframe frame; jbutton deng=new jbutton(=); /定義按鈕 jbutton fu=new jbutton(+/-); jbutton aa=new jbutton(a); jbutton bb=new jbutton(b); jbutton cc=new jbutton(c); jbutton dd=new jbutton(d); jbutton ee=new jbutton(e)

20、; jbutton ff=new jbutton(f); textfield k1=new textfield(); objconversion convert = new objconversion(); jmenuitem copy,paste,科學(xué)型,標(biāo)準(zhǔn)型,help,about,me; jradiobutton sixteen,ten,eight,two; jbutton backspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9; container cp; /容器名為cp jtextfield text; /文本

21、條 string copycontent=; boolean clickable=true,clear=true; /控制符號(hào)位 int all=0; double qian; string fuhao; int jin=10,first=1; /默認(rèn)選中十進(jìn)制 public jisuanqi() /此類的構(gòu)造函數(shù) super(計(jì)算器); /最上面的起名為計(jì)算器setsize(400,300); setlocation(250,200); text=new jtextfield(25); /文本框最多可輸入25位數(shù)text.settext(0.); /默認(rèn)文本框?yàn)?text.sethorizo

22、ntalalignment(jtextfield.right);/從右到左 jpanel cp1=new jpanel(); /設(shè)置3個(gè)面板jpanel cp2=new jpanel(); jpanel cp3=new jpanel(); cp=getcontentpane(); cp.add(cp1,north); /界面布局cp.add(cp2,center); cp.add(cp3,south); cp1.setlayout(new gridlayout(1,6); cp2.setlayout(new gridlayout(2,4); cp3.setlayout(new gridlayo

23、ut(6,6); sixteen=new jradiobutton(十六進(jìn)制); sixteen.setvisible(true); ten=new jradiobutton(十進(jìn)制,true); ten.setvisible(true); eight=new jradiobutton(八進(jìn)制); eight.setvisible(true); two=new jradiobutton(二進(jìn)制); two.setvisible(true); sixteen.addactionlistener(this); /事件監(jiān)聽者ten.addactionlistener(this); eight.add

24、actionlistener(this); two.addactionlistener(this); buttongroup btg=new buttongroup(); btg.add(sixteen); btg.add(ten); btg.add(eight); btg.add(two); jtextfield t3=new jtextfield(25); /向各個(gè)面板中添加按鈕cp1.add(text); text.seteditable(true); text.setbackground(new color(255, 255, 255); cp2.add(sixteen); cp2.a

25、dd(ten); cp2.add(eight); cp2.add(two); backspace=new jbutton(backspace); backspace.setforeground(new color(255,0,0); backspace.addactionlistener(this); ce=new jbutton(ce); ce.setforeground(new color(255,0,0); ce.addactionlistener(this); c=new jbutton(c); c.setforeground(new color(255,0,0); c.addacti

26、onlistener(this); k1.setvisible(false); cp2.add(k1); cp2.add(backspace); cp2.add(ce); cp2.add(c); num0=new jbutton(0); num1=new jbutton(1); num2=new jbutton(2); num3=new jbutton(3); num4=new jbutton(4); num5=new jbutton(5); num6=new jbutton(6); num7=new jbutton(7); num8=new jbutton(8); num9=new jbut

27、ton(9); cp3.add(num7); num7.addactionlistener(this); /數(shù)字事件監(jiān)聽者,以獲取按鈕上的數(shù)字cp3.add(num8); num8.addactionlistener(this); cp3.add(num9); num9.addactionlistener(this); cp3.add(num4); num4.addactionlistener(this); cp3.add(num5); num5.addactionlistener(this); cp3.add(num6); num6.addactionlistener(this); cp3.

28、add(num1); num1.addactionlistener(this); cp3.add(num2); num2.addactionlistener(this); cp3.add(num3); num3.addactionlistener(this); cp3.add(num0); num0.addactionlistener(this); cp3.add(fu); fu.addactionlistener(this); cp3.add(deng); deng.setforeground(new color(255,0,0); /符號(hào)事件監(jiān)聽者deng.addactionlistene

29、r(this); cp3.add(aa); aa.addactionlistener(this); cp3.add(bb); bb.addactionlistener(this); cp3.add(cc); cc.addactionlistener(this); cp3.add(dd); dd.addactionlistener(this); cp3.add(ee); ee.addactionlistener(this); cp3.add(ff); ff.addactionlistener(this); aa.setvisible(false); bb.setvisible(false); c

30、c.setvisible(false); dd.setvisible(false); ee.setvisible(false); ff.setvisible(false); jmenubar mainmenu = new jmenubar(); /菜單條setjmenubar(mainmenu); jmenu editmenu = new jmenu(編輯); jmenu viewmenu = new jmenu(查看); jmenu helpmenu = new jmenu(幫助); mainmenu.add(editmenu); mainmenu.add(viewmenu); mainme

31、nu.add(helpmenu); copy = new jmenuitem( 復(fù)制); paste = new jmenuitem( 粘貼); keystroke copyks=keystroke.getkeystroke(keyevent.vk_c,event.ctrl_mask); copy.setaccelerator(copyks);/設(shè)置退出菜單選項(xiàng)加上快捷鍵 keystroke pasteks=keystroke.getkeystroke(keyevent.vk_v,event.ctrl_mask); paste.setaccelerator(pasteks);/設(shè)置退出菜單選項(xiàng)

32、加上快捷鍵 editmenu.add(copy); editmenu.add(paste); copy.addactionlistener(this); paste.addactionlistener(this); 標(biāo)準(zhǔn)型=new jmenuitem(標(biāo)準(zhǔn)型);科學(xué)型 = new jmenuitem( 科學(xué)型); viewmenu.add(標(biāo)準(zhǔn)型); viewmenu.add(科學(xué)型); 標(biāo)準(zhǔn)型.addactionlistener(/標(biāo)準(zhǔn)型和科學(xué)型進(jìn)行切換new actionlistener()public void actionperformed(actionevent e)/處理事件new

33、 computerpad();/生成一個(gè)科學(xué)計(jì)算機(jī)的對(duì)象 就會(huì)出現(xiàn)科學(xué)計(jì)算器的窗口exit();about = new jmenuitem( 關(guān)于計(jì)算器); me = new jmenuitem( 作者主頁); helpmenu.add(about); helpmenu.add(me); about.addactionlistener(this); me.addactionlistener(this); addwindowlistener(new windowdestroyer();/結(jié)束窗口 protected void exit() / todo auto-generated method

34、 stubpublic void actionperformed(actionevent e) /響應(yīng)動(dòng)作代碼if(first=1) text.settext(); first=0; /第一次把文本框0.清空 object temp = e.getsource(); sixteen.setvisible(true); ten.setvisible(true); eight.setvisible(true); two.setvisible(true); 科學(xué)型.settext( 標(biāo)準(zhǔn)型); 標(biāo)準(zhǔn)型.settext(科學(xué)型); aa.setvisible(true); bb.setvisible(

35、true); cc.setvisible(true); dd.setvisible(true); ee.setvisible(true); ff.setvisible(true); aa.setenabled(false); bb.setenabled(false); cc.setenabled(false); dd.setenabled(false); ee.setenabled(false); ff.setenabled(false); if(temp=copy) /點(diǎn)擊“復(fù)制“后執(zhí)行 copycontent = text.gettext(); if(temp=paste) /點(diǎn)擊“粘帖”

36、后執(zhí)行 text.settext(text.gettext()+copycontent); if(temp=help) /打開系統(tǒng)幫助文件 要查資料 try string filepath = c:/; runtime.getruntime().exec(cmd.exe /c +filepath); catch(exception eeee) system.out.println(打開系統(tǒng)的計(jì)算器出錯(cuò)); if(temp=about) joptionpane.showmessagedialog(frame, java計(jì)算器 孫丹丹,關(guān)于計(jì)算器,joptionpane.information_m

37、essage); ; if(temp=me) try process p = runtime.getruntime().exec(explorer ); catch(exception eeee) system.out.println(打開指定網(wǎng)頁出錯(cuò)); try if(temp=sixteen) /十六進(jìn)制轉(zhuǎn)換 string hex=text.gettext(); int inthex=integer.parseint(hex,jin);/先把數(shù)變?yōu)?0進(jìn)制 text.settext(convert.dechex(inthex) ; jin=16; aa.setenabled(true);

38、bb.setenabled(true); cc.setenabled(true); dd.setenabled(true); ee.setenabled(true); ff.setenabled(true); num2.setenabled(true); num3.setenabled(true); num4.setenabled(true); num5.setenabled(true); num6.setenabled(true); num7.setenabled(true); num8.setenabled(true); num9.setenabled(true); if(temp=eig

39、ht) /八進(jìn)制轉(zhuǎn)換 string oct =text.gettext(); int intoct=integer.parseint(oct,jin); text.settext(convert.decoct(intoct) ; jin=8; aa.setenabled(false); /不顯示bb.setenabled(false); cc.setenabled(false); dd.setenabled(false); ee.setenabled(false); ff.setenabled(false); num2.setenabled(true); num3.setenabled(tru

40、e); num4.setenabled(true); num5.setenabled(true); num6.setenabled(true); num7.setenabled(true); num8.setenabled(false); num9.setenabled(false); if(temp=two) string bin=text.gettext(); int intbin=integer.parseint(bin,jin); text.settext(convert.decbin(intbin); jin=2; aa.setenabled(false); bb.setenable

41、d(false); cc.setenabled(false); dd.setenabled(false); ee.setenabled(false); ff.setenabled(false); num2.setenabled(false); num3.setenabled(false); num4.setenabled(false); num5.setenabled(false); num6.setenabled(false); num7.setenabled(false); num8.setenabled(false); num9.setenabled(false); if(temp=te

42、n) string dec=text.gettext(); int intdec=integer.parseint(dec,jin); text.settext(intdec+); jin=10; aa.setenabled(false); bb.setenabled(false); cc.setenabled(false); dd.setenabled(false); ee.setenabled(false); ff.setenabled(false); num2.setenabled(true); num3.setenabled(true); num4.setenabled(true);

43、num5.setenabled(true); num6.setenabled(true); num7.setenabled(true); num8.setenabled(true); num9.setenabled(true); catch(exception ee) system.out.println(轉(zhuǎn)換出錯(cuò),可能你沒有輸入任何字符); text.settext(轉(zhuǎn)換出錯(cuò)); clear=false; if(temp=backspace) /退格 string s = text.gettext(); text.settext(); for (int i = 0; i s.length()

44、 - 1; i+) char a = s.charat(i); text.settext(text.gettext() + a); if (temp=ce) /還原0 text.settext(0.); clear=true; first=1; if (temp=c) text.settext(0.); ; clear=true; first=1; if(temp=num0) if(clear=false)/判斷是否點(diǎn)擊了符號(hào)位 text.settext(); text.settext(text.gettext()+0); if(temp=num1) if(clear=false) text.

45、settext(); text.settext(text.gettext()+1); clear=true;/第二次不在清空(前二句) if(temp=num2) /獲取數(shù)字 if(clear=false) text.settext(); text.settext(text.gettext()+2); clear=true; if(temp=num3) if(clear=false) text.settext(); text.settext(text.gettext()+3); clear=true; if(temp=num4) if(clear=false) text.settext();

46、text.settext(text.gettext()+4); clear=true; if(temp=num5) if(clear=false) text.settext(); text.settext(text.gettext()+5); clear=true; if(temp=num6) if(clear=false) text.settext(); text.settext(text.gettext()+6); clear=true; if(temp=num7) if(clear=false) text.settext(); text.settext(text.gettext()+7)

47、; clear=true; if(temp=num8) if(clear=false) text.settext(); text.settext(text.gettext()+8); clear=true; if(temp=num9) if(clear=false) text.settext(); text.settext(text.gettext()+9); clear=true; if(temp=aa) text.settext(text.gettext()+a); if(temp=bb) text.settext(text.gettext()+b); if(temp=cc) text.s

48、ettext(text.gettext()+c); if(temp=dd) text.settext(text.gettext()+d); if(temp=ee) text.settext(text.gettext()+e); if(temp=ff) text.settext(text.gettext()+f); try if(temp=deng) clear=false;/要清空前一次的數(shù)據(jù) if (temp = fu) /此方法參考書中例子 boolean isnumber = true; string s = text.gettext(); for (int i = 0; i = 0 & s.charat(i) = 9 | s.charat(i) = . | s.charat(i) = -) isnumber = false; break; if (isnumber = true) /如果當(dāng)前字符串首字母有-號(hào),代表現(xiàn)在是個(gè)負(fù)數(shù),再按下時(shí),則

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論