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

下載本文檔

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

文檔簡介

1、課程設(shè)計(大作業(yè))報告課程名稱:java課程設(shè)計 設(shè)計題目:計算器設(shè)計 院 系:信息技術(shù)學(xué)院 班 級:計算機科學(xué)與技術(shù)(2)班 設(shè) 計 者: 學(xué) 號:201011010208 指導(dǎo)教師: 設(shè)計時間:2011-12-272011-12-29 昆明學(xué)院昆明學(xué)院課程設(shè)計(大作業(yè))任務(wù)書姓 名:蔣孝林 院 系:信息技術(shù)學(xué)院 專 業(yè):計算機科學(xué)與技術(shù)專業(yè) 學(xué) 號: 201011010208任務(wù)起止日期: 2011-12-272011-12-29 課程設(shè)計題目:計算器設(shè)計 課程設(shè)計要求:(1) 課程設(shè)計任務(wù)及要求(2) 設(shè)計思路、功能原理、功能規(guī)劃(3) 總體設(shè)計與詳細(xì)設(shè)計-數(shù)據(jù)分析,算法思路,類設(shè)計,功

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

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

4、中發(fā)現(xiàn)問題。提出問題,然后解決問題。多想同學(xué)和老師請教,在以后的學(xué)習(xí)中取得好的成績指導(dǎo)教師評語:成績:填表時間:指導(dǎo)教師簽名: 課程設(shè)計(大作業(yè))報告1、 課程設(shè)計介紹 41.1課程設(shè)計內(nèi)容 .41.2課程設(shè)計要求 .42、 總體設(shè)計 42.1課設(shè)題目總體設(shè)計、算法描述42.1.1、功能模塊設(shè)計4、界面設(shè)計代碼.42.2功能模塊圖、流程圖分析.63、 調(diào)試與性能分析 (相關(guān)截圖)64、 參考文獻.8附 錄(程序清單).91、 課程設(shè)計介紹 1.1課程設(shè)計內(nèi)容 本計算器是由java語言所編程設(shè)計的標(biāo)準(zhǔn)計算器,可以進行十進制下的四則運算(加、減、乘、除)、開根號、百分號、求倒數(shù),還可以實現(xiàn)數(shù)值的符

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

6、以為小數(shù)。 (2)減法 兩個數(shù)據(jù)進行減操作,可以為負(fù)數(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”),運算符按鈕事件(“+”、“-”、“,”“*”、“/”、“%”),正負(fù)值按鈕事件(“+/-”),小數(shù)點按鈕事件(“.”

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

8、1=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.add(pa2,"North"

9、);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")

10、;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

11、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

12、c, String s) JButton b = new JButton(s); c.add(b); b.addActionListener(this);2.2功能模塊圖、流程圖分析標(biāo)準(zhǔn)計算器加法運算減法運算乘法運算除法運算開平方運算百分號運算倒數(shù)運算3、調(diào)試與性能分析 (相關(guān)截圖) (1)標(biāo)準(zhǔn)計算其界面(2) 、加、減、乘除運算演示分別輸入8和4進行運算演示加法8 + = 乘法*=開方運算sqrt百分號運算%倒數(shù)運算1/x4、 參考文獻Java語言程序設(shè)計(第6版) 機械工程出版社5、附錄(程序清單)import java.awt.*;import java.awt.event.*;impo

13、rt javax.swing.*;public class jisuanqi extends JFrame implements ActionListener,ItemListenerJTextField text;JTextField textMemory;boolean clickable;double memoryd; /使用內(nèi)存中存儲的數(shù)字int memoryi;String copy;public jisuanqi()super("計算器");setSize(357,253);public void init()clickable = true;JPanel pa

14、1=new JPanel();pa1.setBackground(new Color(236,231,210);text=new JTextField("0.",31);text.setHorizontalAlignment(JTextField.RIGHT);/從右到左pa1.add("North",text); /面板添加和按鈕的設(shè)置 JPanel pa=new JPanel();JPanel pa2=new JPanel();JButton bt1=new JButton("Backspace");JButton bt2=new

15、 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.add(pa2,"North");JPanel p1=new JPanel();p1.setLayout(new GridLayout

16、(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 JPanel(); p.setLayout(new GridLayout

17、(4, 5,2,5); String buttons = "7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0",".","=","+",

18、"+/-" 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) JButton b = new JButton(s); c.add(b); b

19、.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ù)還是負(fù)數(shù) double x;x=Double.parseDouble(text.getT

20、ext().trim(); text.setText(""+(-x); else if (s = "sqrt") String s1 = text.getText(); if (s1.charAt(0) = '-'&& clickable = true) text.setText("負(fù)數(shù)不能開根號"); clickable = false; else text.setText(Double.toString(java.lang.Math.sqrt(Double. parseDouble(text.get

21、Text(); else if(s.equals("%")/單擊了"%"按鈕 double x;x=Double.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.setTe

22、xt("除數(shù)不能為零"); else text.setText(""+(1/x); /按下'+/-'按鈕時處理 if (s= "+/-" && clickable = true) boolean isNumber = true; String s1 = text.getText(); for (int i = 0; i < s.length(); i+) if (! (s1.charAt(i) >= '0' && s1.charAt(i) <= '

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

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

25、ot; && 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; /如果是double,則存入memoryd(double存儲器) if (isDot = true) memoryd = Double.parseDouble(text.getText

26、(); memoryi = 0; /保證存儲器中存放最新的值 /如果是int,則存入memoryi(int存儲器) else memoryi = Integer.parseInt(text.getText(); memoryd = 0; /保證存儲器中存放最新的值 /'MR'的操作,將存儲器中的信息輸出 else if (s = "MR" && clickable = true) if (memoryd != 0) text.setText(Double.toString(memoryd); if (memoryi != 0) text.se

27、tText(Integer.toString(memoryi); /'M+'的功能,將當(dāng)前文本框里的數(shù)據(jù)和存儲器中數(shù)據(jù)相加后,再存入存儲器 else if (s = "M+" && clickable = true) boolean isDot = false; for (int i = 0; i < text.getText().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存儲器與當(dāng)前數(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論