科學(xué)計(jì)算器課程設(shè)計(jì)_第1頁
科學(xué)計(jì)算器課程設(shè)計(jì)_第2頁
科學(xué)計(jì)算器課程設(shè)計(jì)_第3頁
科學(xué)計(jì)算器課程設(shè)計(jì)_第4頁
科學(xué)計(jì)算器課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、* 課 程 設(shè) 計(jì) 設(shè)計(jì)題目:設(shè)計(jì)題目: 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì) -科學(xué)計(jì)算器科學(xué)計(jì)算器 系系 別別 信息工程系信息工程系 班級(jí)班級(jí) * 學(xué)生姓名學(xué)生姓名 * 學(xué)學(xué) 號(hào)號(hào) * 指導(dǎo)教師指導(dǎo)教師 * 職稱職稱 * 起止日期:起止日期: * * 課程設(shè)計(jì)任務(wù)書 課程設(shè)計(jì)題目:課程設(shè)計(jì)題目: 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì) -科學(xué)計(jì)算器科學(xué)計(jì)算器 系系 別別 信息工程系信息工程系 班級(jí)班級(jí) * 學(xué)生姓名學(xué)生姓名 * 學(xué)學(xué) 號(hào)號(hào) * 指導(dǎo)教師指導(dǎo)教師 * 職稱職稱* 課程設(shè)計(jì)進(jìn)行地點(diǎn):課程設(shè)計(jì)進(jìn)行地點(diǎn): * 任任 務(wù)務(wù) 下下 達(dá)達(dá) 時(shí)時(shí) 間:間: * 起止日

2、期:起止日期:* 教教研研室室主主任任 * 20*日批準(zhǔn)日批準(zhǔn) 1.設(shè)計(jì)的原始資料及依據(jù) 通過課程設(shè)計(jì)使學(xué)生進(jìn)一步加深對(duì)課程內(nèi)容的理解,利用程序設(shè)計(jì)的基本思想進(jìn)行程序 的開發(fā),進(jìn)一步掌握編程方法和技巧,提高學(xué)生用程序的思想來解決實(shí)際問題的能力。 2設(shè)計(jì)的主要內(nèi)容及要求 設(shè)計(jì)題目:科學(xué)計(jì)算器 需要完成的功能: 定義組件:09,+、-、*、/、sqrt()、1/x、%、c=按鈕;顯示屏文本行; 具有進(jìn)制轉(zhuǎn)換功能; 要求能關(guān)閉窗口;點(diǎn)擊按鈕,或鍵盤數(shù)字會(huì)在顯示屏上輸出結(jié)果。 3.對(duì)設(shè)計(jì)說明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求 學(xué)生應(yīng)撰寫的內(nèi)容為:中文摘要和關(guān)鍵詞、目錄、正文、參考文獻(xiàn)等。課程設(shè)計(jì)說 明書(論

3、文)的結(jié)構(gòu)及各部分內(nèi)容要求可參照沈陽工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫規(guī)范 執(zhí)行。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。 裝訂格式 封面、任務(wù)書、成績評(píng)審意見表、摘要和關(guān)鍵詞、目錄、正文、結(jié)論、致謝、參考文獻(xiàn)。 課程設(shè)計(jì)說明書(論文)是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,一般不應(yīng)少于 3000 字。 打印時(shí)采用 a4 紙,頁邊距均為 20mm,正文采用宋體小四號(hào)字,行間距 18 磅。文中大標(biāo)題 采用黑體小三號(hào)字,一級(jí)節(jié)標(biāo)題采用黑體四號(hào)字,二級(jí)節(jié)標(biāo)題采用黑體小四號(hào)字,三級(jí)節(jié)標(biāo) 題采用黑體小四號(hào)字,表題與圖題采用宋體五號(hào)字。 4. 設(shè)計(jì)完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求 課程設(shè)計(jì)任務(wù)書

4、 課程設(shè)計(jì)報(bào)告 設(shè)計(jì)成品(光盤) 5.時(shí)間進(jìn)度安排 順序階段日期計(jì) 劃 完 成 內(nèi) 容備注 1第 1 周第 1 天 查閱資料,充分解讀題目內(nèi)容,小組分工,確定每個(gè)人 的具體任務(wù)。 1 天天 2第 1 周第 2 天 數(shù)據(jù)庫設(shè)計(jì)及登陸界面的實(shí)現(xiàn)。1 天 3第 1 周第 3,4,5 天, 第 2 周第 1 天 編制程序,單元測試。4 天 4第 2 周第 2,3 天 程序整合,綜合調(diào)試。2 天 5第 2 周第 4 天 答辯。1 天 6第 2 周第 5 天 撰寫課程設(shè)計(jì)報(bào)告。1 天 6.主要參考資料(文獻(xiàn)) 1 耿祥義.java2 實(shí)用教程.北京:清華大學(xué)出版社,2006 2 朱仲杰.java2 全方位

5、學(xué)習(xí).北京:機(jī)械工業(yè)出版社,2006 3 張思民.java 程序設(shè)計(jì)實(shí)踐教程.北京:清華大學(xué)出版社,2006 4 湯一平.java 語言程序設(shè)計(jì).北京:科學(xué)出版社,2006 5 劉藝.java 程序設(shè)計(jì)大學(xué)教程.北京:機(jī)械工業(yè)出版社,2006 * 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)成績評(píng)定表面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)成績評(píng)定表 系(部):系(部):信息工程系信息工程系 班級(jí):班級(jí): * 學(xué)生姓名:學(xué)生姓名: * 指指 導(dǎo)導(dǎo) 教教 師師 評(píng)評(píng) 審審 意意 見見 評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分 調(diào)研 論證 能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方 案和日程安排。 0.15432 工作能力 態(tài)度 工作

6、態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好, 能夠獨(dú)立完成設(shè)計(jì)工作。 0.25432 工作量 按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿, 難度適宜。 0.25432 說明書的 質(zhì)量 說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理, 文字通順,技術(shù)用語準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊 全,圖表完備,書寫工整規(guī)范。 0.55432 指導(dǎo)教師評(píng)審成績指導(dǎo)教師評(píng)審成績 (加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 8) 分分加權(quán)分合計(jì)加權(quán)分合計(jì) 指指 導(dǎo)導(dǎo) 教教 師師 簽簽 名:名: 年年 月月 日日 評(píng)評(píng) 閱閱 教教 師師 評(píng)評(píng) 審審 意意 見見 評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分 查閱 文獻(xiàn) 查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的

