計算器java課程設計-簡單計算器和電子電路cad課程設計-簡易電子琴_第1頁
計算器java課程設計-簡單計算器和電子電路cad課程設計-簡易電子琴_第2頁
計算器java課程設計-簡單計算器和電子電路cad課程設計-簡易電子琴_第3頁
計算器java課程設計-簡單計算器和電子電路cad課程設計-簡易電子琴_第4頁
計算器java課程設計-簡單計算器和電子電路cad課程設計-簡易電子琴_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE1PAGE0《JAVA程序設計》課程設計報告簡單計算器學號:姓名:班級:計科一班指導教師:成績:完成時間:設計內容和要求1、簡單計算器模擬程序的基本要求模擬Windows中附件里面的計算器軟件,能實現整數的加、減、乘、除四則運算。2、需要實現的主要功能該計算器模擬程序使用Java的awt包和Swing包的類庫設計圖形界面的計算器顯示用戶界面并且使用圖形界面中的事件event委托機制來處理事件響應,以及用java語言設計實現整數的加、減、乘、除四則運算。(附加功能:清零和異常處理機制)系統(tǒng)分析與概要設計1、面板JPaneltxtpanel:用于放置文本框Panelbtnpanel:用于放置按鈕(0-9和+,-,*,/,=)2、顯示部分(1)第一個面板:txtpanel位置以及排列方式BorderLayout.NORTHtxtpanel.add(txtinput):添加文本框到txtpanel面板中(2)第二個面板:btnpanel排列方式:setLayout(gl)3、基本按鈕btnpanel.add(b7)btnpanel.add(b8)btnpanel.add(b9);btnpanel.add(multiply)btnpanel.add(b4)btnpanel.add(b5);btnpanel.add(b6)btnpanel.add(divide)btnpanel.add(b1);btnpanel.add(b2)btnpanel.add(b3)btnpanel.add(add);btnpanel.add(b0).add(bdes)btnpanel.add(equal);btnpanel.add(subtract)以上是在第二個面板btnpanelH中添加的0到9和+,-,*,/,=的按鈕。4、附加功能(1)“清零”:用于清空文本框和下一次的運算(2)“異常處理”除數為零:當除數為零時,彈出“除數不能為零”窗體錯誤輸入:當只單擊運算符時,彈出“錯誤輸入”窗體詳細設計和編碼1、總體功能圖運行運行輸入計算的數值值單擊運算符號,再單擊等于符號單擊運算符號,彈出一個消息框,提醒錯誤輸出結果YN1、類的定義及關系Jsq類繼承JFrame類創(chuàng)建主界面,在主界面上由文本框JTextField和JButton組件構成,JTextField和JButton組件分別放置在兩個不同的面板JPanel上,同時利用按鈕注冊監(jiān)聽器,獲取事件源。添加實現0--9和加、減、乘、除按鈕并實現四則運算并獲得運算結果以及“清零”和“異常處理機制”。2、運行效果圖

