版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
摘要在當(dāng)今這個(gè)網(wǎng)絡(luò)的時(shí)代,java語言在網(wǎng)絡(luò)編程方面的優(yōu)勢使得網(wǎng)絡(luò)編程有了更好的選擇。Java語言最大的特點(diǎn)是具有跨平臺(tái)性,使其不受平臺(tái)不同的影響,得到了廣泛的應(yīng)用。該程序是一個(gè)圖形界面的 計(jì)算器,其界面主要采用了swing包,程序?qū)崿F(xiàn)了:(1)實(shí)現(xiàn)簡單加、減、乘、除的運(yùn)算。(2)實(shí)現(xiàn)除了加、減、乘、除按鈕外其他按鈕功能。(3)給軟件添加一個(gè)編輯、查看、幫助的主菜單。(4)在數(shù)據(jù)輸入方面,提高程序代碼的健壯性,增強(qiáng)其對(duì)非法輸入數(shù)別能力。(5)科學(xué)型計(jì)算器與標(biāo)準(zhǔn)計(jì)算器之間的菜單切換。Java的早期版本以來,抽象窗口工具包為用戶界面組件提供了平臺(tái)獨(dú)與此相對(duì),Swing組件經(jīng)常被描述為輕量級(jí)的,因?yàn)樗鼈儾恍枰僮鞅旧硭鶐Т翱诠ぞ甙脑Y源來生成。目錄第1章概要設(shè)計(jì)········································································11.1查找資料···········································································11.2選題·················································································11.4本章小節(jié)···········································································32.1程序中所用到的變量····························································42.3本章小節(jié)·········································································15第3章程序運(yùn)行效果································································163.1程序運(yùn)行主界面································································163.3本章小節(jié)·········································································204.1設(shè)計(jì)中遇到的重點(diǎn)·····························································214.3本章小節(jié)·········································································235.3本章小節(jié)·········································································24結(jié) 論················································································25參考文獻(xiàn)················································································26致 謝················································································27指導(dǎo)教師評(píng)語··········································································28答辯委員會(huì)評(píng)語·······································································29第1章概要設(shè)計(jì)1.121世紀(jì),隨著社會(huì)經(jīng)濟(jì)的迅速發(fā)展和科學(xué)技術(shù)的全面進(jìn)步,人類社代。計(jì)算機(jī)正以其前所未有的驚人速度向前發(fā)展,用軟件不斷涌現(xiàn)。計(jì)算機(jī)應(yīng)用也普及到各行各業(yè)、。為了便于對(duì)大量信息的處理,運(yùn)用計(jì)算機(jī)軟件實(shí)現(xiàn)自動(dòng)管理成為了必然的趨勢。其實(shí),“計(jì)算器”早已有了一個(gè)很長的歷史,人們從很早就已經(jīng)開始進(jìn)行科學(xué)計(jì)算了,在人類不斷探索不斷進(jìn)步的過程中計(jì)算器的用途越來越廣,計(jì)算結(jié)果越來越精確,只有精確的結(jié)果才能使社會(huì)更加進(jìn)步,使人類更能準(zhǔn)確的掌握數(shù)據(jù)所反應(yīng)的社會(huì)現(xiàn)象,并根據(jù)準(zhǔn)確的數(shù)據(jù)反應(yīng)進(jìn)一步研究進(jìn)步,所有計(jì)算已經(jīng)成為人們生活的一個(gè)重要工具,對(duì)人類來說必不可少。1.2Java程序編輯器是:圖形界面、線程、流與文件等技術(shù)的綜合應(yīng)用。圖形界面的實(shí)現(xiàn):考慮到簡單、實(shí)用、高效等特點(diǎn),就選擇了Swing來完成實(shí)現(xiàn),在選擇組件上,文本編輯區(qū)就選用了jTextField作為主要輸入輸出部件、數(shù)字則是選用了SwingComponents內(nèi)的JButton按鈕、簡易菜單主要是選用了SwingMenus里面的JMenu控件、菜單內(nèi)所包含的選項(xiàng)是選用SwingMenus內(nèi)的JMenuItem和jRadioButtonMenuItem兩個(gè)控1.3標(biāo)準(zhǔn)型計(jì)算器界面設(shè)計(jì)1.3.1JAVA文件的建立(1)建立一個(gè)名稱為“proj_jsq”Java工程,在該工程中添加一個(gè)類中包含一個(gè)main函數(shù)((2)界面的設(shè)計(jì):
)。圖1.2數(shù)字按鈕字體顏色設(shè)置圖1.3功能按鈕字體顏色設(shè)置(3)保持代碼簡潔代碼寫后不易理解,在修改和重寫上難度比較大,使工作更加,所以編寫代碼時(shí)應(yīng)保持代碼的簡潔易懂。(4)功能實(shí)現(xiàn)個(gè)設(shè)計(jì)中要保持完整性,能夠?qū)崿F(xiàn)計(jì)算器中最基本的功能,如減、乘、除等。1.3.2明確任務(wù)用java編寫一個(gè)簡單的計(jì)算器,使其能夠?qū)崿F(xiàn)最基本的功能,如簡單、減、乘、除;平方根,倒數(shù),余數(shù),三角函數(shù),多數(shù)連續(xù)運(yùn)算,科數(shù)法等功能。1.4本章小結(jié)通過第一章我們可以了解到這次java課程設(shè)計(jì)的一個(gè)總的概況。掌握了java程序編輯器、圖形界面以及文件操作的實(shí)現(xiàn)。這次程序設(shè)計(jì)在設(shè)計(jì)時(shí)候考慮到了簡單明了。我們?cè)O(shè)計(jì)的優(yōu)點(diǎn)是:條理清晰,容易理解,修改。第2章程序整體設(shè)計(jì)說明2.1程序中所用到的變量(1)控件變量: //定義菜單JMenuItem //菜單欄的實(shí)現(xiàn)。將JMenu對(duì)加到菜單欄以構(gòu)造菜單。JRadioButtonMenuItem
//選中一個(gè)的時(shí)候,禁用另外一消選中的時(shí)候,釋放禁用的那一個(gè)extField
//JTextField是一個(gè)顯示用戶輸出的文本區(qū)域。anel
//JPanel作為一個(gè)容器,可以包容一些組件,然后將這個(gè)JPanel對(duì)象作為一個(gè)組件添加到另一個(gè)容器(稱作父容器)中。oggleButton
//用于記錄內(nèi)存中是否存在用存的數(shù)據(jù)信息。utton
//是用戶進(jìn)行計(jì)算時(shí)主要的使用工具,一般為其添加actionPerformed事件。(2)其它變量privatedoubledata_One; privatedoubledata_Two; //用來存儲(chǔ)運(yùn)算的數(shù)據(jù)privatecharOperator='A'; //存放運(yùn)算符privatebooleanpointIsTyped=false; //判斷輸入的數(shù)據(jù)是否是小數(shù)privateintmemoryi; //存儲(chǔ)內(nèi)存中的整數(shù)數(shù)據(jù)privatedoublememoryd; 2.2程序部分源代碼及注釋2.2.1窗體中的菜單欄圖解:框架圖為應(yīng)用程序提供一個(gè)圖形化的界面本次設(shè)計(jì)運(yùn)行出的程序框架圖如圖2-1所示
圖2-1程序框架圖(1)復(fù)制菜單的功能實(shí)現(xiàn)代碼如下:(2)粘貼菜單的功能實(shí)現(xiàn)代碼如下:(3)科學(xué)型菜單的功能實(shí)現(xiàn)代碼下:(4)數(shù)字分組的功能實(shí)現(xiàn)代碼如下:(5)幫助主題菜單的功能實(shí)現(xiàn)代碼如下:(6)關(guān)于計(jì)算器菜單的功能實(shí)現(xiàn)代碼如下:①新建一個(gè)VisualClass類文件(名為JDia_About):圖2-2關(guān)于計(jì)算器的介紹②為關(guān)于計(jì)算器菜單添加actionperformed事件:2.2.2程序中各個(gè)按鈕的功能實(shí)現(xiàn):(1)計(jì)算器中數(shù)字(0~9)按鈕所實(shí)現(xiàn)的功能代碼如下:(2) 文件的開頭定義一個(gè)布爾型的變量:②在點(diǎn)按鈕的actionPerformed事件中添加如下代碼:(3) (4)計(jì)算器中四則運(yùn)算符(+、-、*、/)實(shí)現(xiàn)的功能代碼如下:(5)實(shí)現(xiàn)的功能代碼如下:(6) 單擊“*”,輸入第二個(gè)數(shù),然后單擊“%”。例如,50*25%將顯示為12.5。輸入第二個(gè)數(shù),單擊“%”,然后單擊“=”。例如,50+25%(指的是50的25%)=62.5。(8) 文件初始位置定義一個(gè)變量:四個(gè)運(yùn)算符號(hào)代碼內(nèi)添加:于號(hào)內(nèi)的代碼如下:(9)為JTextField控件添加鍵盤輸入(keyTyped)事件:其中包括0~9十個(gè)數(shù)字,Backspace和Ese等按鈕的實(shí)現(xiàn)功能代碼:(10)內(nèi)存數(shù)據(jù)處理的功能代碼:① ② ③ 算結(jié)果與內(nèi)存中的數(shù)據(jù)相加:2.2.3科學(xué)型計(jì)算器中部分按鈕功能的實(shí)現(xiàn):(1)求數(shù)字階乘按鈕的代碼如下:(2)求數(shù)字對(duì)數(shù)按鈕的代碼如下:①log函數(shù)的代碼如下:②ln函數(shù)的代碼如下:(3)求數(shù)字的三角函數(shù)(sin、cos、tan)按鈕的代碼如下:以sin函數(shù)為例代碼如下:(cos和tan同理)DecimalFormatdf=newDecimalFormat("0.0");doublea;doubleb;Double.parseDouble(jTextField1.getText());((b*180/Math.PI)%180==0){0;r="0.";extField1.setText(str);elseif(b*180/Math.PI==30){a=Math.sin(b);str=df.format(a);Text(str);se{a=Math.sin(b);str=Double.toString(a);tText(str);r="";ntIsTyped=false;elseif(bj==0){(Double.parseDouble(jTextField1.getText())%180==0){0;r="0.";extField1.setText(str);se(Double.parseDouble(jTextField1.getText())==30){Math.sin((Double.parseDouble(jTextField1.getText()))*Math./180);r=df.format(a);extField1.setText(str);se{Math.sin((Double.parseDouble(jTextField1.getText()))*Math./180);r=Double.toString(a);extField1.setText(str);r="";ntIsTyped=false;(4)求數(shù)字的平方按鈕的代碼如下:(5)Int按鈕功能的代碼如下:(6)PI按鈕功能的代碼如下:2.3本章小節(jié)本章主要講述的是計(jì)算器設(shè)計(jì)的整個(gè)過程,主要使用到的控件和各按鈕功能的實(shí)現(xiàn)代碼,以及整個(gè)程序中所使用到的變量,雖然本章表述的設(shè)計(jì)過程比較詳細(xì),但是仍有不足之處,部分變量值的變化沒有包含在內(nèi),需要用戶根據(jù)自己的需要進(jìn)行調(diào)整,在此就不做的說明了。第3章程序運(yùn)行效果:3.1程序運(yùn)行主要界面:(1)標(biāo)準(zhǔn)型計(jì)算器與科學(xué)型計(jì)算器之間的切換:圖3-1計(jì)算器之間的換切3.2計(jì)算器部分按鈕運(yùn)行主要界面:(1)加減乘除運(yùn)算:(以除法為例:9/4和9/0)(2)開平方根運(yùn)算: (3)百分號(hào)運(yùn)算:圖3-5百分號(hào)運(yùn)算圖(4)求倒數(shù)據(jù)運(yùn)算:效值的倒數(shù)據(jù)運(yùn)行效果:圖3-6倒數(shù)運(yùn)算圖②0求倒數(shù)運(yùn)算: 0求倒數(shù)運(yùn)算圖(5)求負(fù)數(shù)的平方根:圖3-8負(fù)數(shù)求平方根3.3本章主要介紹了用java創(chuàng)建計(jì)算器的運(yùn)行后的效果圖。運(yùn)行
java算器以后出現(xiàn)的那個(gè)框架圖就是我們所說的java圖形用戶界面(GUI),程序與用戶進(jìn)行交流的圖像窗口,為應(yīng)用程序提供一個(gè)圖形化的界面,程序通過GUI與用戶交互,GUI通過事件機(jī)制響應(yīng)用戶和程序的交互。如當(dāng)用戶單擊某個(gè)按鈕時(shí)就會(huì)產(chǎn)生動(dòng)作事件,要處理產(chǎn)生的事件,需特定的方法中編寫處理事件的程序。這樣,當(dāng)產(chǎn)生某種事件時(shí)就會(huì)調(diào)用處理這種事件的方法,從而實(shí)現(xiàn)用戶與程序的交互。另外GUI能使一個(gè)應(yīng)用程序具有與眾不同的“外觀”與“感覺”。有了GUI,用戶就不用花很多時(shí)間去記憶各個(gè)鍵盤序列的功能,應(yīng)用程序本身上。第4章設(shè)計(jì)中遇到的重點(diǎn)及難點(diǎn)4.1設(shè)計(jì)中遇到的重點(diǎn)次設(shè)計(jì)中,遇到的重點(diǎn)有以下兩點(diǎn):(1)Java計(jì)算器在進(jìn)行混合運(yùn)算時(shí),不能準(zhǔn)備的進(jìn)行計(jì)算,后面輸數(shù)值會(huì)覆蓋先前輸入的數(shù)據(jù),造成數(shù)據(jù)丟失。解決步驟分為以下幾點(diǎn):①在文件開頭部分定義一個(gè)標(biāo)志性布爾型變量 sign,并賦初值為lse;號(hào)、減號(hào)、乘號(hào)、除號(hào)的代碼里添加
if判斷語句,如果sign值為false,就另Operator的值為相應(yīng)的運(yùn)算符,并改變sign的值為true;③如果sign的值為true,則執(zhí)行與等號(hào)代碼相同的switch…case…分支語句;④最后在四個(gè)運(yùn)算符按鈕代碼的switch語句的最后分別添加一句、 、 、 (2)java計(jì)算器中還用到了將數(shù)據(jù)存入內(nèi)存的方法。實(shí)現(xiàn)步驟如下:①首先在類文件的開頭部分定義兩個(gè)內(nèi)存變量:②理解與內(nèi)存數(shù)據(jù)有關(guān)的四個(gè)按鈕的含義:MC—清除內(nèi)存數(shù)據(jù);MR—MSM+后根據(jù)每個(gè)按鈕的含義編寫相應(yīng)代碼就輕而易舉了。4.2設(shè)計(jì)中遇到的難點(diǎn)在本次的java計(jì)算器的設(shè)計(jì)實(shí)現(xiàn)過程中,遇到很多難點(diǎn),主要的難點(diǎn)(1)計(jì)算結(jié)果的精確度問題計(jì)算精確度問題的解決步驟如下:①在類文件開頭引入一個(gè)限定格式的語句: DecimalFormatdf=newcimalFormat("0.0##############");②在每個(gè)輸出結(jié)果的地方都引用這個(gè)格式:str=df.format(data_One);extField1.setText(str);(2)實(shí)現(xiàn)鍵盤輸入①0~9十個(gè)數(shù)字按鈕的鍵盤輸入:②Backspace按鈕的鍵盤輸入:③Esc按鈕的功能如下:4.3通過這一章我們了解到了在JAVA中如何更好的運(yùn)用變量,同時(shí)我們會(huì)了對(duì)混合運(yùn)算的實(shí)現(xiàn),使我們的計(jì)算器能夠完成更加復(fù)雜的運(yùn)算,字輸出格式的語句,使運(yùn)算結(jié)果更加精確簡單,還入數(shù)據(jù),使計(jì)算器不僅能夠使用按鈕進(jìn)入計(jì)算,同更加方便快捷,使用戶使用起來更加簡便。對(duì)于難點(diǎn)的解決,也讓我們學(xué)到了更多的知道,完善了自己對(duì)JAVA更加深一步的認(rèn)識(shí)。第5章本次設(shè)計(jì)存在不足與改良方案5.1本次設(shè)計(jì)中存在的不足次設(shè)計(jì)中主要有以下幾個(gè)方面是不完善的。(1)數(shù)字分組上存在不足:編寫數(shù)字分組菜單內(nèi)的代碼時(shí),只實(shí)現(xiàn)了表面的現(xiàn)象,只能在輸入數(shù)據(jù)以后再選擇數(shù)字分組菜單才能實(shí)現(xiàn)數(shù)據(jù)的分組格式,不變,如果想要每個(gè)數(shù)字都以分組的形式顯示,只能每個(gè)數(shù)據(jù)都重新選擇數(shù)字分組菜單。(2)科學(xué)型計(jì)算器上部分按鈕功能沒有實(shí)現(xiàn):科學(xué)型計(jì)算器比較復(fù)雜,涉及到的數(shù)學(xué)知道比較多,所以部分按鈕的能實(shí)現(xiàn)該有的功能。5.2本次設(shè)計(jì)的改良方案體結(jié)構(gòu)合理,風(fēng)格一致,模塊化結(jié)構(gòu),界面清晰,接口靈活,操作,能實(shí)現(xiàn)比較簡單的混合運(yùn)算。②科學(xué)計(jì)算器實(shí)現(xiàn)的功能多于標(biāo)準(zhǔn)型,比標(biāo)準(zhǔn)型計(jì)算器能夠?qū)崿F(xiàn)更加多算,基本達(dá)到了科學(xué)計(jì)算器的標(biāo)準(zhǔn)。③科學(xué)計(jì)算器添加上數(shù)字分組、科學(xué)計(jì)數(shù)法和三角函數(shù)功能,使程序更善。5.3個(gè)程序?qū)?huì)更加完善,問題都是我們自己發(fā)我們多做,就會(huì)發(fā)現(xiàn)問題,只有發(fā)現(xiàn)問題還會(huì)去想怎樣去解決。這樣系統(tǒng)就會(huì)不斷的改善,不斷的提高。結(jié)論通過此次課程設(shè)計(jì),將我
溫馨提示
- 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年保山c1客運(yùn)資格證考試項(xiàng)目
- 2024年珠海道路旅客運(yùn)輸從業(yè)資格證模擬試題
- 吉首大學(xué)《結(jié)構(gòu)模型設(shè)計(jì)制作》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林藝術(shù)學(xué)院《音樂美學(xué)Ⅰ》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林藝術(shù)學(xué)院《色彩基礎(chǔ)訓(xùn)練II》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024年共同經(jīng)營賓館合作協(xié)議書模板
- 2024年供貨肉類合同范本
- 2024年大宗商辦租賃合同范本
- 2024年大型儲(chǔ)罐合同范本
- 公司與公司勞務(wù)外包協(xié)議書范文范本
- 個(gè)人開車與單位免責(zé)協(xié)議書
- 《護(hù)理文書書寫》課件
- 浙江省金華市蘭溪市2023-2024學(xué)年五年級(jí)上學(xué)期期中數(shù)學(xué)試卷
- 2024新人教版道法一年級(jí)上冊(cè)第三單元:養(yǎng)成良好習(xí)慣大單元整體課時(shí)教學(xué)設(shè)計(jì)
- 醫(yī)療器械質(zhì)量安全風(fēng)險(xiǎn)會(huì)商管理制度
- 浙江開放大學(xué)2024年《法律文化》形考作業(yè)1-4答案
- 抑郁病診斷證明書
- 各科室廉政風(fēng)險(xiǎn)點(diǎn)排查表
- LED路燈說明書
- 成立事業(yè)部合作協(xié)議書
- 安全生產(chǎn)應(yīng)急管理平臺(tái)建設(shè)可行性研究報(bào)告
評(píng)論
0/150
提交評(píng)論