7、能 力 0.25432 工作量工作量飽滿,難度適中。0.55432 說明書的 質(zhì)量 說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理, 文字通順,技術(shù)用語準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊 全,圖表完備,書寫工整規(guī)范。 0.35432 評(píng)閱教師評(píng)審成績評(píng)閱教師評(píng)審成績 (加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 4) 分分加權(quán)分合計(jì)加權(quán)分合計(jì) 評(píng)評(píng) 閱閱 教教 師師 簽簽 名:名: 年年 月月 日日 答答 辯辯 小小 組組 評(píng)評(píng) 審審 意意 見見 評(píng)價(jià)內(nèi)容具 體 要 求權(quán)重評(píng) 分加權(quán)分 學(xué)生匯報(bào) 匯報(bào)準(zhǔn)備充分,思路清晰;語言表達(dá)準(zhǔn)確,概 念清楚,論點(diǎn)正確,有層次,有重點(diǎn),基本上 反映了所完成任務(wù)的全部內(nèi)容;時(shí)間符合要求。 0

8、.55432 答 辯 思路清晰;回答問題有理論依據(jù),基本概念清 楚;主要問題回答準(zhǔn)確,深入,有說服力。 0.55432 答辯小組評(píng)審成績答辯小組評(píng)審成績 (加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 8) 分分加權(quán)分合計(jì)加權(quán)分合計(jì) 答辯小組教師簽名:答辯小組教師簽名: 年年 月月 日日 課課 程程 設(shè)設(shè) 計(jì)計(jì) 總總 評(píng)評(píng) 成成 績績分分 i 摘 要 本文重點(diǎn)闡述了如何利用 java 語言的特性和語法規(guī)則編寫了一個(gè)科學(xué)計(jì)算 器,實(shí)現(xiàn)對(duì)數(shù)據(jù)的簡單運(yùn)算和數(shù)據(jù)間進(jìn)制轉(zhuǎn)換的求解。并且對(duì)運(yùn)算時(shí)各數(shù)據(jù)之 間的具體關(guān)聯(lián)等方面做出了詳細(xì)說明,并且具體講述了系統(tǒng)各個(gè)功能模塊的設(shè) 計(jì)以及實(shí)現(xiàn)過程。 根據(jù)設(shè)計(jì)中的需求,科學(xué)計(jì)算器

9、采用模塊化的設(shè)計(jì)思想,在 windows xp 操作系統(tǒng)環(huán)境下,采用 myeclipse7 作為開發(fā)工具,實(shí)現(xiàn)計(jì)算器基本運(yùn)算操作的 主要功能,主要包括加減乘除運(yùn)算,求模運(yùn)算,求倒數(shù)運(yùn)算以及求一個(gè)正數(shù)平 方根的運(yùn)算等功能。 在設(shè)計(jì)計(jì)算器功能的時(shí)候首先考慮了各種數(shù)據(jù)的輸入情況,考慮到對(duì)異常 數(shù)據(jù)的處理和特殊情況的求解顯示問題。另外,為了實(shí)現(xiàn)計(jì)算器對(duì)數(shù)據(jù)的進(jìn)制 轉(zhuǎn)換的功能的實(shí)現(xiàn),需要在對(duì)計(jì)算器程序編程的時(shí)候引入強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型的 思想,方便其他進(jìn)制與十進(jìn)制互相轉(zhuǎn)換的實(shí)現(xiàn)。由于此計(jì)算器功能的不需要考 慮到數(shù)據(jù)的保留存儲(chǔ)問題,所以實(shí)現(xiàn)其功能比較簡單。剩下的工作就是利用 java 語言逐步實(shí)現(xiàn)計(jì)算器的各種

10、運(yùn)算功能的實(shí)現(xiàn)了。 經(jīng)過從網(wǎng)絡(luò)上和書本上查閱資料,了解了實(shí)現(xiàn)計(jì)算器功能的 java 內(nèi)部的方 法,還有組員的齊心努力,完成了對(duì)計(jì)算器的 java 語言的編程工作。目前系統(tǒng) 已通過測試,具有功能完備,使用簡捷,操作方便的特性。 關(guān)鍵詞關(guān)鍵詞 java,程序語言,面向?qū)ο?,科學(xué)計(jì)算器,運(yùn)算 目 錄 摘摘 要要.i 第一章第一章 緒論緒論.1 第二章第二章 系統(tǒng)功能介紹及組內(nèi)分工系統(tǒng)功能介紹及組內(nèi)分工.2 2.1 系統(tǒng)功能總框圖.2 2.2 組內(nèi)分工.3 第三章第三章 系統(tǒng)功能介紹及實(shí)現(xiàn)代碼系統(tǒng)功能介紹及實(shí)現(xiàn)代碼.4 3.1 calculator 類的功能介紹及代碼.4 3.2 實(shí)現(xiàn)基本運(yùn)算方法的各

11、個(gè)事件監(jiān)聽的功能介紹及代碼.6 3.2.1 a 類數(shù)字按鈕事件監(jiān)聽的功能介紹.6 3.2.2 e 類監(jiān)聽小數(shù)點(diǎn)的功能介紹 .7 3.2.3 d 類1/x 的監(jiān)聽的功能介紹.8 3.2.4 i 類sqrt 的監(jiān)聽的功能介紹 .8 3.2.5 f 類運(yùn)算監(jiān)聽的功能介紹.9 3.2.6 h 類正負(fù)號(hào)監(jiān)聽的功能介紹.10 3.2.7 g 類運(yùn)算結(jié)果的功能介紹.10 3.3 實(shí)現(xiàn)計(jì)算器編輯功能的各個(gè)事件監(jiān)聽的功能介紹及代碼.12 3.3.1 b 類清零按鍵事件監(jiān)聽的功能介紹.12 3.3.2 c 類bakespace 鍵事件監(jiān)聽的功能介紹.13 3.3.3 f 類運(yùn)算監(jiān)聽的功能介紹.13 3.4 實(shí)現(xiàn)進(jìn)