3、源代碼importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassCalculatorextendsJFrameimplementsActionListener{JPaneltxtpanel,btnpanel;JTextFieldtxtinput;JButtonb1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,divide,add,subtract,clear,equal;GridLayoutgl;doubled1,d2;Strings;publicCalculator(){super("計算器");txtpanel=newJPanel();btnpanel=newJPanel();txtinput=newJTextField(25);txtinput.setEditable(false);txtinput.setHorizontalAlignment(JTextField.RIGHT);txtinput.setText("");b1=newJButton("1");b2=newJButton("2");b3=newJButton("3");b4=newJButton("4");b5=newJButton("5");b6=newJButton("6");b7=newJButton("7");b8=newJButton("8");b9=newJButton("9");b0=newJButton("0");bdes=newJButton(".");add=newJButton("+");subtract=newJButton("-");multiply=newJButton("*");divide=newJButton("/");clear=newJButton("清零");equal=newJButton("=");clear.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventargh){btnCancelActionPerformed();}});b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);b0.addActionListener(this);bdes.addActionListener(this);multiply.addActionListener(this);divide.addActionListener(this);add.addActionListener(this);subtract.addActionListener(this);equal.addActionListener(this);getContentPane().add(txtpanel,BorderLayout.NORTH);txtpanel.add(txtinput);txtpanel.add(clear);gl=newGridLayout(4,4,5,5);btnpanel.setLayout(gl);getContentPane().add(btnpanel);btnpanel.add(b7);btnpanel.add(b8);btnpanel.add(b9);btnpanel.add(multiply);btnpanel.add(b4);btnpanel.add(b5);btnpanel.add(b6);btnpanel.add(divide);btnpanel.add(b1);btnpanel.add(b2);btnpanel.add(b3);btnpanel.add(add);btnpanel.add(b0);btnpanel.add(bdes);btnpanel.add(equal);btnpanel.add(subtract);setSize(250,220);setVisible(true);setLocation(300,200);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}publicvoidbtnCancelActionPerformed(){txtinput.setText("");}publicvoidactionPerformed(ActionEvente){try{Objectobj=e.getSource();if(obj==b1)txtinput.setText(txtinput.getText()+"1");elseif(obj==b2)txtinput.setText(txtinput.getText()+"2");elseif(obj==b3)txtinput.setText(txtinput.getText()+"3");elseif(obj==b4)txtinput.setText(txtinput.getText()+"4");elseif(obj==b5)txtinput.setText(txtinput.getText()+"5");elseif(obj==b6)txtinput.setText(txtinput.getText()+"6");elseif(obj==b7)txtinput.setText(txtinput.getText()+"7");elseif(obj==b8)txtinput.setText(txtinput.getText()+"8");elseif(obj==b9)txtinput.setText(txtinput.getText()+"9");elseif(obj==b0)txtinput.setText(txtinput.getText()+"0");elseif(obj==bdes)txtinput.setText(txtinput.getText()+".");elseif(obj==add){d1=Double.parseDouble(txtinput.getText());s="+";txtinput.setText("");}elseif(obj==subtract){d1=Double.parseDouble(txtinput.getText());s="-";txtinput.setText("");}elseif(obj==divide){d1=Double.parseDouble(txtinput.getText());s="/";txtinput.setText("");}elseif(obj==multiply){d1=Double.parseDouble(txtinput.getText());s="*";txtinput.setText("");}elseif(obj==equal){if(s=="+"){d2=d1+Double.parseDouble(txtinput.getText());txtinput.setText(Double.toString(d2));}elseif(s=="-"){d2=d1-Double.parseDouble(txtinput.getText());txtinput.setText(Double.toString(d2));}elseif(txtinput.equals(txtinput.getText())&&obj==subtract){d2=d1-Double.parseDouble(txtinput.getText());txtinput.setText(Double.toString(d2));}elseif(s=="/"){if(Double.parseDouble(txtinput.getText())==0)JOptionPane.showMessageDialog(this,"除數不能為0");d2=d1/Double.parseDouble(txtinput.getText());txtinput.setText(Double.toString(d2));}elseif(s=="*"){d2=d1*Double.parseDouble(txtinput.getText());txtinput.setText(Double.toString(d2));}}}catch(Exceptionouch){JOptionPane.showMessageDialog(null,"錯誤輸入","error",JOptionPane.ERROR_MESSAGE);}}publicstaticvoidmain(Stringargs[]){try{UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exceptione){}newCalculator();}}測試結果本次課程設計的計算器能夠滿足加、減、乘、除四則基本運算,而且通過自己的努力為此計算器添加了兩個附加的功能:“清零”和“異常處理機制”,并能很好的實現其功能。但是此計算器的功能還是很單薄,不能進行開方、取余、三角函數等其他計算器的常用功能。一是因為這些功能相對復雜一些,二是自己有點懶惰。所以造成此計算器功能不是很完善。小結在此次的課程設計實踐中,我學到了教科書上沒有的東西。這次課程設計,我按照課程設計的要求,分塊實現程序的功能。在實踐中我遇到許多的問題,通過同學的幫助和翻閱資料以及網上查詢,最后都克服,最終我成功的完成了這次課程設計。從中我充分理解了Java面對對象的特性,通過編寫這個相對復雜的程序,讓我認識解決實際問題前應現建立模型,再通過建立的模型使問題簡單化,從而解決問題。這次編寫的程序大部分是通過調用各包中的方法來實現的,這也讓我充分理解了包和類調用的關系。并為其增加了兩個功能“清零”和“異常處理機制”。由于這次編寫的程序相對比較復雜,所以不能一次性編寫、調試,也由此讓我學會把程序分塊,逐個編寫、調試。在實踐的同時,我又從中成長了許多,特別是在對程序的編譯和調試中掌握了許多的技巧和方法,為今后的其他計算機語言的學習奠定了一定的基礎。參考文獻[1]張思民.Java語言程序設計[M].清華大學出版社.2007.2[2]耿祥義.Java2使用教程(第三版)[M].清華大學出版社.2006.8電子電路CAD課程設計簡易電子琴姓名: 專業(yè):自動化班級:2班學號:指導老師:摘要:簡易電子琴電路是以NE555芯片為核心組成的多諧振蕩器,由振蕩器電路產生頻率信號,再通過由LM386小功率集成功放為核心組成的功放電路,最后由揚聲器輸出信號,發(fā)出1、2、3、4、5、6、7七個不同的頻率音符。通過改變兩組開關的通斷可以發(fā)出不同的音符和音調,分別按下音符按鍵能發(fā)出7個不同頻率的音符,通過通斷兩個音調開關實現音調的升調調節(jié)。關鍵字:電子琴、NE555、LM386、音調、音符目錄TOC\o"1-3"\h\u16092一、設計的任務和要求 1255751設計任務 183712設計要求 121876二、原理圖的設計 1268721設計概述 1326452原理圖 121820三、PCB的繪制 386861.PCB繪制的一般步驟 3175412.PCB版圖 411310四、心得體會 42715五、參考文獻 4一、設計的任務和要求1設計任務利用NE555和LM386設計一個簡易電子琴,電子琴鍵分別發(fā)出1、2、3、4、5、6、7七個不同的頻率音符。并通過改變兩組開關的通斷可以發(fā)出不同的音符和音調,分別按下音符按鍵能發(fā)出7個不同頻率的音符,通過通斷兩個音調開關實現音調的升調調節(jié)。2設計要求(1)開關K1~K7,做琴鍵按鍵開關。(2)S1和S2做音調調節(jié)開關。(3)由NE555定時器為核心組成振蕩電路。(4)由LM386小功率集成功放為核心組成功放電路。(5)所以元件均采用DIP封裝。二、原理圖的設計1設計概述本次簡易電子琴的設計運用數字電路和模擬電路兩方面的知識,運用數字電路的知識設計了由NE555定時器組成的振蕩器電路,運用了模擬電路的知識設計了由LM386小功率集成功放組成的功放電路。本設計主要分為三部分:琴鍵部分:由按鍵開關和可調電阻組成。振蕩器部分:由NE555定時器為核心組成。功放部分:由LM386小功率集成功放為核心組成。2原理圖(1)總體原理圖(2)由NE555定時器為核心組成的振蕩器多諧振蕩器由NE555、C1和R9構成,R10、R11和S1、S2用于改變振蕩器輸出信號的頻率。高電平觸發(fā)6腳,低電平觸發(fā)2腳,7腳輸入,3腳輸出。此電路的主要功能是把琴鍵輸出的電流信號通過多諧振蕩器轉換成方波信號。電路圖如下:(3)由L

溫馨提示

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

評論

0/150

提交評論