面向對象程序設計課程設計劃書模板new(計算器設計)_第1頁
面向對象程序設計課程設計劃書模板new(計算器設計)_第2頁
面向對象程序設計課程設計劃書模板new(計算器設計)_第3頁
面向對象程序設計課程設計劃書模板new(計算器設計)_第4頁
面向對象程序設計課程設計劃書模板new(計算器設計)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 課程設計(大作業(yè))報告課程名稱:設計題目:計算器設計院 系:信息技術學院班 級:計算機科學與技術(2)班設 計 者:學 號:201011010208指導教師:設計時間:昆明學院昆明學院課程設計(大作業(yè))任務書 課程設計(大作業(yè))報告1、 課程設計介紹 41.1課程設計內容 .41.2課程設計要求 .42、 總體設計 42.1課設題目總體設計、算法描述42.1.1、功能模塊設計42.1.2、界面設計代碼.42.2功能模塊圖、流程圖分析.63、 調試與性能分析 (相關截圖 64、 參考文獻.8附 錄(程序清單).91、課程設計介紹1.1課程設計內容本計算器是由java 語言所編程設計的標準計算器

2、,可以進行十進制下的四則運算(加、減、乘、除)、開根號、百分號、求倒數(shù),還可以實現(xiàn)數(shù)值的符號轉換操作。 ,Backspace 表示退格, CE 表示將當前文本框內數(shù)據(jù)清除,C 表示文本框內數(shù)據(jù)清除。此外還提供了“編輯”、“查看”、“幫助”三個菜單項,使用者可通過使用菜單項實現(xiàn)復制、粘貼功能。界面類似windows 自帶計算器界面。1.2課程設計要求(1)設計一個標準型的計算器應用程序,完成簡單的算法運算。(2)該程序可以通過鼠標一次鍵入?yún)⒓佑嬎愕臄?shù)值,不僅可以參加加減乘除運算,還可以完成開方、百分運算、倒數(shù)運算等這些運算,并且還有小數(shù)點、正負號、退格、清零這些功能。2、總體設計2.1、課設題目