12、制轉(zhuǎn)換的各個(gè)事件監(jiān)聽的功能介紹及代碼.15 3.4.1 j 類按二進(jìn)制按鈕后的事件處理的功能介紹.15 3.4.2 k 類按八進(jìn)制按鈕后的事件處理的功能介紹.16 3.4.3 l 類按十六進(jìn)制按鈕后的事件處理的功能介紹 .17 3.4.4 m 類按十進(jìn)制按鈕后的事件處理的功能介紹.19 3.5 calculator 類的主函數(shù)的功能介紹.20 3.6 系統(tǒng)運(yùn)行過程.21 3.6.1 系統(tǒng)初始運(yùn)行界面.21 3.6.2 系統(tǒng)計(jì)算結(jié)果.21 結(jié)結(jié) 論論.23 致致 謝謝.24 參考文獻(xiàn)參考文獻(xiàn).25 1 第一章 緒論 java 起源于 80 年代的中末期,當(dāng)時(shí)西方有一種很時(shí)髦的產(chǎn)品: active

13、tv,java 就是 sun 公飼喂這種產(chǎn)品開發(fā)的一種語言,其目標(biāo)是在小型嵌 入式系統(tǒng)上運(yùn)行。但是由于動(dòng)態(tài)圖像壓縮標(biāo)準(zhǔn) mpeg 卻始終未能出臺(tái),因而這 個(gè)時(shí)期的 java 也就中途夭折了。到了 1990 年,sun 公司副總裁 jamesgosling 再次提出 java 的設(shè)計(jì),其目標(biāo)是希望仿效 c 和 c+那樣設(shè)計(jì)出一種更簡單、更 有效、更容易使用的跨多種計(jì)算機(jī)平臺(tái)(硬件、操作系統(tǒng)等) ,可移植的通用語 言。到了 90 年代中期,互聯(lián)網(wǎng)迅速崛起,短短幾年得到了巨速的發(fā)展,成千上 萬的計(jì)算機(jī),其中有個(gè)人的、企業(yè)的、政府的,公司加入到了互聯(lián)網(wǎng)上,致使 互聯(lián)網(wǎng)深入到了生活、社會(huì)、經(jīng)濟(jì)、政治、軍

14、事的每一個(gè)角落,因此急需開發(fā) 一種跨平臺(tái)軟件開發(fā)工具,這給 java 得到了一個(gè)極好的發(fā)展機(jī)遇,1995 年 sun 公司首次推出 java 語言。短短的幾年中 java 得到了極大的發(fā)展,成立互聯(lián)網(wǎng)開 發(fā)和應(yīng)用發(fā)展的一個(gè)重要工具。 java 既是一種程序設(shè)計(jì)語言,也是一個(gè)完整的平臺(tái)。作為一種程序語言, 它簡潔、面向?qū)ο?、安全、健壯,以及適用于 internet 技術(shù);而作為一個(gè)平臺(tái) (jre,java runtime environment,java 運(yùn)行環(huán)境或者說是 java 虛擬機(jī)) ,對(duì)于 符合 sun 公司 java 標(biāo)準(zhǔn)的應(yīng)用程序,都可以在 java 平臺(tái)上正確運(yùn)行,與程序 運(yùn)行的

15、操作系統(tǒng)無關(guān)。 java 發(fā)展到今天,已從編程語言發(fā)展成為全球第一大通用開發(fā)平臺(tái)。java 技術(shù)已被計(jì)算機(jī)行業(yè)主要公司所采納。1999 年,sun 公司推出了以 java2 平臺(tái) 為核心的 j2ee、j2se 和 j2me 三大平臺(tái)。隨著三大平臺(tái)的迅速推進(jìn),全球形成 了一股巨大的 java 應(yīng)用浪潮。 2 第二章 系統(tǒng)功能介紹及組內(nèi)分工 2.1 系統(tǒng)功能總框圖 系統(tǒng)功能總框圖,如圖 2.1 所示。 科學(xué)計(jì)算器 基本運(yùn)算 高級(jí)運(yùn)算 進(jìn)制轉(zhuǎn)換 加法運(yùn)算 向十六進(jìn)制轉(zhuǎn)換 向八進(jìn)制轉(zhuǎn)換 向二進(jìn)制轉(zhuǎn)換 向十進(jìn)制轉(zhuǎn)換 求倒數(shù)運(yùn)算 求平方根運(yùn)算 求余運(yùn)算 除法運(yùn)算 乘法運(yùn)算 減法運(yùn)算 圖 2.1 系統(tǒng)功能總

16、框圖 3 該計(jì)算器的計(jì)算過程為:當(dāng)用戶啟動(dòng)科學(xué)計(jì)算器后,可在用戶界面中,按 相應(yīng)的數(shù)字鍵,輸入相應(yīng)數(shù)字。當(dāng)用戶輸入完第一個(gè)數(shù)字后,再按下決定進(jìn)行 何種運(yùn)算的運(yùn)算按鍵,當(dāng)用戶按下“+” 、 “-” 、 “*” 、 “/”按鍵時(shí),系統(tǒng)進(jìn)入基 本運(yùn)算模式,等待參與第二個(gè)運(yùn)算的數(shù)據(jù),然后進(jìn)行相應(yīng)的運(yùn)算;當(dāng)用戶按下 “%” 、 “1/x”按鍵時(shí),系統(tǒng)進(jìn)入高級(jí)運(yùn)算模式,等待第二個(gè)參與運(yùn)算的數(shù)據(jù), 然后進(jìn)行相應(yīng)運(yùn)算;當(dāng)用戶點(diǎn)擊“二進(jìn)制” 、 “八進(jìn)制” 、 “十六進(jìn)制”按鍵時(shí), 系統(tǒng)進(jìn)入進(jìn)制轉(zhuǎn)換模式,并對(duì)當(dāng)前數(shù)字進(jìn)行相應(yīng)處理。 2.2 組內(nèi)分工 對(duì)于每一項(xiàng)工作而言,團(tuán)隊(duì)小組的合作和配合,合理的科學(xué)的分工是必

