




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
簡單計算器目錄第1章課題概述 21.1課題的目的 21.2課題的要求 21.2.1輸入輸出的要求 21.2.2程序實現的功能要求 2第2章概要設計 32.1整個程序的模塊結構及流程 32.2實現可顯示窗口界面 42.3輸入數據合法性的檢測及初步處理 4第3章程序功能的實現 53.1.1基本框架的實現 53.1.2添加相應的按鈕 63.1.3運算設計代碼 6第4章調試及發現問題的解決 92.1除數不能為零 92.2當輸入的運算符超過兩個 9第5章程序測試及分析 10第6章總結 11參考文獻 12
第1章課題概述本次數據結構課程設計的題目是設計并實現一個簡單的計算器進行數字的簡單算法。1.1課題的目的(1)理解并掌握Java中的類、對象、繼承、方法等概念,以及Applet的基本框架和事件處理的方法。(2)學會一些按鈕,標簽,主件,文本框的使用;(3)學會使用JDK編寫、調試和運行JavaApplet應用程序。(4)利用awt組件編寫一個計算器,實現基本的四則運算。1.2課題的要求1.2.1輸入輸出的要求(1)程序運行后應首先輸出一個主菜單,并將所有的數字及加、減、乘、除等功能羅列在主菜單上供用戶進行選擇,以便進行相應的操作。(2)運算對象從鼠標點擊輸入,并且能及時的更新數據。(3)用戶每次更新輸入數據并選擇運算菜單后,應能立即輸出運算的結果。(4)運行結果的輸出應整齊、清晰,以便用戶能夠驗證程序的正確性。1.2.2程序實現的功能要求文本框放置在最NORTH,然后0到9以及+,-,*,/的按鈕放置到一個面板Panel中,添加到整體布局的CENTER,界面設計完成。布局設計好后再添加按鈕事件。對于此程序要考慮到點擊加、減、乘、除按鈕時是否有點擊數字按鈕,如果是第一次點擊數字按鈕或者是點擊數字按鈕前點擊了加、減、乘、除按鈕則直接把數字按鈕的數值設置到文本框中,否則則應把文本框中的內容加上你所點擊按鈕的數值設置到文本框中。在進行加、減、乘、除計算時要把點擊加、減、乘、除按鈕之前的數值保存下來,運算時是這個被保存下來的數值和文本框中的數值加、減、乘、除。第2章概要設計2.1整個程序的模塊結構及流程根據課題要求,整個程序按分為數字鍵及加減乘除按鍵和顯示屏。為更好地提供程序的人機交互能力,程序還應提供退出程序、清零等功能。開始開始登錄界面計算器界面運算器數據運算符號功能模塊輸出結果退出界面繼續退出再次登錄2.2實現可顯示窗口界面由于用戶需要在程序一次運行后能夠獲取鍵盤的信息,也就是說,這個運行結果要始終保留給用戶,所以可以通過一個可視化的窗口把信息呈現給用戶。這個可視化的窗口要求可以顯示給用戶,它應該有美觀的外觀,簡潔的圖形元素,相應的信息輸出。一般情況下,用戶需要對窗口進行指示,比如調整窗口大小,使得窗口顯示或者隱藏,這都需要程序員事先考慮到并通過代碼來實現符合用戶需要的這些各項功能,以便用戶實現。2.3輸入數據合法性的檢測及初步處理參與運算的兩個數均可由用戶輸入后更新,為防止用戶輸入非法數據,在更數之前,對用戶輸入的字符串進行數據合法性檢驗是非常重要的。運用for循環以及switch語句來處理數字的合法性及處理異常,提示用戶如何去正確的輸入數字。
第3章程序功能的實現3.1.1基本框架的實現界面設計要求用GUI,界面設計中有用到swing組件的TextField、Button,和JLable用到awt中的BorderLayout和GridLayout布局管理方式,其圖形界面如下:框架構成的代碼如下privateString[]str={"7","8","9","/","4","5","6","*","1","2","3","-",".","0","=","+"};JButton[]buttons=newJButton[str.length];JButtonreset=newJButton("CE");JTextFielddisplay=newJTextField("");publicJCalculator(){super("Calculator");JPanelpanel1=newJPanel(newGridLayout(4,4,10,10));for(i=0;i<str.length;i++){buttons[i]=newJButton(str[i]);panel1.add(buttons[i]);}JPanelpanel2=newJPanel(newBorderLayout());panel2.add("Center",display);panel2.add("East",reset);getContentPane().add("North",panel2);getContentPane().add("Center",panel1);for(i=0;i<str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this);setSize(300,200);setVisible(true);display.setEditable(false); setResizable(false);}3.1.2添加相應的按鈕運用兩個for循環來添加及監聽相應的按鈕for(i=0;i<str.length;i++){buttons[i]=newJButton(str[i]);panel1.add(buttons[i]);}for(i=0;i<str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this);3.1.3運算設計代碼publicvoidgetValue(){ Stringtext=display.getText(); doubleresult=0; Strings[]={"+","-","*","/"}; Stringtmp=""; for(inti=0;i<s.length;i++){//+-*/ if(text.indexOf(s[i])!=text.lastIndexOf(s[i])){ JOptionPane.showMessageDialog(this,"輸入格式錯誤!"); display.setText(""); return; } } if(text.contains("+")){ tmp="+"; }elseif(text.contains("-")){ tmp="-"; }elseif(text.contains("*")){ tmp="*"; }elseif(text.contains("/")){ tmp="/"; } if(tmp.equals("+")){ tmp=":"; text=text.replace('+',':'); }elseif(tmp.equals("-")){ tmp=""; text=text.replace('-',''); }elseif(tmp.equals("*")){ tmp=","; text=text.replace('*',','); }elseif(tmp.equals("/")){ tmp=";"; text=text.replace('/',';'); } Stringstr[]=text.split(tmp); switch(tmp){ case":": result=Double.parseDouble(str[0])+Double.parseDouble(str[1]); break; case"": result=Double.parseDouble(str[0])-Double.parseDouble(str[1]); break; case",": result=Double.parseDouble(str[0])*Double.parseDouble(str[1]); break; case";": if(Double.parseDouble(str[1])==0){ JOptionPane.showMessageDialog(this,"除數不能為0!"); display.setText(""); return; } result=Double.parseDouble(str[0])/Double.parseDouble(str[1]); break; } Stringst=display.getText()+"="+result; display.setText(st); }
第4章調試及發現問題的解決2.1除數不能為零運算過程中如果輸入的除數為零則會提示if(Double.parseDouble(str[1])==0){ JOptionPane.showMessageDialog(this,"除數不能為0!");2.2當輸入的運算符超過兩個該計算器為了使用戶更加方便的使用計算器,設計了只運算一個運算符,當出現兩個時顯示if(text.indexOf(s[i])!=text.lastIndexOf(s[i])){ JOptionPane.showMessageDialog(this,"輸入格式錯誤!"); display.setText(""); return; }第5章程序測試及分析運行程序,結果如圖5-1。
第6章總結經過努力的學習及零碎時間,終于是完成了簡單計算器的課程設計實驗,在這過程中感到了Java的樂趣以及做出一樣東西的自豪感,我相信我會喜歡上編程,總結下來有一下幾點:1、遇到困難時應該如何去做。當遇到困難時我們不應該退縮,我們要勇往直前,到圖書館里去搜索書籍,或到網上去搜一些資料及視屏相信你會從中收獲很多,實在不行的話我們還可以找老師,虛心的向他們請教問題。2、培養自學的能力。大學培養的優秀學生不是只從老師那里學到的知識,而要培養的是有自學的能力大學生,只有擁有自學能力才能夠在社會上占有一席地位,才能更快的成長。 3,、養成良好的學習態度和學習習慣,培養正確的學習方法。 完成任何一件事情,態度都是重要的,態度決定工作完成的好壞。編寫程序需要極大的耐心,對于初學者來說,一個窗口小程序的完成并非易事,是意見需要花費時間的事。同時也需要細致謹慎,盡量少出差錯,遇見提示的錯誤要立即解決,積
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 低碳新能源企業工會代表選舉合規性咨詢與監督合同
- 外企員工工作簽證擔保及福利保障協議
- 生物實驗動物代謝籠租賃及實驗方案定制協議
- 航空公司飛行員崗位全職聘用與飛行經驗積累合同
- 國際自行車賽事電子計時系統租賃及保養服務協議
- 游艇碼頭泊位租賃及配套設施管理合同
- 影視動畫色彩調整與渲染軟件租賃協議
- 文化創意商業街區租賃與管理承包合同
- 生物制藥行業專用凍干機真空泵油租賃及保養服務合同
- 房地產銷售派遣與客戶關系管理合同
- 2022年四川省巴中市中考英語真題卷(含答案與解析)
- 小學生主題班會《學會感恩與愛同行》
- 維克多高中英語3500詞匯
- 煙臺某公寓電氣設計畢業論文
- 2022全國高考真題化學匯編:專題 烴 鹵代烴
- 腦血管病介入診療并發癥及其處理課件
- 家校共育一年級家長會ppt
- 《微電子學概論》第八章-光電子器件課件
- 化學分析送樣單2
- 化工原理教案:6 吸收
- 【高考真題】2022年新高考浙江語文高考真題試卷(Word版含答案)
評論
0/150
提交評論