3、總體設計、算法描述2.1.1、功能模塊設計計算器基本功能(1)加法兩個數(shù)據(jù)進行加操作,可以為小數(shù)。(2)減法兩個數(shù)據(jù)進行減操作,可以為負數(shù)相減。(3)乘法兩個數(shù)相乘操作。(4)除法兩個數(shù)相除操作。(5)開平方對任意一個數(shù)進行開方運算,可以是小數(shù)。(6)百分號對任意一個數(shù)進行百分號運算。(7)倒數(shù)對任意一個數(shù)進行倒數(shù)運算。算法分析:事件監(jiān)聽器的事件處理方法void actionPerformed(ActionEvent evt 完成主要的按鈕事件的處理。事件處理分為以下幾種情況:數(shù)字按鈕事件(“0”、“1”、“2”、“3”、. “8”、“9”),運算符按鈕事件(“+”、“-”、“,”“*”、“/

4、”、“%”),正負值按鈕事件(“+/-”),小數(shù)點按鈕事件(“. ”), 等號按鈕事件(“=”), 求倒按鈕事件(“1、x ”),退格按鈕事件(“CE ”),清除按鈕事件(“C ”),2.1.2、 界面設計代碼計算器的界面由一個文本框及27個按鈕組成,具體實現(xiàn)代碼如下所示:JPanel pa1=new JPanel(;pa1.setBackground(new Color(236,231,210;text=new JTextField("0.",31;pa1.add("North",text; /面板添加和按鈕的設置JPanel pa=new JPane

5、l(;JPanel pa2=new JPanel(;JButton bt1=new JButton("Backspace"JButton bt2=new JButton("CE"JButton bt3=new JButton("C"bt1.addActionListener(this;bt2.addActionListener(this;bt3.addActionListener(this;pa2.add(bt1;pa2.add(bt2;pa2.add(bt3; pa.setLayout(new BorderLayout(;pa.ad

6、d(pa2,"North"JPanel p1=new JPanel(;p1.setLayout(new GridLayout(4,1,2,5;JButton bt4=new JButton("MC"JButton bt5=new JButton("MR"JButton bt6=new JButton("MS"JButton bt7=new JButton("M+"p1.add(bt4; p1.add(bt5;p1.add(bt6;p1.add(bt7;pa.add(p1,"West&q

7、uot;JPanel p = new JPanel(;p.setLayout(new GridLayout(4, 5,2,5; String buttons = "7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x",&quo

8、t;0",".","=","+","+/-" JButton btn=new JButtonbuttons.length;for (int i = 0; i < buttons.length; i+addButton(p, buttonsi;pa.add(p, "Center"pa1.add("South",pa;this.getContentPane(.add(pa1;private void addButton(Container c, String s

9、JButton b = new JButton(s;c.add(b;b.addActionListener(this;2.2功能模塊圖、流程圖分析 3、調試與性能分析 (相關截圖(1)標準計算其界面 (2)、加、減、乘除運算演示分別輸入8和4進行運算演示加法 8 =乘法 *= 開方運算 sqrt 百分號運算 % 倒數(shù)運算 1/x4、參考文獻Java 語言程序設計(第6版) 機械工程出版社5、附錄(程序清單)import java.awt.*;import java.awt.event.*;import javax.swing.*;public class jisuanqi extends JF

10、rame implements ActionListener,ItemListener JTextField text;JTextField textMemory;boolean clickable;double memoryd; /使用內存中存儲的數(shù)字int memoryi;String copy;public jisuanqi(super("計算器"setSize(357,253;public void init(clickable = true;JPanel pa1=new JPanel(;pa1.setBackground(new Color(236,231,210

11、;text=new JTextField("0.",31; text.setHorizontalAlignment(JTextField.RIGHT;/從右到左 pa1.add("North",text;/面板添加和按鈕的設置JPanel pa=new JPanel(;JPanel pa2=new JPanel(;JButton bt1=new JButton("Backspace"JButton bt2=new JButton("CE"JButton bt3=new JButton("C"bt

12、1.addActionListener(this;bt2.addActionListener(this;bt3.addActionListener(this;pa2.add(bt1;pa2.add(bt2;pa2.add(bt3; pa.setLayout(new BorderLayout(;pa.add(pa2,"North"JPanel p1=new JPanel(;p1.setLayout(new GridLayout(4,1,2,5;JButton bt4=new JButton("MC" JButton bt5=new JButton(&quo

13、t;MR"JButton bt6=new JButton("MS"JButton bt7=new JButton("M+"p1.add(bt4;p1.add(bt5;p1.add(bt6;p1.add(bt7;pa.add(p1,"West"JPanel p = new JPanel(;p.setLayout(new GridLayout(4, 5,2,5;Stringbuttons = "7","8","9","/","sqrt&qu

14、ot;,"4","5","6","*","%","1","2","3","-","1/x","0",".","=","+","+/-"JButton btn=new JButtonbuttons.length;for (int i = 0; i < buttons.length; i+addB

15、utton(p, buttonsi;pa.add(p, "Center"pa1.add("South",pa;this.getContentPane(.add(pa1; private void addButton(Container c, String s JButton b = new JButton(s;c.add(b;b.addActionListener(this;/功能的實現(xiàn)public void actionPerformed(ActionEvent evtString s = evt.getActionCommand(;if(s.equa

16、ls("CE"|s.equals("C"text.setText(""/else if(s.equals("+/-"/單擊"+/-"選擇輸入的運算數(shù)是正數(shù)還是負數(shù) double x;x=Double.parseDouble(text.getText(.trim(;text.setText(""+(-x; elseif (s = "sqrt" String s1 = text.getText(;if (s1.charAt(0 = '-'&am

17、p;& clickable = true text.setText("負數(shù)不能開根號"clickable = false;elsetext.setText(Double.toString(java.lang.Math.sqrt(Double. parseDouble(text.getText(;else if(s.equals("%"/單擊了"%"按鈕 double x;x=Double.parseDouble(text.getText(.trim(; text.setText(""+(0.01*x;/ s

18、tr.setLength(0;/y=0d;else if(s.equals("1/x"/單擊了"1/X"按鈕 double x;x=Double.parseDouble(text.getText(.trim(;if(x=0text.setText("除數(shù)不能為零"else text.setText(""+(1/x;/按下'+/-'按鈕時處理if (s= "+/-" && clickable = true boolean isNumber = true;String

19、 s1 = text.getText(;for (int i = 0; i < s.length(; i+if (! (s1.charAt(i >= '0' && s1.charAt(i <= '9' | s1.charAt(i = '.' |s1.charAt(i = '-' isNumber = false;break;if (isNumber = true /如果當前字符串首字母有'-' 號, 代表現(xiàn)在是個負數(shù), 再按下時, 則將首符號去掉if (s.charAt(0 = &

20、#39;-' text.setText(""for (int i = 1; i < s1.length(; i+ char a = s1.charAt(i;text.setText(text.getText( + a;/如果當前字符串第一個字符不是符號,則添加一個符號在首字母處 elsetext.setText('-' + s;/計算器有關內存操作/'MC'的操作,將內存清0elseif (s = "MC" && clickable = true memoryd = memoryi = 0;t

21、extMemory.setText(""/'MS'的操作,將當前文本框內容保存入內存,顯示'M'elseif (s = "MS" && clickable = true boolean isDot = false;textMemory.setText(" M"for (int i = 0; i < text.getText(.length(; i+if ('.' = text.getText(.charAt(i isDot = true;break;/如果是doub

22、le, 則存入memoryd(double存儲器if (isDot = true memoryd = Double.parseDouble(text.getText(;memoryi = 0; /保證存儲器中存放最新的值/如果是int, 則存入memoryi(int存儲器else memoryi = Integer.parseInt(text.getText(;memoryd = 0; /保證存儲器中存放最新的值/'MR'的操作,將存儲器中的信息輸出elseif (s = "MR" && clickable = true if (memory

23、d != 0text.setText(Double.toString(memoryd;if (memoryi != 0text.setText(Integer.toString(memoryi;/'M+'的功能,將當前文本框里的數(shù)據(jù)和存儲器中數(shù)據(jù)相加后,再存入存儲器 elseif (s = "M+" && clickable = true boolean isDot = false;for (int i = 0; i < text.getText(.length(; i+if ('.' = text.getText(.c

24、harAt(i isDot = true;break;if (memoryi != 0 /存儲中是一個int 型數(shù)if (isDot = false /被加數(shù)是一個int 型數(shù)memoryi += Integer.parseInt(text.getText(;else /被加數(shù)是一個double 型數(shù),則將int 存儲器中數(shù)傳入double 存儲器與當前數(shù)相加,int 存儲器清零memoryd = memoryi + Double.parseDouble(text.getText(; memoryi = 0;elsememoryd += Double.parseDouble(text.getText(;elseif ('0' <= s.charAt(0 && s.charAt(0 <= '9' | s.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論