17、不 可少的工作,正確的分工可以增加我們的工作效率,優(yōu)化我們的工作成果,具 體組內(nèi)分工如表 2.1 所示。 表 2.1 組內(nèi)分工 組內(nèi)成分姓名(學(xué)號(hào))分工 組長張博(21) 主要負(fù)責(zé)主類和方法的 聲明和實(shí)現(xiàn)、數(shù)字按鈕事件 監(jiān)聽、按十六進(jìn)制轉(zhuǎn)換按的 事件監(jiān)聽、運(yùn)算結(jié)果的輸出 過程以及各個(gè)動(dòng)作事件的相 關(guān)聯(lián)系組織,報(bào)告的排版、 校正,結(jié)論。 裴瑩瑩(03) 主要負(fù)責(zé)數(shù)字按鈕事件 監(jiān)聽、1/x 監(jiān)聽、運(yùn)算結(jié)果的 輸出過程、正負(fù)號(hào)的監(jiān)聽、 總功能圖,致謝。 侯金龍(12) 主要負(fù)責(zé)清零按鍵事件 監(jiān)聽、小數(shù)點(diǎn)事件監(jiān)聽、求 平方根事件的監(jiān)聽、按十六 進(jìn)制轉(zhuǎn)換按的事件監(jiān)聽。 組員 李熙坤(27) 主要負(fù)責(zé) b

18、ackspace 鍵 事件監(jiān)聽、運(yùn)算監(jiān)聽事件、 二進(jìn)制事件監(jiān)聽、十進(jìn)制事 件監(jiān)聽。 4 第三章 系統(tǒng)功能介紹及實(shí)現(xiàn)代碼 3.1 calculator 類的功能介紹及代碼 首先在主類中定義邏輯型的 first 變量,用它來辨別第一次輸入的值是否為 0,如果為 0,把 first 值變?yōu)?true。然后定義整型變量 dbho,它代表當(dāng)前實(shí)行 的是幾進(jìn)制運(yùn)算,默認(rèn)值為十進(jìn)制。 接著定義兩個(gè)雙精度浮點(diǎn)型變量 number1,number2。number1 用來存放輸 入的第一個(gè)數(shù)字,number2 用來存放輸入的第二個(gè)數(shù)字。整型變量 yunsuan 是 用來定義加、減、乘、除、求余的運(yùn)算方法,雙精度浮

19、點(diǎn)型變量 result 用來存 放運(yùn)算結(jié)果。 接著定義 jtextfield 類的文本框,并將其框的長度初始化為 23,再定義 jbutton 類按鍵,個(gè)數(shù)為 26 個(gè),定義一個(gè) jlabel 類的信息提示欄,初始提示信 息為“計(jì)本 081” 。定義按鈕數(shù)組,將各個(gè)按鈕的信息加入到按鈕數(shù)組中。 由于繼承了 apple 類,所以要實(shí)現(xiàn) init()方法。再定義的 init 的方法中,首 先再頂部加入一個(gè) jtextfield 類的文本框,然后設(shè)置文本框的格式,將其定義 為數(shù)字在右邊,背景色為白,字體色為黑,文本框初始顯示為“0.0” 。其次定 義窗體布局方式為流式布局,按照左對(duì)齊方式,按鍵之間間

20、隔為 10。接著通過 循環(huán)語句將按鈕數(shù)組的每一個(gè)元素,添加到按鍵中,并設(shè)置按鍵顏色。然后建 立各個(gè)按鍵的事件監(jiān)聽,與后面的各個(gè)動(dòng)作事件監(jiān)聽類建立聯(lián)系。 其相應(yīng)代碼為: public class calculator extends applet boolean first=true; int dbho=10;/當(dāng)前文本框內(nèi)數(shù)字為幾進(jìn)制的標(biāo)識(shí)符,默認(rèn)為10進(jìn)制 double number1;/定義第一個(gè)按的數(shù)字,輸入的第一個(gè)數(shù)字保存在這 double number2;/定義第二個(gè)按的數(shù)字,輸入的第二個(gè)數(shù)字保存在這 int yunsuan;/定義加減乘除求余的運(yùn)算方法 double result;

21、/定義結(jié)果,結(jié)果就保存在這 int t=0;/循環(huán)用 boolean isoper=false;/這個(gè)是和當(dāng)數(shù)據(jù)框里有數(shù)據(jù)時(shí),再按下一個(gè)數(shù)據(jù)后,清除 原來數(shù)據(jù)有關(guān)的一個(gè)東西 jtextfield field=new jtextfield(23);/定義最上面那個(gè)框,括號(hào)里的數(shù)字是 框的長度,你可以改變看看,就知道用處了 jbutton button=new jbutton26;/定義26個(gè)按鍵 jlabel dec=new jlabel(計(jì)本081 );/提示信息攔 public string anniu= backspace , c ,7,8,9,/,sqrt,4,5,6,*, % ,1,2

