

下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、JAVA程序設計課程設計任務書一、 課程設計的目的1、 培養(yǎng)學生面向對象編程的思想;2、 使學生熟悉JAVA語言的使用;3、 培養(yǎng)學生JAVA編程的思想和方法;4、 使學生掌握JAVA編程調試的基本技能;5、 培養(yǎng)學生分析、解決問題的能力。二、 課程設計內容與要求1、內容一:1簡單計算器題目描述使用 JavaJava 的 GUIGUI 圖形用戶界面編程設計并編寫一個計算器程序,用戶可以通過 鼠標或者鍵盤操作輸入?yún)⒓舆\算的數(shù)值和運算符,要求能進行加、減、乘、除等 混合運算?;疽?實現(xiàn)加、減、乘、除的雙目單類別的基礎運算; 實現(xiàn)提示 GUIGUI 編程 ComponentComponent 的
2、事件響應。參考界面JAVA程序設計課程設計歡迎下載2一、系統(tǒng)中所使用的數(shù)據(jù)對象及說明1、Calculator類屬性屬性名稱類型描述JmbJMe nuBar菜單欄Jm1 jm2 jm3JMe nu菜單JmiJMe nultem菜單項fJFrame實例化對象Pan ell 1JPanel輸入面板Comma ndsPa nelJPanel運算符面板calckeysPa nelJPanel數(shù)字面板showli neJTextField數(shù)據(jù)輸出框backspaceJButt on退格鍵CEJButt on清空CJButt on刪除1/XJButt on取余daoJButt on取倒數(shù)addJButt o
3、n數(shù)字相加jia nJButt on數(shù)字相減che ngJButt on數(shù)字相乘quzhengJButt on數(shù)字相除歡迎下載3dia nJButt on點符號歡迎下載4dengJButt on等于號zeroJButt on一oneJButt on二twoJButt on三threeJButt on四fourJButt on五fiveJButt on六sixJButt on七seve nJButt on八eightJButt on九numlStri ng保存第一個運算數(shù)字operatorStri ng保存運算符號方法方法名稱功能Calculator計算器布局Add添加組件、面板addMouse
4、Liste ner添加鼠標監(jiān)聽事件setJMe nuBar設置菜單二、系統(tǒng)功能結構及相關算法描述1、系統(tǒng)功能結構歡迎下載5系統(tǒng)功能結構圖2、相關算法流程圖(1)加減法流程計算器科學型輯編題標:器題第標計關于計算器幫助主題復歡迎下載6(2)乘除法流程執(zhí)行乘、除法運算得出 S歡迎下載7(3)乘方取余法流程將 S 添加到show 文本框三、系統(tǒng)運行結果(截圖)1、主菜單歡迎下載8圄計算器三編輯舊査看閭幫助凹0BackspaceCEC7Sg/sqrt4&6%123-hx.0+/-*=四、課程設計總結通過此次課程設計,使我更加扎實的掌握了有關JAVA圖形界面 布局等方面的知識,雖然在設計過程中也遇到了很
5、多問題, 但經(jīng)過一 次又一次的思考,一遍又一遍檢查和反復修改終于找到了原因所在, 也暴露了前期我在這方面的知識欠缺。 課程設計是一種實踐活動,不 但可以提升專業(yè)知識和專業(yè)能力,也培養(yǎng)了我們獨立思考,動手操作 的能力,使我對抽象的知識有了具體的認識。 這對于我們的將來也有 很大的幫助。此次課程設計也讓我明白沒有最完善的程序代碼,只有 不斷地改善才能使程序變得更完美,同時也增強了我對JAVA的興趣,相信繼續(xù)保持下去對JAVA的理解一定會更上一層樓。附錄:程序源碼import java.awt.BorderLayout;import java.awt.Color;import java.awt.Gr
6、idLayout;importjava.awt.eve nt.Acti on Eve nt;importjava.awt.eve nt.Acti on Liste ner;歡迎下載9importjavax.swi ng.JButt on;import javax.sw in g.JFrame;importjavax.swi ng.JMe nu;importjavax.swi ng.JMe nuBar;importjavax.swi ng.JMe nultem;importjavax.sw in g.JPa nel;importjavax.sw in g.JSeparator;import ja
7、vax.swi ng.JTextField;JMenuBarjmb ;JMenujm1 , jm2 , jm3 ;JMenultemjmi ;/* 計算器上的鍵的顯示名字*/private finalStr in gKEYS = 7 , 8 , 9 , / , sqrt , 4 , 56,/*計算器上的功能鍵的顯示名字*/private final StringCOMMAND= Backspace , CE , C ;/*計算器上鍵的按鈕*/privateJButtonkeys = new JButton KEYS. length ;/*計算器上的功能鍵的按鈕*/privateJButt on
8、comma nds = new JButt onCOMMAND length ;/*計算器左邊的 M 的按鈕*/* 計算結果文本框 */resultText = new JTextField( 0);/標志用戶按的是否是整個表達式的第一個數(shù)字,或者是運算符后的第一個數(shù)字private boolea n firstDigit= true ;/計算的中間結果。private double resultNum = 0.0;/當前運算的運算符privateStringoperator =;/操作是否合法private boolea n operateValidFlag= true ;/*publicc
9、lass Calculatorexte ndsJFrame impleme ntsActi on Liste ner % , 1,2,3I! I!1/x0 , +/-I! I!+ ;private JTextField歡迎下載10構造函數(shù)*/publicCalculator。super ();JMen uBar jmb=new JMe nuBar();this .setJMe nuBar(jmb);JMenu jm= new JMenu(編輯(E); jmb.add(jm);jmi = new JMenultem(復制(c) Ctrl+c);jm.add( jmi );jmi = new JM
10、enultem(粘貼(p) Ctrl+v);jm.add( jmi );jm2 = new JMenu(查看(v);jmb.add( jm2 );jmi = new JMenultem( 標準型(T); jm2 .add( jmi );jmi = new JMenultem( 科學型(S);jm2 .add( jmi );jm2 .add( new JSeparator();jmi = new JMenultem(數(shù)學分組(I);jm2 .add( jmi );jm3 =new JMenu(幫助(H);jmb.add( jm3 );jmi = new JMenultem( 幫助主題(H);jm
11、3 .add( jmi );jm3 .add( new JSeparator();jmi = new JMenultem( 關于計算器(A); jm3 .add( jmi );/初始化計算器ini t();/設置計算器的背景顏色this .setBackground(Color.LIGHT_GRAY );this .setTitle( 計算器);/在屏幕(500, 300)坐標處顯示計算器this .setLocatio n(500, 300);/不許修改計算器的大小this .setResizable( false );/使計算器中各組件大小合適this .pack();/*初始化計算器歡迎
12、下載11private void in it() /文本框中的內容采用右對齊方式resultText.setHorizontalAlignment(JTextField.RIGHT );/不允許修改結果文本框resultText .setEditable( false );/設置文本框背景顏色為白色resultText .setBackgrou nd(Color.WHITE);/初始化計算器上鍵的按鈕,將鍵放在一個面板內keys i = new JButton(KEYSi);*/JPa nel calckeysPa nel =new JPa nel();/用網(wǎng)格布局器,間隔為 3 個象素4 行
13、,5 列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3 個象素,垂直方向calckeysPa nel.setLayout(for ( int i = 0; i new GridLayout(4, 5, 3, 3);KEYS. length ; i+) 歡迎下載12calckeysPa nel.add(keys i);keys i.setForeground(Color.blue );/運算符鍵用紅色標示,其他鍵用藍色表示keys 3.setForeground(Color.red );keys 8.setForeground(Color.red );keys 13.setForeground(Color.
14、red );keys 18.setForeground(Color.red );keys 19.setForeground(Color.red );/初始化功能鍵,都用紅色標示。將功能鍵放在一個面板內JPa nel comma ndsPa nel =new JPa nel();/用網(wǎng)格布局器,1 行,3 列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為 間隔為 3 個象素3 個象素,垂直方向comma ndsPanel.setLayout(for (int i = 0; i = 0) /用戶按了數(shù)字鍵或者小數(shù)點鍵han dleNumber(label);/ han dlezero(zero); else /
15、用戶按了運算符鍵panel1.add(pantop.setLayout(new BorderLayout();top.add(Cen ter, resultText );/整體布局getC onten tPane().setLayout(getC onten tPa ne().add(getC onten tPa ne().add(new BorderLayout(3, 5);North , top);Cen ter, pan el1);Acti on Liste nerfor(inti = 0; i KEYS. length;i+) keysi.addActi on Liste ner(th
16、is);for(inti = 0; i 0) /退格,將文本最后一個字符去掉text = text.substri ng(0, i - 1);if (text.le ngth() = 0) /如果文本沒有了內容,則初始化計算器的各種值resultText .setText( 0);firstDigit= true ;operator =;else /顯示新的文本resultText .setText(text);/*處理數(shù)字鍵被按下的事件*param key*/private void han dleNumber(Stri ng key) if ( firstDigit ) /輸入的第一個數(shù)字
17、resultText .setText(key); else if (key.equals( . ) & ( resultText.getText().indexOf(:) 0) /輸入的是小數(shù)點,并且之前沒有小數(shù)點,則將小數(shù)點附在結果文本框的后面resultText .setText( resultText .getText() +.); else if (!key.equals(. ) /如果輸入的不是小數(shù)點,則將數(shù)字附在結果文本框的后面resultText .setText( resultText .getText() + key);/以后輸入的肯定不是第一個數(shù)字了歡迎下載15first
18、Digit* 處理 C 鍵被按下的事件*/private voidhan dleC() /初始化計算器的各種值resultText .setText( 0); firstDigit = true ; operator =;處理運算符鍵被按下的事件param keyprivate void han dleOperator(Stri ng key) if ( operator .equals( / ) /除法運算/如果當前結果文本框中的值等于0if (getNumberFromText() = 0.0) /操作不合法operateValidFlag= false ;resultText .setT
19、ext( 除數(shù)不能為零);else resultNum /= getNumberFromText();else if ( operator .equals( 1/x) /倒數(shù)運算if ( resultNum = 0.0) /操作不合法operateValidFlag= false ;resultText .setText( 零沒有倒數(shù));else resultNum = 1 / resultNum ;else if ( operator .equals( + ) /加法運算resultNum += getNumberFromText();else if ( operator .equals(
20、- ) /減法運算resultNum -= getNumberFromText();false*/歡迎下載16else if ( operator .equals( * ) /乘法運算 resultNum *= getNumberFromText();else if ( operator/平方根運算.equals( sqrt ) resultNum = Math.sqrt (resultNum );else if ( operator .equals( % ) /百分號運算,除以 100resultNum = resultNum / 100;else if ( operator .equals( +/-) /正數(shù)負數(shù)運算resultNum = resultNum * (-1);else if ( operator .eq
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年8月18日內蒙古自治區(qū)包頭市事業(yè)單位面試真題及答案解析(上午卷)
- 2025版環(huán)保節(jié)能股權抵押擔保協(xié)議書
- 二零二五版舊房拆除工程設計與咨詢服務協(xié)議
- 二零二五版動物園租賃及科普教育協(xié)議
- 2025湖南供銷集團招聘3人筆試備考試題及答案解析
- 2025貴州匯智達人力資源服務有限公司招聘考試參考題庫附答案解析
- 2025年河北航空管理中等專業(yè)學校公開招聘教師40人考試備考試題及答案解析
- 2025年河北唐山南堡經(jīng)濟開發(fā)區(qū)公開招聘事業(yè)編教師15人筆試模擬試題及答案解析
- 2025貴州織金縣第五中學教師“跨校競聘”工作考試備考題庫及答案解析
- 2025年河北衡水市第七人民醫(yī)院見習人員招聘19名筆試模擬試題及答案解析
- 新機構CK6150數(shù)控車床使用說明書(通用)
- 全國職業(yè)技能競賽焊工理論考試題庫
- 中醫(yī)健康養(yǎng)生知識宣教課件
- 經(jīng)外周靜脈穿刺中心靜脈(PICC)置管
- 北京八中校史館設計大綱(參考使用)
- 鋼材銷售通用版合同(2篇)
- GB 2716-2018食品安全國家標準植物油
- GB 19572-2004低壓二氧化碳滅火系統(tǒng)及部件
- 貿易公司績效考核分配方案(暫行)1
- 勞動保障監(jiān)察執(zhí)法課件
- #20kV設備交接和預防性試驗規(guī)定
評論
0/150
提交評論