java計(jì)算器實(shí)驗(yàn)報告_第1頁
java計(jì)算器實(shí)驗(yàn)報告_第2頁
java計(jì)算器實(shí)驗(yàn)報告_第3頁
java計(jì)算器實(shí)驗(yàn)報告_第4頁
java計(jì)算器實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

**職業(yè)技術(shù)學(xué)院信息工程系2.z.---.可修編.課程設(shè)計(jì)論文設(shè)計(jì)題目:java計(jì)算器學(xué)生:指導(dǎo)教師:專業(yè)名稱:所在院系:-.z.摘要在當(dāng)今這個網(wǎng)絡(luò)的時代,java語言在網(wǎng)絡(luò)編程方面的優(yōu)勢使得網(wǎng)絡(luò)編程有了更好的選擇。Java語言最大的特點(diǎn)是具有跨平臺性,使其不受平臺不同的影響,得到了廣泛的應(yīng)用。該程序是一個圖形界面的java計(jì)算器,其界面主要采用了swing包,程序?qū)崿F(xiàn)了:(1)實(shí)現(xiàn)簡單加、減、乘、除的運(yùn)算。(2)實(shí)現(xiàn)除了加、減、乘、除按鈕外其他按鈕功能。(3)給軟件添加一個編輯、查看、幫助的主菜單。(4)在數(shù)據(jù)輸入方面,提高程序代碼的健壯性,增強(qiáng)其對非法輸入數(shù)據(jù)的識別能力。(5)科學(xué)型計(jì)算器與標(biāo)準(zhǔn)計(jì)算器之間的菜單切換。Java的早期版本以來,抽象窗口工具包為用戶界面組件提供了平臺獨(dú)立的API。在AWT中,每個組件都由一個原生的等同組件生成和控制,這個原生組件是由當(dāng)前的圖形窗口系統(tǒng)決定的。與此相對,Swing組件經(jīng)常被描述為輕量級的,因?yàn)樗鼈儾恍枰僮飨到y(tǒng)本身所帶窗口工具包的原生資源來生成。目錄第1章概要設(shè)計(jì) 11.1查找資料 11.2選題 11.3標(biāo)準(zhǔn)型計(jì)算器界面設(shè)計(jì)11.4本章小節(jié) 3第2章程序整體設(shè)計(jì)說明 42.1程序中所用到的變量 42.2程序部分源代碼及注釋 42.3本章小節(jié) 15第3章程序運(yùn)行效果 163.1程序運(yùn)行主界面 163.2程序中各按鈕運(yùn)行界面 163.3本章小節(jié) 20第4章設(shè)計(jì)中遇到的重點(diǎn)及難點(diǎn) 214.1設(shè)計(jì)中遇到的重點(diǎn) 214.2設(shè)計(jì)中的遇到的難點(diǎn) 214.3本章小節(jié) 23第5章本次設(shè)計(jì)中存在不足與改良方案 245.1本次設(shè)計(jì)中存在的不足 245.2本次設(shè)計(jì)的改良方案 245.3本章小節(jié)24結(jié)論 25參考文獻(xiàn) 26致 27指導(dǎo)教師評語 28答辯委員會評語 29-.z.第1章概要設(shè)計(jì)1.1查找資料21世紀(jì),隨著社會經(jīng)濟(jì)的迅速發(fā)展和科學(xué)技術(shù)的全面進(jìn)步,人類社會已進(jìn)入信息和網(wǎng)絡(luò)時代。計(jì)算機(jī)正以其前所未有的驚人速度向前發(fā)展,新的研究成果、新的實(shí)用軟件不斷涌現(xiàn)。計(jì)算機(jī)應(yīng)用也普及到各行各業(yè)、深入到人類各種社會活動和生產(chǎn)中。為了便于對大量信息的處理,運(yùn)用計(jì)算機(jī)軟件實(shí)現(xiàn)自動管理成為了必然的趨勢。其實(shí),“計(jì)算器”早已有了一個很長的歷史,人們從很早就已經(jīng)開始進(jìn)行科學(xué)計(jì)算了,在人類不斷探索不斷進(jìn)步的過程中計(jì)算器的用途越來越廣,計(jì)算結(jié)果越來越精確,只有精確的結(jié)果才能使社會更加進(jìn)步,使人類更能準(zhǔn)確的掌握數(shù)據(jù)所反應(yīng)的社會現(xiàn)象,并根據(jù)準(zhǔn)確的數(shù)據(jù)反應(yīng)進(jìn)一步研究進(jìn)步,所有計(jì)算已經(jīng)成為人們生活學(xué)習(xí)的一個重要工具,對人類來說必不可少。1.2選題Java程序編輯器是:圖形界面、線程、流與文件等技術(shù)的綜合應(yīng)用。圖形界面的實(shí)現(xiàn):考慮到簡單、實(shí)用、高效等特點(diǎn),就選擇了Swing來完成實(shí)現(xiàn),在選擇組件上,文本編輯區(qū)就選用了jTe*tField作為主要輸入輸出部件、數(shù)字則是選用了Swingponents的utton按鈕、簡易菜單主要是選用了SwingMenus里面的JMenu控件、菜單所包含的選項(xiàng)是選用SwingMenus的JMenuItem和jRadioButtonMenuItem兩個控件。1.3標(biāo)準(zhǔn)型計(jì)算器界面設(shè)計(jì)JAVA文件的建立(1)建立一個名稱為“proj_jsq”Java工程,在該工程中添加一個可視化的Java類。類所在的package文件包名稱為:pack_jsq;類名:JFra_jsq;類中包含一個main函數(shù)()。(2)界面的設(shè)計(jì):圖1.1標(biāo)準(zhǔn)型計(jì)算器界面圖1.2數(shù)字按鈕字體顏色設(shè)置圖1.3功能按鈕字體顏色設(shè)置(3)保持代碼簡潔復(fù)雜代碼寫后不易理解,在修改和重寫上難度比較大,使工作更加復(fù)雜,所以編寫代碼時應(yīng)保持代碼的簡潔易懂。(4)功能實(shí)現(xiàn)在整個設(shè)計(jì)中要保持完整性,能夠?qū)崿F(xiàn)計(jì)算器中最基本的功能,如加、減、乘、除等。明確任務(wù)用java編寫一個簡單的計(jì)算器,使其能夠?qū)崿F(xiàn)最基本的功能,如簡單的加、減、乘、除;平方根,倒數(shù),余數(shù),三角函數(shù),多數(shù)連續(xù)運(yùn)算,科學(xué)計(jì)數(shù)法等功能。1.4本章小結(jié)通過第一章我們可以了解到這次java課程設(shè)計(jì)的一個總的概況。掌握了java程序編輯器、圖形界面以及文件操作的實(shí)現(xiàn)。這次程序設(shè)計(jì)在設(shè)計(jì)類的時候考慮到了簡單明了。我們設(shè)計(jì)的優(yōu)點(diǎn)是:條理清晰,容易理解,容易修改。第2章程序整體設(shè)計(jì)說明2.1程序中所用到的變量(1)控件變量:JMenu//定義菜單JMenuItem//菜單中項(xiàng)的實(shí)現(xiàn)JMenuBar//菜單欄的實(shí)現(xiàn)。將JMenu對象添加到菜單欄以構(gòu)造菜單。JRadioButtonMenuItem//選中一個的時候,禁用另外一個取消選中的時候,釋放禁用的那一個JTe*tField//JTe*tField是一個顯示用戶輸入輸出的文本區(qū)域。JPanel//JPanel作為一個容器,可以包容一些組件,然后將這個JPanel對象作為一個組件添加到另一個容器(稱作父容器)中。JToggleButton//用于記錄存中是否存在用戶保存的數(shù)據(jù)信息。utton//是用戶進(jìn)行計(jì)算時主要的使用工具,一般為其添加actionPerformed事件。(2)其它變量privatedoubledata_One;//用來存儲運(yùn)算的數(shù)據(jù)privatedoubledata_Two;//用來存儲運(yùn)算的數(shù)據(jù)privatecharOperator='A';//存放運(yùn)算符privatebooleanpointIsTyped=false;//判斷輸入的數(shù)據(jù)是否是小數(shù)privateintmemoryi;//存儲存中的整數(shù)數(shù)據(jù)privatedoublememoryd;//存儲存中的小數(shù)數(shù)據(jù)2.2程序部分源代碼及注釋窗體中的菜單欄圖解:程序框架圖為應(yīng)用程序提供一個圖形化的界面本次設(shè)計(jì)運(yùn)行出的程序框架圖如圖2-1所示編輯查看編輯查看幫助復(fù)制粘貼數(shù)字分組科學(xué)型標(biāo)準(zhǔn)型關(guān)于計(jì)算器幫助主題(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)代碼如下:①新建一個VisualClass類文件(名為JDia_About):圖2-2關(guān)于計(jì)算器的介紹②為關(guān)于計(jì)算器菜單添加actionperformed事件:程序中各個按鈕的功能實(shí)現(xiàn):(1)計(jì)算器中數(shù)字(0~9)按鈕所實(shí)現(xiàn)的功能代碼如下:(2)點(diǎn)按鈕的代碼如下:①在文件的開頭定義一個布爾型的變量:②在點(diǎn)按鈕的actionPerformed事件中添加如下代碼:(3)正負(fù)號按鈕功能的實(shí)現(xiàn)代碼如下:(4)計(jì)算器中四則運(yùn)算符(+、-、*、/)實(shí)現(xiàn)的功能代碼如下:(5)按鈕實(shí)現(xiàn)的功能代碼如下:(6)按鈕實(shí)現(xiàn)的功能代碼如下:(7)按鈕實(shí)現(xiàn)的功能:按百分比的形式顯示乘積結(jié)果。輸入一個數(shù),單擊“*”,輸入第二個數(shù),然后單擊“%”。例如,50*25%將顯示為12.5。也可執(zhí)行帶百分?jǐn)?shù)的運(yùn)算。輸入一個數(shù),單擊運(yùn)算符(“+”、“-”、“*”或“/”),輸入第二個數(shù),單擊“%”,然后單擊“=”。例如,50+25%(指的是50的25%)=62.5。(8)按鈕實(shí)現(xiàn)的功能代碼如下:①在文件初始位置定義一個變量:②在四個運(yùn)算符號代碼添加:③等于號的代碼如下:(9)為JTe*tField控件添加鍵盤輸入(keyTyped)事件:其中包括0~9十個數(shù)字,Backspace和Ese等按鈕的實(shí)現(xiàn)功能代碼:(10)存數(shù)據(jù)處理的功能代碼:①清除存數(shù)據(jù):②讀取存數(shù)據(jù):③保存數(shù)據(jù)到存中:④使計(jì)算結(jié)果與存中的數(shù)據(jù)相加:2.2.3科學(xué)型計(jì)算器中部分按鈕功能的實(shí)現(xiàn):(1)求數(shù)字階乘按鈕的代碼如下:(2)求數(shù)字對數(shù)按鈕的代碼如下:①log函數(shù)的代碼如下:②ln函數(shù)的代碼如下:(3)求數(shù)字的三角函數(shù)(sin、cos、tan)按鈕的代碼如下:以sin函數(shù)為例代碼如下:(cos和tan同理)DecimalFormatdf=newDecimalFormat("0.0"); doublea; doubleb; if(bj==1){ b=Double.parseDouble(jTe*tField1.getTe*t()); if((b*180/Math.PI)%180==0){ a=0; str="0."; jTe*tField1.setTe*t(str); } elseif(b*180/Math.PI==30){ a=Math.sin(b); str=df.format(a); jTe*tField1.setTe*t(str); } else{ a=Math.sin(b); str=Double.toString(a); jTe*tField1.setTe*t(str); str=""; pointIsTyped=false; } } elseif(bj==0){ if(Double.parseDouble(jTe*tField1.getTe*t())%180==0){ a=0; str="0."; jTe*tField1.setTe*t(str); } elseif(Double.parseDouble(jTe*tField1.getTe*t())==30){ a=Math.sin((Double.parseDouble(jTe*tField1.getTe*t()))*Math.PI/180); str=df.format(a); jTe*tField1.setTe*t(str); } else{ a=Math.sin((Double.parseDouble(jTe*tField1.getTe*t()))*Math.PI/180); str=Double.toString(a); jTe*tField1.setTe*t(str); str=""; pointIsTyped=false; } }(4)求數(shù)字的平方按鈕的代碼如下:(5)Int按鈕功能的代碼如下:(6)PI按鈕功能的代碼如下:2.3本章小節(jié)本章主要講述的是計(jì)算器設(shè)計(jì)的整個過程,其中包括設(shè)計(jì)計(jì)算器界面主要使用到的控件和各按鈕功能的實(shí)現(xiàn)代碼,以及整個程序中所使用到的變量,雖然本章表述的設(shè)計(jì)過程比較詳細(xì),但是仍有不足之處,部分變量值的變化沒有包含在,需要用戶根據(jù)自己的需要進(jìn)行調(diào)整,在此就不做詳細(xì)的說明了。第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)圖3-29/4運(yùn)算圖圖3-39/0運(yùn)算圖(2)開平方根運(yùn)算:圖3-4開平方運(yùn)算圖(3)百分號運(yùn)算:圖3-5百分號運(yùn)算圖(4)求倒數(shù)據(jù)運(yùn)算:①有效值的倒數(shù)據(jù)運(yùn)行效果:圖3-6倒數(shù)運(yùn)算圖②0求倒數(shù)運(yùn)算:圖3-70求倒數(shù)運(yùn)算圖(5)求負(fù)數(shù)的平方根:圖3-8負(fù)數(shù)求平方根3.3本章小結(jié)本章主要介紹了用java創(chuàng)建計(jì)算器的運(yùn)行后的效果圖。運(yùn)行java計(jì)算器以后出現(xiàn)的那個框架圖就是我們所說的java圖形用戶界面(GUI),它是程序與用戶進(jìn)行交流的圖像窗口,為應(yīng)用程序提供一個圖形化的界面,程序通過GUI與用戶交互,GUI通過事件機(jī)制響應(yīng)用戶和程序的交互。如當(dāng)用戶單擊*個按鈕時就會產(chǎn)生動作事件,要處理產(chǎn)生的事件,需要在特定的方法中編寫處理事件的程序。這樣,當(dāng)產(chǎn)生*種事件時就會調(diào)用處理這種事件的方法,從而實(shí)現(xiàn)用戶與程序的交互。另外GUI能使一個應(yīng)用程序具有與眾不同的“外觀”與“感覺”。有了GUI,用戶就不用花很多時間去記憶各個鍵盤序列的功能,從而把更多的時間投入到有效地使用應(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)算時,不能準(zhǔn)備的進(jìn)行計(jì)算,后面輸入的數(shù)值會覆蓋先前輸入的數(shù)據(jù),造成數(shù)據(jù)丟失。主要的解決步驟分為以下幾點(diǎn):①在文件開頭部分定義一個標(biāo)志性布爾型變量sign,并賦初值為false;②在加號、減號、乘號、除號的代碼里添加if判斷語句,如果sign值為false,就另Operator的值為相應(yīng)的運(yùn)算符,并改變sign的值為true;③如果sign的值為true,則執(zhí)行與等號代碼相同的switch…case…選擇分支語句;④最后在四個運(yùn)算符按鈕代碼的switch語句的最后分別添加一句、、、。(2)java計(jì)算器中還用到了將數(shù)據(jù)存入存的方法。主要的實(shí)現(xiàn)步驟如下:首先在類文件的開頭部分定義兩個存變量:②理解與存數(shù)據(jù)有關(guān)的四個按鈕的含義:MC—清除存數(shù)據(jù);MR—讀取存數(shù)據(jù);MS—將數(shù)據(jù)保存到存中;M+—使計(jì)算結(jié)果與存數(shù)據(jù)相加;③最后根據(jù)每個按鈕的含義編寫相應(yīng)代碼就輕而易舉了。4.2設(shè)計(jì)中遇到的難點(diǎn)在本次的java計(jì)算器的設(shè)計(jì)實(shí)現(xiàn)過程中,遇到很多難點(diǎn),主要的難點(diǎn)如下:(1)計(jì)算結(jié)果的精確度問題對于計(jì)算精確度問題的解決步驟如下:①在類文件開頭引入一個限定格式的語句:DecimalFormatdf=newDecimalFormat("0.0**************");②在每個輸出結(jié)果的地方都引用這個格式:str=df.format(data_One);jTe*tField1.setTe*t(str);(2)實(shí)現(xiàn)鍵盤輸入①0~9十個數(shù)字按鈕的鍵盤輸入:②Backspace按鈕的鍵盤輸入:③Esc按鈕的功能如下:4.3本章小結(jié)通過這一章我們了解到了在JAVA中如何更好的運(yùn)用變量,同時我們也學(xué)會了對混合運(yùn)算的實(shí)現(xiàn),使我們的計(jì)算器能夠完成更加復(fù)雜的運(yùn)算,另外本章引入了限定數(shù)字輸出格式的語句,使運(yùn)算結(jié)果更加精確簡單,還介紹了如何實(shí)現(xiàn)鍵盤輸入數(shù)據(jù),使計(jì)算器不僅能夠使用按鈕進(jìn)入計(jì)算,同時也可以用鍵盤來運(yùn)算,使用起來更加方便快捷,使用戶使用起來更加簡便。對于難點(diǎn)的解決,也讓我們學(xué)到了更多的知道,完善了自己對JAVA課程更加深一步的認(rèn)識。第5章本次設(shè)計(jì)存在不足與改良方案5.1本次設(shè)計(jì)中存在的不足在本次設(shè)計(jì)中主要有以下幾個方面是不完善的。(1)數(shù)字分組上存在不足:編寫數(shù)字分組菜單的代碼時,只實(shí)現(xiàn)了表面的現(xiàn)象,只能在輸入數(shù)據(jù)以后再選擇數(shù)字分組菜單才能實(shí)現(xiàn)數(shù)據(jù)的分組格式,而且格式不能保持不變,如果想要每個數(shù)字都以分組的形式顯示,只能每個數(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)更加多的運(yùn)算,基本達(dá)到了科學(xué)計(jì)算器的標(biāo)準(zhǔn)。③科學(xué)計(jì)算器添加上數(shù)字分組、科學(xué)計(jì)數(shù)法和三角函數(shù)功能,使程序更加完善。5.3本章小結(jié)通過對本程序的改良,這個程序?qū)油晟?,問題都是我們自己發(fā)現(xiàn)的,只要我們多做,就會發(fā)現(xiàn)問題,只有發(fā)現(xiàn)問題還會去想怎樣去解決問題。這樣系統(tǒng)就會不斷的改善,不斷的提高。結(jié)論通過此次課程設(shè)計(jì),將我本學(xué)期所學(xué)的JAVA知識得到鞏固和應(yīng)用,在設(shè)計(jì)的過程中我遇到了很到問題,不過在老師和同學(xué)們的幫助和自己的思考下還是很好的完成了。這此課程設(shè)計(jì)還讓我懂得了寫程序不能閉門造車,要努力拓寬知識面,開闊視野,拓展思維。它還讓我學(xué)會了

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論