22、,3, -, 1/x ,0,?, .,+, = ,十進(jìn)制,二進(jìn)制,八 進(jìn)制,十六進(jìn)制;/把22個(gè)按鍵存放在anniu這個(gè)數(shù)組里 public void init() 5 add(field);/增加一個(gè)field框 field.sethorizontalalignment(jtextfield.right); field.setforeground(color.black); field.setbackground(color.white); field.settext(0);/以上這4個(gè)是對(duì)field的設(shè)置,設(shè)置成數(shù)字在右邊,顏色, 初始化狀態(tài)為0 this.setlayout(new fl

23、owlayout(flowlayout.left,10,10);/流式布 局的定義,按照左對(duì)齊方式,按鍵之間間隔10 for(int i=0;i26;i+) buttoni=new jbutton(anniui); this.add(buttoni); buttoni.setforeground(color.blue);/定義這26個(gè)按鍵,并增 加他們,同時(shí)給他們都賦上藍(lán)色 add(dec); button0.setforeground(color.red); button1.setforeground(color.red); button5.setforeground(color.red);

24、 button10.setforeground(color.red); button15.setforeground(color.red); button20.setforeground(color.red); button21.setforeground(color.red);/以上這幾句是吧+,- ,*,/,開根號(hào),%,x分之一等號(hào)那些按鍵設(shè)置成紅色 button22.setforeground(color.magenta); button23.setforeground(color.magenta); button24.setforeground(color.magenta); butt

25、on25.setforeground(color.magenta);/以上的這4個(gè)按鍵是進(jìn)制 按鍵,單獨(dú)給它們賦色 a a=new a();/數(shù)字按鈕事件監(jiān)聽 b b=new b();/清零按鍵事件監(jiān)聽 c c=new c();/bs鍵的事件監(jiān)聽 d d=new d();/1/x事件監(jiān)聽 e e=new e();/小數(shù)點(diǎn)事件監(jiān)聽 f f=new f();/運(yùn)算事件監(jiān)聽 g g=new g();/運(yùn)算結(jié)果監(jiān)聽 h h=new h();/正負(fù)號(hào)監(jiān)聽 i i=new i();/sqrt的監(jiān)聽 j j=new j();/2進(jìn)制轉(zhuǎn)換事件的處理 k k=new k();/8進(jìn)制轉(zhuǎn)換事件的處理 l l=ne

26、w l();/16進(jìn)制轉(zhuǎn)換事件的處理 m m=new m();/10進(jìn)制轉(zhuǎn)換事件的處理 /以上是把一些事件,分類,并且把+-*/%都放到了f運(yùn)算事件監(jiān)聽里 6 button0.addactionlistener(c); button1.addactionlistener(b); button2.addactionlistener(a); button3.addactionlistener(a); button4.addactionlistener(a); button5.addactionlistener(f); button6.addactionlistener(i); button7.ad

27、dactionlistener(a); button8.addactionlistener(a); button9.addactionlistener(a); button10.addactionlistener(f); button11.addactionlistener(f); button12.addactionlistener(a); button13.addactionlistener(a); button14.addactionlistener(a); button15.addactionlistener(f); button16.addactionlistener(d); but

28、ton17.addactionlistener(a); button18.addactionlistener(h); button19.addactionlistener(e); button20.addactionlistener(f); button21.addactionlistener(g); button22.addactionlistener(m); button23.addactionlistener(j); button24.addactionlistener(k); button25.addactionlistener(l); /以上的是把每個(gè)按鍵定義到相應(yīng)的事件里去 3.2

29、 實(shí)現(xiàn)基本運(yùn)算方法的各個(gè)事件監(jiān)聽的功能介紹及代碼 3.2.1 a 類數(shù)字按鈕事件監(jiān)聽的功能介紹 首先定義了 input 來接收顯示在文本框里的輸入的數(shù)字并存放,input 類型 為 string。然后進(jìn)行判斷,如果當(dāng)前文本框里有上次運(yùn)算的結(jié)果,再次輸入下 一個(gè)數(shù)據(jù)的時(shí)候,清除原來文本框里的數(shù)據(jù)。isoper 代表了是否有上次運(yùn)算的 結(jié)果,初始值為 false 代表著沒有上次運(yùn)算的結(jié)果。如果在計(jì)算器初始狀態(tài)的時(shí) 候輸入數(shù)字零,系統(tǒng)不會(huì)產(chǎn)生響應(yīng),一直顯示一個(gè)零。如果第一個(gè)輸入的數(shù)字 不是零,那么文本框就會(huì)相應(yīng)的輸出和保存你所輸入的數(shù)據(jù)。數(shù)字按鈕事件監(jiān) 聽主要的功能就是判斷運(yùn)算過程中是否輸入了等號(hào),

30、當(dāng)文本框里已經(jīng)有運(yùn)算的 結(jié)果時(shí),下次再進(jìn)行輸入數(shù)字的時(shí)候,會(huì)進(jìn)行清零再輸出數(shù)字。 其相應(yīng)代碼為: 7 class a implements actionlistener/數(shù)字按鈕事件監(jiān)聽 public void actionperformed(actionevent e) string input = e.getactioncommand();/定義input來接收你按的 數(shù)字并存放 if(isoper) field.settext(); isoper=false; if (first) if(input=0)/當(dāng)你一開始按零的時(shí)候,系統(tǒng)不應(yīng)該有響應(yīng),應(yīng)該 一直顯示一個(gè)0 field.sett

31、ext(); first=true; else field.settext(); first = false;/如果不是按的第一個(gè)不是0,那么就相應(yīng)的輸出和保存 你按了哪些數(shù)字 field.settext(field.gettext() + input);/以上是判斷是否已經(jīng)按 了=號(hào),數(shù)據(jù)框里是否已經(jīng)有結(jié)果 /這樣在已經(jīng)有數(shù)據(jù)的情況下,再 按數(shù)字會(huì)清零 3.2.2 e 類監(jiān)聽小數(shù)點(diǎn)的功能介紹 在這個(gè)模塊,實(shí)現(xiàn)了對(duì)數(shù)字中需要運(yùn)用小數(shù)點(diǎn)事件的監(jiān)聽任務(wù)。因?yàn)樵跀?shù) 字運(yùn)算的時(shí)候,難免會(huì)用到小數(shù)點(diǎn),這就需要考慮小數(shù)點(diǎn)的使用問題。當(dāng)有人 按“.”鍵后,監(jiān)聽器就會(huì)監(jiān)聽到此事件的發(fā)生,然后就會(huì)執(zhí)行 e 類里

