




已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
湖湖 南南 農(nóng)農(nóng) 業(yè)業(yè) 大大 學(xué)學(xué) java 課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)報(bào)告 計(jì)算器軟件設(shè)計(jì)計(jì)算器軟件設(shè)計(jì) 學(xué)生姓名:學(xué)生姓名: 學(xué)學(xué) 號(hào):號(hào): 年級(jí)專業(yè):年級(jí)專業(yè): 指導(dǎo)老師:指導(dǎo)老師: 學(xué)學(xué) 院:院: 1 目目 錄錄 1. 前言前言2 2概要設(shè)計(jì)概要設(shè)計(jì)3 2.1 開發(fā)環(huán)境開發(fā)環(huán)境3 2.2 計(jì)算器功能計(jì)算器功能3 2.3 界面設(shè)計(jì)界面設(shè)計(jì)3 2.4 類類 uml 圖圖4 3. 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)4 3.1 使用的使用的 java 類的說明類的說明4 3.2 類的主要方法類的主要方法5 3.2.1 處理按了運(yùn)算符后的計(jì)算處理按了運(yùn)算符后的計(jì)算5 3.2.2 處理輸入字符處理輸入字符6 3.2.3 進(jìn)制的轉(zhuǎn)換進(jìn)制的轉(zhuǎn)換6 3.2.4 設(shè)計(jì)總體認(rèn)識(shí)設(shè)計(jì)總體認(rèn)識(shí)7 3.2.5 程序流程圖程序流程圖8 4. 運(yùn)行結(jié)果運(yùn)行結(jié)果8 5. 測(cè)試分析測(cè)試分析9 5.1 程序運(yùn)行情況程序運(yùn)行情況9 5.2 程序異常處理程序異常處理9 6. 源程序源程序9 參考文獻(xiàn)參考文獻(xiàn)27 致致 謝謝27 2 摘要:摘要:該程序是一個(gè)圖形界面的簡(jiǎn)單的 java 計(jì)算器,具有良好的界面,使 用人員能快捷簡(jiǎn)單地進(jìn)行操作。即時(shí)準(zhǔn)確地獲得需要的計(jì)算的結(jié)果,充分降低 了數(shù)字計(jì)算的難度和節(jié)約了時(shí)間,對(duì)人們的生活有一定的幫助??梢赃M(jìn)行簡(jiǎn)單 的四則運(yùn)算(加、減、乘、除,以及開平方)但僅限于十進(jìn)制下,還可以進(jìn)行 (八進(jìn)制,十進(jìn)制,十六進(jìn)制)之間的相互轉(zhuǎn)換,八進(jìn)制最多可以輸入 19 位數(shù), 十進(jìn)制最多可以輸入 18 位數(shù),十六進(jìn)制最多可以輸入 14 位數(shù),backspace 表示 退格, clear 表示初始化,sqrt 表示開平方,界面為灰白對(duì)稱。 關(guān)鍵字:關(guān)鍵字:java、計(jì)算器類、方法、事件 1 前言前言 隨著科學(xué)技術(shù)的不斷發(fā)展,計(jì)算機(jī)已經(jīng)成為我們工作學(xué)習(xí)和生活中不可缺 少的工具。文本編輯器是個(gè)人計(jì)算機(jī)最司空見慣的應(yīng)用程序了,在學(xué)習(xí)了 java 語言之后,我決定使用 java 語言編寫一個(gè)簡(jiǎn)單的計(jì)算器,可以實(shí)現(xiàn)簡(jiǎn)單的運(yùn) 算功能,滿足日?;镜墓ぷ鲗W(xué)習(xí)和娛樂需要。 java 是由 sun 公司開發(fā)的新一代純面向?qū)ο蟮木W(wǎng)絡(luò)編程語言。其目標(biāo)是建 立一種在任意種機(jī)器、任一種操作系統(tǒng)的網(wǎng)絡(luò)環(huán)境中運(yùn)行的軟件,實(shí)行所謂的 “程序?qū)懸淮?,到處運(yùn)行”的目標(biāo)。正因?yàn)槿绱?,java 已成為當(dāng)今 internet 上最流行、最受歡迎的一種程序開發(fā)語言。 java 開發(fā)小組把 java 按特性分為基本版、移動(dòng)版、企業(yè)版,每個(gè)版本有 一個(gè)軟件開發(fā)包。java 基本版本叫 java 2 標(biāo)準(zhǔn)版(java 2 standard edition,j2se),它包含建立 java 應(yīng)用程序或者是 applet 所需的應(yīng)用程序編程 接口(api) 。java 2 移動(dòng)版(the java 2 mobile edition,j2me)包含創(chuàng)建 無線 java 應(yīng)用程序的 api。還有 java 2 企業(yè)版(the java 2 enterprise,j2ee)是 j2se 的增強(qiáng)版本,包含建立多層架構(gòu)應(yīng)用程序 api。 java 語言是由 c+語言發(fā)展起而來的,是一種徹底的面向?qū)ο蟮某绦蛟O(shè)計(jì) 語言。作為一種純面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它非常適合大型軟件的開發(fā)。 java 語言去掉了 c+語言的一些容易引起錯(cuò)誤的特性。java 語言的特點(diǎn)有:面 向?qū)ο?、跨平臺(tái)、安全性、多線程和圖形功能強(qiáng)。 3 2 概要設(shè)計(jì)概要設(shè)計(jì) 2.1 開發(fā)環(huán)境開發(fā)環(huán)境 開發(fā)平臺(tái):microsoft windows xp professional service pack 2 開發(fā)工具:jbuilder 2007 + jdk 1.6.0_02 2.2 計(jì)算器功能計(jì)算器功能 功能 1:按下數(shù)字鍵在液晶平上會(huì)顯示數(shù)字,這時(shí)計(jì)算器最基本的功能。 功能 2:在任何時(shí)候按下“”鍵,計(jì)算器文本框上的數(shù)字置反號(hào)。 功能 3:第一次按下“運(yùn)算”鍵,再按下數(shù)字鍵,將重新輸入第二個(gè)數(shù)字。再次按下 “運(yùn) 算”鍵,將算出前兩個(gè)數(shù)字運(yùn)算的結(jié)果,然后按下數(shù)字,將又重新輸入新的數(shù)字。 功能 4:輸入數(shù)字后,按下“等于”鍵,將仍輸出原來的數(shù) 輸入運(yùn)算符和第二個(gè)數(shù)字 后再按下“=”鍵,將得到二者運(yùn)算的結(jié)果,然后又重復(fù)功能 3 和功能 4 。 功能 5:按下清除“c”鍵,數(shù)據(jù)被全部清楚。 2.32.3 界面設(shè)計(jì)界面設(shè)計(jì) 圖 2.3 計(jì)算器面板 4 2.4 類類 uml 圖圖 arraystackchar uml 圖如圖 2.3a 所示: arraystackdouble uml 圖如圖 2.3b 所示 圖 2.4a 圖 2.4b 3 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 3.1 計(jì)算器使用的計(jì)算器使用的 java 類的說明類的說明 類名: this_number_too_big 作用: 自定義的異常類,用來處理計(jì)算結(jié)果溢出 繼承的父類: exception 類 實(shí)現(xiàn)的接口: 沒有 class this_number_too_big extends exception /自定義的一個(gè)結(jié)果溢出異常類 5 類名: jsp2003 作用: 主類。 繼承的父類: frame 類 實(shí)現(xiàn)的接口: itemlistener 類,actionlistener 類 class jsp2003 extends frame implements itemlistener,actionlistener public int number=0,length=18; /number 是用來記錄輸入的數(shù)字個(gè)數(shù), /length 是用來設(shè)置在不同進(jìn)制下允許輸入的最多數(shù)字位數(shù),默認(rèn)為十 進(jìn) 制 public char mark=n; /設(shè)置運(yùn)算符號(hào)為沒有即為n,它的值是+-*/ public double data=0; /設(shè)置運(yùn)算數(shù)據(jù)為零 public char ch; /用來臨時(shí)存放所按按鈕的第一個(gè)字符 public boolean refresh=false; /設(shè)置 lab 是否要在輸入數(shù)據(jù)的時(shí)候刷新,初始為否 程序的設(shè)計(jì)參考了 sun java 網(wǎng)站里的大量實(shí)例,比如 layout 的使用、 event 的處理、components 的添加與應(yīng)用等等。其中: public class newcalc extends jframe implements actionlistener 語句實(shí)現(xiàn)了 actionlistener 接口,因此可以調(diào)用 addactionlistener(this) 方法對(duì)按鈕進(jìn)行點(diǎn)擊監(jiān)聽,在下面的 public void actionperformed(actionevent e)方法里面對(duì)各個(gè)點(diǎn)擊事件進(jìn)行處理。 3.2 類的主要方法 3.2.1 處理按了運(yùn)算符后的計(jì)算: public void js() throws this_number_too_big if (mark=n) mark=ch; / data=double.parsedouble(lab.gettext(); refresh=true; else 6 switch (mark) case +: data+=double.parsedouble(lab.gettext(); break; case -: data-=double.parsedouble(lab.gettext(); break; case *: data*=double.parsedouble(lab.gettext(); break; case /: data/=double.parsedouble(lab.gettext(); break; lab.settext(double.tostring(data); mark=ch; refresh=true; number=lab.gettext().length(); / system.out.println(lab.gettext(); if (datadouble.max_value) throw new this_number_too_big(); 3.2.2 處理輸入字符: if(refresh=true) lab.settext(“0“); number=0; refresh=false; if(lab.gettext().charat(0)=0 number+; else if(number= j) ch = lg % j; st = long.tostring(ch) + st; lg = lg / j; st = long.tostring(lg) + st; return st; / end goto10_8() method / 輸入字符 public void enter() if (refresh = true) 24 / 如果已經(jīng)設(shè)置了 運(yùn)算符則在下一次輸入數(shù)據(jù)的時(shí)候要把以前 lab 的 內(nèi)容清除掉 lab.settext(“0“); number = 0; refresh = false; if (lab.gettext().charat(0) = 0 number+; else if (number double.max_value) / 如果 data 超過 double 類型的最大值則拋出自定義的一個(gè)異常 類 throw new this_number_too_big(); / end js() method public void answer() throws this_number_too_big / 指定由 method 拋出異常 if (mark = n) else switch (mark) case +: data += double.parsedouble(lab.gettext(); break; case -: data -= double.parsedouble(lab.gettext(); break; case *: data *= double.parsedouble(lab.gettext(); break; case /: data /= double.parsedouble(lab.gettext(); break; lab.settext(double.tostring(data); mark = n; if (data double.max_value) / 如果 data 超過 double 類型的最大 值則拋出自定義的一個(gè)異常類 throw new this_number_too_big(); 26 refresh = false; number = lab.gettext().length(); / end answer() method string display=“; private void deposit(char code) switch (code) case c: display=“; break;/ 初始化 case +: display=display+code; break; case -: display=display+code; break; case *: display=display+code; break; case /: display=display+code; break; case 1: display=display+code; break; case 2: display=display+code; break; case 3: display=display+code; break; case 4: display=display+code; break; case 5: display=display+code; break; case 6: display=display+code; break; case 7: display=display+code; break; case 8: 27 display=display+code; break; case 9: display=display+code; break; case a: display=display+code; break; case b: display=display+code; break; case c: display=display+code; break; case d: display=display+code; break; case e: display=display+code; break; case f: display=display+code; break; lab1.settext(display); / end class hejiang 參考文獻(xiàn) 林良信 java jdk 6 學(xué)習(xí)筆記 劉浦迎 謝春 java 程序設(shè)計(jì)實(shí)用教程 科學(xué)出版社 張白一 崔尚林 面向?qū)ο蟪绦蛟O(shè)計(jì)java 西安電子科技大學(xué)出版 社 潘浩 李芙玲 java 程序設(shè)計(jì) 清華大學(xué)出版社 致致 謝謝 經(jīng)過一個(gè)學(xué)期的 java 學(xué)習(xí),對(duì) java 編程有了一定的認(rèn)識(shí),在做這個(gè)課 程設(shè)計(jì)的時(shí)候,剛開始感覺自己無從下手,不知道該怎么開始,很茫然。最終 利用網(wǎng)絡(luò)資源和查閱圖書館的書籍,在傅老師和同學(xué)的指導(dǎo)和討論下,經(jīng)過一 段時(shí)間終于完成了這個(gè)設(shè)計(jì)。當(dāng)程序運(yùn)行結(jié)束看到彈出的計(jì)算器的界面時(shí),感 到很欣慰,雖然只是一個(gè)小小的東西,但卻是自己起步的成就,從中學(xué)到了很 多書本知識(shí)不能體現(xiàn)的東西,對(duì) java 的學(xué)習(xí)有了一定的興趣。也通過這次的程 序設(shè)計(jì)感覺到自己平時(shí)對(duì)于編程實(shí)際操作的貧乏,沒有把書本上的知識(shí)真正的掌握牢固。 28 ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5luizi3xh3bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf8wfug9l2g9277g2rtipa1ypczeuqxpkbhtvdcooqozxuz3vjrzmocijym62zchmeootyes8ebmm932tbz2yo09rtszeys8zrd2yktj8l6jeazvajnfbtrylvsm6ofbftoxvrffn7owiygjlamkunxjybz5rrb7r4vsur9zpfzfmfsjhcfca37lnw2vvlrkn7r8psz1bn6oric5hu5z6hcxayqynpog8duybawqsl20csg06dh2sm8hltgpkicskrgopdpuhbj1lmpk7lydvc6nnmwl3fwhzftfvyaary7lhssxj10v3ph3y19bxyr77ib7cpzsu2tijqe3hkqkkau9kskcphkxuikvvyjzpg2yijrkqfbggovyqkuxnwi9omnjtt6qilzxtyrf7d20fbmabcfiixrqkusvnxbppfuxyq1fjskfsubkgs2duvqc9sz4jkbgn4qqv66pyoarjurnfj3txyfclzieeptwfjthpheipdfnqnr2hjqkv2dzwtmpdjqkbcxmovdsjq ctjagjmdlskpgad2s0h0vmzgaht36gyuez7umank1ndreubeqdgrx0venqgnsyib2ilq3siqrnl4m56t7z8y8da5k0kupn5nzg4jvjdtffhyt82aogqkxo4vblmleiy2p7hthbho07rcfttxodydppdtqso7wxd0j6fkklgm4wodzplhtrr2xgqn13hqy59zu1gegdyqnihntavsieuefqcyfucjwd3vk5i7ykmhundmiz ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5luizi3xh3bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年助理廣告師考試考前準(zhǔn)備試題及答案
- 2024年紡織品檢驗(yàn)員考試技巧與策略試題及答案
- 生理病理考試題及答案
- 低血糖的相關(guān)試題及答案
- 市場(chǎng)調(diào)研對(duì)廣告設(shè)計(jì)的重要性試題及答案
- 2024廣告設(shè)計(jì)師考試創(chuàng)意驅(qū)動(dòng)分析試題及答案
- 2024年紡織工程師考試的重要記錄與試題及答案
- 2024年商業(yè)美術(shù)設(shè)計(jì)師能力測(cè)評(píng)試題及答案
- 2024年考生必知的紡織品設(shè)計(jì)試題及答案
- 2024年紡織品設(shè)計(jì)師證書考試技巧試題及答案
- 【基于4P理論的得物APP網(wǎng)絡(luò)營(yíng)銷策略優(yōu)化探究14000字(論文)】
- 質(zhì)量環(huán)境職業(yè)健康安全管理體系三合一整合全套體系文件(管理手冊(cè)+程序文件)
- 中國(guó)人民財(cái)產(chǎn)保險(xiǎn)股份有限公司招聘筆試真題2022
- (高清版)JTGT 3360-01-2018 公路橋梁抗風(fēng)設(shè)計(jì)規(guī)范
- 走進(jìn)民航智慧樹知到期末考試答案章節(jié)答案2024年中國(guó)民航大學(xué)
- 湖北省石首楚源“源網(wǎng)荷儲(chǔ)”一體化項(xiàng)目可研報(bào)告
- 《社區(qū)康復(fù)》課件-第三章 社區(qū)康復(fù)的實(shí)施
- 2021深圳中考數(shù)學(xué)真題及答案
- 畜牧產(chǎn)業(yè)知識(shí)講座
- 云計(jì)算與物聯(lián)網(wǎng)
- 江蘇省2022年高考數(shù)學(xué)考試真題與答案解析
評(píng)論
0/150
提交評(píng)論