Java課程設(shè)計(jì)報(bào)告.doc_第1頁
Java課程設(shè)計(jì)報(bào)告.doc_第2頁
Java課程設(shè)計(jì)報(bào)告.doc_第3頁
Java課程設(shè)計(jì)報(bào)告.doc_第4頁
Java課程設(shè)計(jì)報(bào)告.doc_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

湖湖 南南 農(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é) 號:號: 年級專業(yè):年級專業(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è)計(jì)總體認(rèn)識7 3.2.5 程序流程圖程序流程圖8 4. 運(yùn)行結(jié)果運(yùn)行結(jié)果8 5. 測試分析測試分析9 5.1 程序運(yùn)行情況程序運(yùn)行情況9 5.2 程序異常處理程序異常處理9 6. 源程序源程序9 參考文獻(xiàn)參考文獻(xiàn)27 致致 謝謝27 2 摘要:摘要:該程序是一個(gè)圖形界面的簡單的 java 計(jì)算器,具有良好的界面,使 用人員能快捷簡單地進(jìn)行操作。即時(shí)準(zhǔn)確地獲得需要的計(jì)算的結(jié)果,充分降低 了數(shù)字計(jì)算的難度和節(jié)約了時(shí)間,對人們的生活有一定的幫助??梢赃M(jì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 表示開平方,界面為灰白對稱。 關(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è)簡單的計(jì)算器,可以實(shí)現(xiàn)簡單的運(yùn) 算功能,滿足日常基本的工作學(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 按特性分為基本版、移動版、企業(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 移動版(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ū)ο蟆⒖缙脚_、安全性、多線程和圖形功能強(qiáng)。 3 2 概要設(shè)計(jì)概要設(shè)計(jì) 2.1 開發(fā)環(huán)境開發(fā)環(huán)境 開發(fā)平臺:microsoft windows xp professional service pack 2 開發(fā)工具:jbuilder 2007 + jdk 1.6.0_02 2.2 計(jì)算器功能計(jì)算器功能 功能 1:按下數(shù)字鍵在液晶平上會顯示數(shù)字,這時(shí)計(jì)算器最基本的功能。 功能 2:在任何時(shí)候按下“”鍵,計(jì)算器文本框上的數(shù)字置反號。 功能 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)算符號為沒有即為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) 方法對按鈕進(jìn)行點(diǎn)擊監(jiān)聽,在下面的 public void actionperformed(actionevent e)方法里面對各個(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í),對 java 編程有了一定的認(rèn)識,在做這個(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é)到了很 多書本知識不能體現(xiàn)的東西,對 java 的學(xué)習(xí)有了一定的興趣。也通過這次的程 序設(shè)計(jì)感覺到自己平時(shí)對于編程實(shí)際操作的貧乏,沒有把書本上的知識真正的掌握牢固。 28 ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5luizi3xh3bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf8wfug9l2g9277g2rtipa1ypczeuqxpkbhtvdcooqozxuz3vjrzmocijym62zchmeootyes8ebmm932tbz2yo09rtszeys8zrd2yktj8l6jeazvajnfbtrylvsm6ofbftoxvrffn7owiygjlamkunxjybz5rrb7r4vsur9zpfzfmfsjhcfca37lnw2vvlrkn7r8psz1bn6oric5hu5z6hcxayqynpog8duybawqsl20csg06dh2sm8hltgpkicskrgopdpuhbj1lmpk7lydvc6nnmwl3fwhzftfvyaary7lhssxj10v3ph3y19bxyr77ib7cpzsu2tijqe3hkqkkau9kskcphkxuikvvyjzpg2yijrkqfbggovyqkuxnwi9omnjtt6qilzxtyrf7d20fbmabcfiixrqkusvnxbppfuxyq1fjskfsubkgs2duvqc9sz4jkbgn4qqv66pyoarjurnfj3txyfclzieeptwfjthpheipdfnqnr2hjqkv2dzwtmpdjqkbcxmovdsjq ctjagjmdlskpgad2s0h0vmzgaht36gyuez7umank1ndreubeqdgrx0venqgnsyib2ilq3siqrnl4m56t7z8y8da5k0kupn5nzg4jvjdtffhyt82aogqkxo4vblmleiy2p7hthbho07rcfttxodydppdtqso7wxd0j6fkklgm4wodzplhtrr2xgqn13hqy59zu1gegdyqnihntavsieuefqcyfucjwd3vk5i7ykmhundmiz ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5luizi3xh3bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論