32、的程序。 在執(zhí)行時(shí),首先需要判斷數(shù)字里是否已經(jīng)有小數(shù)點(diǎn),如果有了再按小數(shù)點(diǎn)就不 應(yīng)該有響應(yīng)。另外還要考慮,所輸入的數(shù)字的第一位是否為零,即整數(shù)部分是 否為零。如果為零,那么數(shù)據(jù)的輸入的形式就該為“0.xxx” 。最后一種情況就 是最普通的“xxx.xxxxx”型的數(shù)據(jù)了。通過調(diào)用 java 內(nèi)部的方法,可以實(shí) 現(xiàn)上述的顯示功能。另外,在此模塊,還要將 first 的值賦值為 false,實(shí)現(xiàn)對(duì)輸 入數(shù)據(jù)不是零的控制和掌握。 其相應(yīng)代碼為: class e implements actionlistener/監(jiān)聽小數(shù)點(diǎn) public void actionperformed(actioneven

33、t e)/這個(gè)就是你按下小數(shù)點(diǎn) 8 之后的處理 if(field.gettext().trim().indexof(.)!=-1);/判斷數(shù)字里是否 已經(jīng)有小數(shù)點(diǎn) /如果有了再按小數(shù)點(diǎn)就不應(yīng) 該有響應(yīng) else if(field.gettext().trim().equals(0) field.settext(0+e.getactioncommand();/如果沒有小 數(shù)點(diǎn),而第一個(gè)數(shù)是零 else /那就直接是0.xxx field.settext(field.gettext()+e.getactioncommand(); first=false;/如果前面是數(shù)字,那么就直接顯示xxx.xx

34、xx 3.2.3 d 類1/x 的監(jiān)聽的功能介紹 當(dāng)用戶按下 1/x 鍵后,該 1/x 類的事件監(jiān)聽被執(zhí)行。用戶向文本框輸入一個(gè) 數(shù)據(jù),通過賦值 x 的方式把它強(qiáng)制轉(zhuǎn)換為 double 型。如果輸入的數(shù)據(jù) x 是零, 判斷零沒有倒數(shù),輸出出錯(cuò)信息“除數(shù)不能為零” 。如果輸入的數(shù)據(jù) x 不為零, 按下 1/x 鍵后,即可直接可求出 1/x。通過以上的方法,用戶便可求出想要的數(shù) 據(jù) 1/x。 其相應(yīng)代碼為: class d implements actionlistener/1/x的監(jiān)聽 public void actionperformed(actionevent e) double x=dou

35、ble.parsedouble(field.gettext();/把從文本框輸入 的數(shù)字賦值給x,切x為double型 if(x=0) field.settext(除數(shù)不能為零);/如果輸入的是0,那么當(dāng)然就沒有 倒數(shù)了,顯示出錯(cuò)信息 else field.settext(+1/x);/如果輸入的不是0,那么直接求x分之一 3.2.4 i 類sqrt 的監(jiān)聽的功能介紹 在此模塊,實(shí)現(xiàn)了對(duì)一個(gè)數(shù)的求平方根運(yùn)算。當(dāng)操作人員向文本框內(nèi)輸入 一個(gè)數(shù)據(jù)后,當(dāng)再按下“sqrt”鍵之后,由于設(shè)置了對(duì)此事件的監(jiān)聽器,捕捉到 事件后,計(jì)算器就會(huì)調(diào)用此類的程序,從而實(shí)現(xiàn)求一個(gè)數(shù)的平方根。在運(yùn)算時(shí), 首先要從文本框

36、中取到這個(gè)要運(yùn)算的數(shù),并判斷其是否大于零。因?yàn)?,?fù)數(shù)沒 有有理的平方根,當(dāng)輸入的數(shù)小于零,計(jì)算機(jī)將無法實(shí)現(xiàn)求平方根的功能,因 此會(huì)在相應(yīng)的提示框內(nèi)輸出“負(fù)數(shù)不能開平方” 。當(dāng)只有輸入的數(shù)為正數(shù)是,才 9 會(huì)調(diào)用 math.sqrt()函數(shù)進(jìn)行求解。 其相應(yīng)代碼為: class i implements actionlistener/sqrt的監(jiān)聽 public void actionperformed(actionevent e)/求根號(hào)的運(yùn)算 double x=double.parsedouble(field.gettext();/把輸入的 數(shù)字存放在x中并定義為double型 if(xdo

37、uble.max_value/這是一個(gè)防止數(shù)據(jù)溢出處理,不過基本 用不上,因?yàn)閿?shù)據(jù)根本益處不了,就那些運(yùn)算 else switch(yunsuan)/如果數(shù)據(jù)不益處,那么開始處理運(yùn)算 case 1:/對(duì)1號(hào)運(yùn)算,也就是+法怎么運(yùn)算給出,看看上面定義的1號(hào),聯(lián)系起 來看 result=number1+number2;/把結(jié)果保存在result里 field.settext(+result);/在文本框里輸出result即輸出運(yùn)算+ 號(hào)后的結(jié)果 break; case 2:/對(duì)于2號(hào)運(yùn)算,也就是-法運(yùn)算應(yīng)該怎么做, result=number1-number2;/用result保存結(jié)果 field

38、.settext(+result);/輸出結(jié)果 break; case 3: result=number1*number2;/*運(yùn)算 field.settext(+result); break; case 4: 12 if(number2=0)/除運(yùn)算,但要判斷除數(shù),也就是第二個(gè)輸入的數(shù)是不 是零 field.settext(除數(shù)不能為零);/零當(dāng)然不能為除數(shù),如果你按 了零,那么輸出出錯(cuò)信息 else result=number1/number2;/正常運(yùn)算除法 field.settext(+result); break; case 5: result=number1%number2;/求余

39、運(yùn)算,結(jié)果保存在result中 field.settext(+result);/輸出結(jié)果 break; isoper=true;/這個(gè)是和當(dāng)文本框中已經(jīng)有了一次運(yùn)算結(jié)果后,再按一個(gè)數(shù) 字時(shí),應(yīng)該把原來的數(shù)字清除,直接顯示當(dāng)前 /輸入的數(shù)字,而不是在原來的結(jié)果后面加上你按的數(shù)字,有關(guān)的一句代碼 3.3 實(shí)現(xiàn)計(jì)算器編輯功能的各個(gè)事件監(jiān)聽的功能介紹及代碼 3.3.1 b 類清零按鍵事件監(jiān)聽的功能介紹 在這個(gè)模塊,主要實(shí)現(xiàn)了計(jì)算器的清零工作,即將一切顯示、數(shù)字進(jìn)制都 變回了初始化的狀態(tài)。在這個(gè)類里,設(shè)置了一個(gè)對(duì)按下“c”鍵的動(dòng)作事件的 監(jiān)聽器。當(dāng)操作員按下 c 鍵,監(jiān)聽器捕獲了這個(gè)事件,然后就會(huì)調(diào)用

40、b 類里的 方法,執(zhí)行 b 類里的程序。首先將顯示數(shù)字的文本框,顯示變?yōu)?0。并將 result 和 first 變量分別賦值為 0 和 true,將數(shù)字進(jìn)制設(shè)成為默認(rèn)的十進(jìn)制。然 后將所有的數(shù)字鍵設(shè)成為可用,即將數(shù)字的前景顏色設(shè)為藍(lán)色。就這樣,當(dāng)有 人按下 c 鍵,就實(shí)現(xiàn)了計(jì)算器清零的目的。 其相應(yīng)代碼為: class b implements actionlistener/清零按鍵事件監(jiān)聽 public void actionperformed(actionevent e)/如果按了c鍵也就是清 零鍵,就到這里來處理 field.settext(0);/按了c鍵,讓文本框顯示0,初始為0

41、result=0; first=true; dbho=10; dec.settext(); button2.setforeground(color.blue); button3.setforeground(color.blue); 13 button4.setforeground(color.blue); button7.setforeground(color.blue); button8.setforeground(color.blue); button9.setforeground(color.blue); button13.setforeground(color.blue); butto

42、n14.setforeground(color.blue);/以上是把各種參數(shù)都初始 化以達(dá)到清零目的 3.3.2 c 類bakespace 鍵事件監(jiān)聽的功能介紹 由于已經(jīng)定義了 button0.addactionlistener(c);所以當(dāng)按了 backspace 鍵后, 轉(zhuǎn)入此類進(jìn)行處理;對(duì)于 backspace 事件的處理,分為兩類進(jìn)行:一種就是當(dāng) 處理的數(shù)據(jù)欄內(nèi)數(shù)據(jù)長度為 1 或 0(沒有數(shù)據(jù)時(shí)) ;按下 backspace 鍵后,直接 得到 0;另一種就是當(dāng)數(shù)據(jù)長度大于 1 時(shí),按下 backspace 鍵后,得到數(shù)據(jù)就是 原數(shù)據(jù)刪除最后一位得到的數(shù)據(jù)。所以處理時(shí),定義 s1 與

43、s2,當(dāng)數(shù)據(jù)類型為 第一種是,則賦予 s1=0,并通過 s1=field.gettext()輸出。當(dāng)數(shù)據(jù)類型為第二種 時(shí),則將原數(shù)據(jù)按數(shù)據(jù)長度,將首位至倒數(shù)第二位的數(shù)據(jù)賦予 s2,再輸出 s2。 其相應(yīng)代碼為: class c implements actionlistener/bakespace鍵事件監(jiān)聽 public void actionperformed(actionevent e)/如果按了backspace 就到這里來處理 string s1,s2; int jflength;/定義個(gè)jflength來保存文本框里的數(shù)字長度 s1=field.gettext();/把文本框里的東西

44、賦值給s1 jflength=field.gettext().length();/把文本框里的數(shù)字的長度賦給 jflength if(jflength=0|jflength=1)/如果數(shù)字長度是1或者0,那么按了 backspace后就直接顯示個(gè)0 field.settext(0); else/如果數(shù)字長度大于1,則按照下面的方法做 s2=s1.substring(0,jflength-1);/把文本框里的最后第0號(hào)數(shù)據(jù)一 直到j(luò)flength-1(也就是倒數(shù)第2個(gè)數(shù)據(jù))傳送給s2 field.settext(s2);/顯示s2的內(nèi)容,那么也就是說已經(jīng)把最后一個(gè) 數(shù)字去掉了,也就實(shí)現(xiàn)了退格的功

45、能 first=true; 14 3.3.3 f 類運(yùn)算監(jiān)聽的功能介紹 對(duì)于事件“+” 、 “-” 、 “*” 、 “/”進(jìn)行監(jiān)聽,所以對(duì)于不同的運(yùn)算事件,進(jìn) 行不同的處理,使用 if 語句:當(dāng)按下 “+”鍵,則動(dòng)作執(zhí)行 operation=1,即跳 轉(zhuǎn)至加處理;當(dāng)按下“-”鍵后,則動(dòng)作執(zhí)行 operation=2,即跳轉(zhuǎn)至減處理;當(dāng) 按下“*”鍵后,則動(dòng)作執(zhí)行 operation=3,即跳轉(zhuǎn)至乘處理;當(dāng)按下“/”鍵后, 則動(dòng)作執(zhí)行除處理。然后再使用 switch 語句,在其中對(duì)于相應(yīng)的動(dòng)作進(jìn)行定義。 其相應(yīng)代碼為: class f implements actionlistener/運(yùn)算監(jiān)聽

46、 int operation; public void actionperformed(actionevent e)/這是對(duì)于+ - * / % 運(yùn)算的一個(gè)歸類 if(e.getactioncommand()=+)/如果你點(diǎn)了+運(yùn)算 operation=1;/那么跳轉(zhuǎn)到1號(hào)處理(下面會(huì)有幾號(hào)處理是怎么處理的) else if(e.getactioncommand()=-)/如果你點(diǎn)的是-運(yùn)算 operation=2;/跳轉(zhuǎn)到2號(hào)處理 else if(e.getactioncommand()=*)/如果你點(diǎn)的是*運(yùn)算 operation=3;/跳轉(zhuǎn)到3號(hào)處理 else if(e.getactio

47、ncommand()=/) operation=4; else if(e.getactioncommand()= % ) operation=5; number1=double.parsedouble(field.gettext();/把輸入的第一個(gè) 數(shù)賦值給number1 switch(operation) case 1: yunsuan=1;/對(duì)于1號(hào)運(yùn)算的定義,也就是+號(hào)運(yùn)算,你對(duì)應(yīng)上面的1號(hào)看 first=true; break; case 2: yunsuan=2;/對(duì)于2號(hào)運(yùn)算的定義,也就是-號(hào)運(yùn)算,對(duì)應(yīng)上面的2號(hào)看 first=true; break; case 3: yunsu

48、an=3; first=true; break; case 4: yunsuan=4; first=true; break; case 5: 15 yunsuan=5; first=true; break; 3.4 實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換的各個(gè)事件監(jiān)聽的功能介紹及代碼 3.4.1 j 類按二進(jìn)制按鈕后的事件處理的功能介紹 當(dāng)按下“二進(jìn)制轉(zhuǎn)換”鍵后,先將輸入鍵盤當(dāng)中的 2-9 數(shù)字鍵屏蔽掉,然 后定義個(gè)變量 input,將數(shù)據(jù)欄中的數(shù)據(jù)賦給 input,由于要將數(shù)據(jù)轉(zhuǎn)換到二進(jìn)制 時(shí),原數(shù)據(jù)可能為小數(shù),所以先將原數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為整形變量;然后對(duì)于數(shù)據(jù) 之間的轉(zhuǎn)換使用 switch 選擇語句:如果原數(shù)據(jù)為 10

49、 進(jìn)制,則通過 integer.tobinarystring(x)將數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制輸出;當(dāng)原數(shù)據(jù)為二進(jìn)制時(shí),則直 接輸出;當(dāng)原數(shù)據(jù)為八進(jìn)制時(shí),則通過 int x=integer.parseint(input,8),將八進(jìn)制 轉(zhuǎn)換為十進(jìn)制,然后再通過 string out=integer.tobinarystring(x)轉(zhuǎn)換為二進(jìn)制; 當(dāng)原數(shù)據(jù)為十六進(jìn)制時(shí)。則通過 int x=integer.parseint(input,16)將數(shù)據(jù)轉(zhuǎn)換為十 進(jìn)制,然后通過 string out=integer.tobinarystring(x)再轉(zhuǎn)換為二進(jìn)制。 其相應(yīng)代碼為: class j implem

50、ents actionlistener/按二進(jìn)制按鈕后的事件處理 public void actionperformed(actionevent e) button2.setenabled(false); button3.setenabled(false); button4.setenabled(false); button7.setenabled(false); button8.setenabled(false); button9.setenabled(false); button13.setenabled(false); button14.setenabled(false); dec.se

51、ttext(只可以按0-1按鈕);/以上是把除0.1之外的按鈕變色, 并且輸出提示信息 switch(dbho) case 10: double input=double.parsedouble(field.gettext(); int x=(int)input;/強(qiáng)制轉(zhuǎn)換為整型 string out=integer.tobinarystring(x); field.settext(+out); 16 dbho=2; break; case 2: double input=double.parsedouble(field.gettext(); int x=(int)input;/強(qiáng)制轉(zhuǎn)換為整型

52、 field.settext(+x); break; case 8: string input=field.gettext(); int x=integer.parseint(input,8); string out=integer.tobinarystring(x); field.settext(+out); dbho=2; break; case 16: string input=field.gettext(); int x=integer.parseint(input,16); string out=integer.tobinarystring(x); field.settext(+ou

53、t); dbho=2; break; 3.4.2 k 類按八進(jìn)制按鈕后的事件處理的功能介紹 選擇將計(jì)算器的模式改為八進(jìn)制后,該類將把數(shù)字 8 鍵、數(shù)字 9 鍵定義為 不能使用,改變了這兩個(gè)數(shù)字鍵的顏色,并給出了提示信息。如果是將文本框 內(nèi)的十進(jìn)制數(shù)改為八進(jìn)制數(shù),通過 java 本身定義的方法,可實(shí)現(xiàn)直接轉(zhuǎn)換,用 戶只需按下“八進(jìn)制”就可以把文本框內(nèi)的數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為整型的八進(jìn)制數(shù)。 同樣的也可以通過類似的方法將二進(jìn)制數(shù)和十六進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)。 其相應(yīng)代碼為: class k implements actionlistener/按八進(jìn)制按鈕后的事件處理 public void actionpe

54、rformed(actionevent e) button3.setenabled(false); button4.setenabled(false); button2.setenabled(true); /button3.setforeground(color.green); 17 /button4.setforeground(color.green); button7.setenabled(true); button8.setenabled(true); button9.setenabled(true); button13.setenabled(true); button14.setena

55、bled(true); dec.settext(只可以按0-7按鈕);/對(duì)于八進(jìn)制,8和9不能用,改變它們 顏色,并給出提示信息 switch(dbho) case 10: double input=double.parsedouble(field.gettext(); int x=(int)input;/強(qiáng)制轉(zhuǎn)換為整型 string out=integer.tooctalstring(x); field.settext(+out); dbho=8; break; case 8: double input=double.parsedouble(field.gettext(); int x=(i

56、nt)input;/強(qiáng)制轉(zhuǎn)換為整型 field.settext(+x); break; case 2: string input=field.gettext(); int x=integer.parseint(input,2); string out=integer.tooctalstring(x); field.settext(+out); dbho=8; break; case 16: string input=field.gettext(); int x=integer.parseint(input,16); string out=integer.tooctalstring(x); fi

57、eld.settext(+out); dbho=8; break; 18 3.4.3 l 類按十六進(jìn)制按鈕后的事件處理的功能介紹 在此模塊,實(shí)現(xiàn)了將一個(gè)數(shù)(可以是二進(jìn)制、八進(jìn)制和十進(jìn)制)轉(zhuǎn)換為二 進(jìn)制的數(shù)的功能。 當(dāng)在十進(jìn)制條件下運(yùn)算后的結(jié)果出現(xiàn)在文本框里后,有人按下“十六進(jìn)制” 鍵后,監(jiān)聽器就會(huì)監(jiān)聽到此事件,然后才會(huì)調(diào)用 l 類內(nèi)的程序。在此類里,首 先會(huì)執(zhí)行將所有的數(shù)字鍵變?yōu)榭捎茫⑻崾拘畔⒃O(shè)成為空白。由于在此計(jì)算 器的程序中有個(gè)記錄數(shù)據(jù)進(jìn)制的變量“dbho” ,因此采用 switch 語句進(jìn)行對(duì) “dbho”進(jìn)行判斷。當(dāng)其為二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制時(shí)會(huì)相應(yīng)執(zhí) 行對(duì)應(yīng)的 swit

58、ch 后的語句。需要注意的是,在每次執(zhí)行轉(zhuǎn)換的時(shí)候,需要先將 從文本框中取到的數(shù)強(qiáng)制轉(zhuǎn)換為整型,然后才能進(jìn)行數(shù)據(jù)的進(jìn)制轉(zhuǎn)換操作。 其相應(yīng)代碼為: class l implements actionlistener/按十六進(jìn)制按鈕后的事件處理 public void actionperformed(actionevent e) button2.setenabled(true); button3.setenabled(true); button4.setenabled(true); button7.setenabled(true); button8.setenabled(true); button

59、9.setenabled(true); button13.setenabled(true); button14.setenabled(true); dec.settext();/以上是把按鍵恢復(fù)原有顏色,提示信息不輸出 switch(dbho) case 10: double input=double.parsedouble(field.gettext(); int x=(int)input;/強(qiáng)制轉(zhuǎn)換為整型 string out=integer.tohexstring(x); field.settext(+out); dbho=16; break; case 16: double input

60、=double.parsedouble(field.gettext(); int x=(int)input;/強(qiáng)制轉(zhuǎn)換為整型 field.settext(+x); break; case 2: string input=field.gettext(); 19 int x=integer.parseint(input,2); string out=integer.tohexstring(x); field.settext(+out); dbho=16; break; case 8: string input=field.gettext(); int x=integer.parseint(inpu

溫馨提示

  • 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)論