課程設(shè)計-簡單計算器_第1頁
課程設(shè)計-簡單計算器_第2頁
課程設(shè)計-簡單計算器_第3頁
課程設(shè)計-簡單計算器_第4頁
課程設(shè)計-簡單計算器_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

簡單計算器目錄第1章課題概述 21.1課題的目的 21.2課題的要求 21.2.1輸入輸出的要求 21.2.2程序?qū)崿F(xiàn)的功能要求 2第2章概要設(shè)計 32.1整個程序的模塊結(jié)構(gòu)及流程 32.2實現(xiàn)可顯示窗口界面 42.3輸入數(shù)據(jù)合法性的檢測及初步處理 4第3章程序功能的實現(xiàn) 53.1.1基本框架的實現(xiàn) 53.1.2添加相應(yīng)的按鈕 63.1.3運算設(shè)計代碼 6第4章調(diào)試及發(fā)現(xiàn)問題的解決 92.1除數(shù)不能為零 92.2當輸入的運算符超過兩個 9第5章程序測試及分析 10第6章總結(jié) 11參考文獻 12

第1章課題概述本次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計的題目是設(shè)計并實現(xiàn)一個簡單的計算器進行數(shù)字的簡單算法。1.1課題的目的(1)理解并掌握Java中的類、對象、繼承、方法等概念,以及Applet的基本框架和事件處理的方法。(2)學(xué)會一些按鈕,標簽,主件,文本框的使用;(3)學(xué)會使用JDK編寫、調(diào)試和運行JavaApplet應(yīng)用程序。(4)利用awt組件編寫一個計算器,實現(xiàn)基本的四則運算。1.2課題的要求1.2.1輸入輸出的要求(1)程序運行后應(yīng)首先輸出一個主菜單,并將所有的數(shù)字及加、減、乘、除等功能羅列在主菜單上供用戶進行選擇,以便進行相應(yīng)的操作。(2)運算對象從鼠標點擊輸入,并且能及時的更新數(shù)據(jù)。(3)用戶每次更新輸入數(shù)據(jù)并選擇運算菜單后,應(yīng)能立即輸出運算的結(jié)果。(4)運行結(jié)果的輸出應(yīng)整齊、清晰,以便用戶能夠驗證程序的正確性。1.2.2程序?qū)崿F(xiàn)的功能要求文本框放置在最NORTH,然后0到9以及+,-,*,/的按鈕放置到一個面板Panel中,添加到整體布局的CENTER,界面設(shè)計完成。布局設(shè)計好后再添加按鈕事件。對于此程序要考慮到點擊加、減、乘、除按鈕時是否有點擊數(shù)字按鈕,如果是第一次點擊數(shù)字按鈕或者是點擊數(shù)字按鈕前點擊了加、減、乘、除按鈕則直接把數(shù)字按鈕的數(shù)值設(shè)置到文本框中,否則則應(yīng)把文本框中的內(nèi)容加上你所點擊按鈕的數(shù)值設(shè)置到文本框中。在進行加、減、乘、除計算時要把點擊加、減、乘、除按鈕之前的數(shù)值保存下來,運算時是這個被保存下來的數(shù)值和文本框中的數(shù)值加、減、乘、除。第2章概要設(shè)計2.1整個程序的模塊結(jié)構(gòu)及流程根據(jù)課題要求,整個程序按分為數(shù)字鍵及加減乘除按鍵和顯示屏。為更好地提供程序的人機交互能力,程序還應(yīng)提供退出程序、清零等功能。開始開始登錄界面計算器界面運算器數(shù)據(jù)運算符號功能模塊輸出結(jié)果退出界面繼續(xù)退出再次登錄2.2實現(xiàn)可顯示窗口界面由于用戶需要在程序一次運行后能夠獲取鍵盤的信息,也就是說,這個運行結(jié)果要始終保留給用戶,所以可以通過一個可視化的窗口把信息呈現(xiàn)給用戶。這個可視化的窗口要求可以顯示給用戶,它應(yīng)該有美觀的外觀,簡潔的圖形元素,相應(yīng)的信息輸出。一般情況下,用戶需要對窗口進行指示,比如調(diào)整窗口大小,使得窗口顯示或者隱藏,這都需要程序員事先考慮到并通過代碼來實現(xiàn)符合用戶需要的這些各項功能,以便用戶實現(xiàn)。2.3輸入數(shù)據(jù)合法性的檢測及初步處理參與運算的兩個數(shù)均可由用戶輸入后更新,為防止用戶輸入非法數(shù)據(jù),在更數(shù)之前,對用戶輸入的字符串進行數(shù)據(jù)合法性檢驗是非常重要的。運用for循環(huán)以及switch語句來處理數(shù)字的合法性及處理異常,提示用戶如何去正確的輸入數(shù)字。

第3章程序功能的實現(xiàn)3.1.1基本框架的實現(xiàn)界面設(shè)計要求用GUI,界面設(shè)計中有用到swing組件的TextField、Button,和JLable用到awt中的BorderLayout和GridLayout布局管理方式,其圖形界面如下:框架構(gòu)成的代碼如下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添加相應(yīng)的按鈕運用兩個for循環(huán)來添加及監(jiān)聽相應(yīng)的按鈕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運算設(shè)計代碼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,"除數(shù)不能為0!"); display.setText(""); return; } result=Double.parseDouble(str[0])/Double.parseDouble(str[1]); break; } Stringst=display.getText()+"="+result; display.setText(st); }

第4章調(diào)試及發(fā)現(xiàn)問題的解決2.1除數(shù)不能為零運算過程中如果輸入的除數(shù)為零則會提示if(Double.parseDouble(str[1])==0){ JOptionPane.showMessageDialog(this,"除數(shù)不能為0!");2.2當輸入的運算符超過兩個該計算器為了使用戶更加方便的使用計算器,設(shè)計了只運算一個運算符,當出現(xiàn)兩個時顯示if(text.indexOf(s[i])!=text.lastIndexOf(s[i])){ JOptionPane.showMessageDialog(this,"輸入格式錯誤!"); display.setText(""); return; }第5章程序測試及分析運行程序,結(jié)果如圖5-1。

第6章總結(jié)經(jīng)過努力的學(xué)習及零碎時間,終于是完成了簡單計算器的課程設(shè)計實驗,在這過程中感到了Java的樂趣以及做出一樣?xùn)|西的自豪感,我相信我會喜歡上編程,總結(jié)下來有一下幾點:1、遇到困難時應(yīng)該如何去做。當遇到困難時我們不應(yīng)該退縮,我們要勇往直前,到圖書館里去搜索書籍,或到網(wǎng)上去搜一些資料及視屏相信你會從中收獲很多,實在不行的話我們還可以找老師,虛心的向他們請教問題。2、培養(yǎng)自學(xué)的能力。大學(xué)培養(yǎng)的優(yōu)秀學(xué)生不是只從老師那里學(xué)到的知識,而要培養(yǎng)的是有自學(xué)的能力大學(xué)生,只有擁有自學(xué)能力才能夠在社會上占有一席地位,才能更快的成長。 3,、養(yǎng)成良好的學(xué)習態(tài)度和學(xué)習習慣,培養(yǎng)正確的學(xué)習方法。 完成任何一件事情,態(tài)度都是重要的,態(tài)度決定工作完成的好壞。編寫程序需要極大的耐心,對于初學(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論