面向?qū)ο蟪绦蛟O計課程設計劃書模板new(計算器設計_第1頁
面向?qū)ο蟪绦蛟O計課程設計劃書模板new(計算器設計_第2頁
面向?qū)ο蟪绦蛟O計課程設計劃書模板new(計算器設計_第3頁
面向?qū)ο蟪绦蛟O計課程設計劃書模板new(計算器設計_第4頁
面向?qū)ο蟪绦蛟O計課程設計劃書模板new(計算器設計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設計(大作業(yè))報告課程名稱:java課程設計 設計題目:計算器設計 院 系:信息技術(shù)學院 班 級:計算機科學與技術(shù)(2)班 設 計 者: 學 號:8 指導教師: 設計時間:2011-12-272011-12-29 昆明學院昆明學院課程設計(大作業(yè))任務書姓 名:蔣孝林 院 系:信息技術(shù)學院 專 業(yè):計算機科學與技術(shù)專業(yè) 學 號: 8任務起止日期: 2011-12-272011-12-29 課程設計題目:計算器設計 課程設計要求:(1) 課程設計任務及要求(2) 設計思路、功能原理、功能規(guī)劃(3) 總體設計與詳細設計-數(shù)據(jù)分析,算法思路,類設計,功能實現(xiàn)(含程序流程圖,主要代碼及注釋),界面

2、等(4) 運行調(diào)試與分析討論-給出運行屏幕截圖,分析運行結(jié)果,有何改進想法等.(5) 設計體會與小結(jié)-設計遇到的問題及解決辦法,通過設計學到了哪些新知識, 鞏固了那些知識,有哪些提高。(6) 參考文獻(7) 報告格式見昆明學院課程設計報告模板,按格式要求完成設計報告。 追求完善,不要僅僅應付老師的檢查、,程序要求有良好的結(jié)構(gòu)及編碼風格,有必要的注釋。(8)嚴禁抄襲,如有發(fā)現(xiàn),按不及格處理工作計劃及安排 2011-12-26起至2011-12-27 查詢相關(guān)資料,對這個關(guān)于計算機的Java程序設計進行大體編排 2011-12-28起至2011-12-30 對程序進行編寫,運行,調(diào)試 2011-1

3、2-30 完成設計指導教師簽字 年 月 日 課程設計(大作業(yè))成績學號:8 姓名:蔣孝林 指導教師:何英 老師課程設計題目: 計算器程序設計總結(jié):這次的課程設計,是我對Java有了進一步的了解和體會。 對于這次課程設計,我最大的感受就是自己對教材并不是很熟悉,所掌握和熟悉的知識不夠,在設計的過程中出現(xiàn)了很多彎路,所以在以后進一步的學習和深入中,我會多查閱一些相關(guān)資料,多想,多實踐,更好的鞏固所學的知識,以求加深對java的理解。我會總結(jié)在課程設計中發(fā)現(xiàn)的技巧性知識,在議會的學習中 學會學以致用,把學會的更好的應用在生活中,在學習中發(fā)現(xiàn)問題。提出問題,然后解決問題。多想同學和老師請教,在以后的學

4、習中取得好的成績指導教師評語:成績:填表時間:指導教師簽名: 課程設計(大作業(yè))報告1、 課程設計介紹 41.1課程設計內(nèi)容 .41.2課程設計要求 .42、 總體設計 42.1課設題目總體設計、算法描述42.1.1、功能模塊設計42.1.2、界面設計代碼.42.2功能模塊圖、流程圖分析.63、 調(diào)試與性能分析 (相關(guān)截圖)64、 參考文獻.8附 錄(程序清單).91、 課程設計介紹 1.1課程設計內(nèi)容 本計算器是由java語言所編程設計的標準計算器,可以進行十進制下的四則運算(加、減、乘、除)、開根號、百分號、求倒數(shù),還可以實現(xiàn)數(shù)值的符號轉(zhuǎn)換操作。 ,Backspace表示退格, CE表示將

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

6、減。 (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”),運算符按鈕事件(“+”、“-”、“,”“*”、“/”、“%”),正負值按鈕事件(“+/-”),小數(shù)點按鈕事件(“.”),等號按鈕事件(“=”),求倒按鈕事件(“1、x”),

7、退格按鈕事件(“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 JPanel();JPanel pa2=new JPanel();JButton bt1=new JButton(Backspace);JButton bt2=new JButto

8、n(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.add(pa2,North);JPanel p1=new JPanel();p1.setLayout(new GridLayout(4,1,2,5);JButton bt4=new JButton(MC);JButt

9、on 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);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,0,.,=,+,+/-; JButton btn=new JButtonbut

10、tons.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) JButton b = new JButton(s); c.add(b); b.addActionListener(this);2.2功能模塊圖、流程圖分析標準計算器加法運算減法運算乘法運算除法運算開平方運算百分號運算倒

11、數(shù)運算3、調(diào)試與性能分析 (相關(guān)截圖) (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 JFrame implements ActionListener,ItemListenerJTextField text;JTextField text

12、Memory;boolean clickable;double memoryd; /使用內(nèi)存中存儲的數(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);text=new JTextField(0.,31);text.setHorizontalAlignment(JTextField.RIGHT);/從右到左p

13、a1.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);bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);pa2.add(bt1);pa2.add(bt2);pa2.add(bt3);pa.setLa

14、yout(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(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 JPa

15、nel(); p.setLayout(new GridLayout(4, 5,2,5); String buttons = 7,8,9,/,sqrt,4,5,6,*,%,1,2,3,-,1/x,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 addButt

16、on(Container c, String s) JButton b = new JButton(s); c.add(b); b.addActionListener(this); /功能的實現(xiàn)public void actionPerformed(ActionEvent evt) String s = evt.getActionCommand(); if(s.equals(CE)|s.equals(C) text.setText(); / else if(s.equals(+/-)/單擊+/-選擇輸入的運算數(shù)是正數(shù)還是負數(shù) double x;x=Double.parseDouble(text

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

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

19、ng s1 = text.getText(); for (int i = 0; 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) = -) text.setText(); for (int i = 1; i s1.length(); i+) char a = s1.charAt(i); text.setText(text.

20、getText() + a); /如果當前字符串第一個字符不是符號,則添加一個符號在首字母處 else text.setText(- + s); /計算器有關(guān)內(nèi)存操作 /MC的操作,將內(nèi)存清0 else if (s = MC & clickable = true) memoryd = memoryi = 0; textMemory.setText(); /MS的操作,將當前文本框內(nèi)容保存入內(nèi)存,顯示M else if (s = MS & clickable = true) boolean isDot = false; textMemory.setText( M); for (int i = 0

21、; i text.getText().length(); i+) if (. = text.getText().charAt(i) isDot = true; break; /如果是double,則存入memoryd(double存儲器) if (isDot = true) memoryd = Double.parseDouble(text.getText(); memoryi = 0; /保證存儲器中存放最新的值 /如果是int,則存入memoryi(int存儲器) else memoryi = Integer.parseInt(text.getText(); memoryd = 0; /保

22、證存儲器中存放最新的值 /MR的操作,將存儲器中的信息輸出 else if (s = MR & clickable = true) if (memoryd != 0) text.setText(Double.toString(memoryd); if (memoryi != 0) text.setText(Integer.toString(memoryi); /M+的功能,將當前文本框里的數(shù)據(jù)和存儲器中數(shù)據(jù)相加后,再存入存儲器 else if (s = M+ & clickable = true) boolean isDot = false; for (int i = 0; i text.ge

23、tText().length(); i+) if (. = text.getText().charAt(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; else memoryd += Double.parseDouble(text.getText(); else

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論