计算器java课程设计-简单计算器和电子电路cad课程设计-简易电子琴_第1页
计算器java课程设计-简单计算器和电子电路cad课程设计-简易电子琴_第2页
计算器java课程设计-简单计算器和电子电路cad课程设计-简易电子琴_第3页
计算器java课程设计-简单计算器和电子电路cad课程设计-简易电子琴_第4页
计算器java课程设计-简单计算器和电子电路cad课程设计-简易电子琴_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE1PAGE0《JAVA程序设计》课程设计报告简单计算器学号:姓名:班级:计科一班指导教师:成绩:完成时间:设计内容和要求1、简单计算器模拟程序的基本要求模拟Windows中附件里面的计算器软件,能实现整数的加、减、乘、除四则运算。2、需要实现的主要功能该计算器模拟程序使用Java的awt包和Swing包的类库设计图形界面的计算器显示用户界面并且使用图形界面中的事件event委托机制来处理事件响应,以及用java语言设计实现整数的加、减、乘、除四则运算。(附加功能:清零和异常处理机制)系统分析与概要设计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类创建主界面,在主界面上由文本框JTextField和JButton组件构成,JTextField和JButton组件分别放置在两个不同的面板JPanel上,同时利用按钮注册监听器,获取事件源。添加实现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课程设计简易电子琴姓名: 专业:自动化班级:2班学号:指导老师:摘要:简易电子琴电路是以NE555芯片为核心组成的多谐振荡器,由振荡器电路产生频率信号,再通过由LM386小功率集成功放为核心组成的功放电路,最后由扬声器输出信号,发出1、2、3、4、5、6、7七个不同的频率音符。通过改变两组开关的通断可以发出不同的音符和音调,分别按下音符按键能发出7个不同频率的音符,通过通断两个音调开关实现音调的升调调节。关键字:电子琴、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设计一个简易电子琴,电子琴键分别发出1、2、3、4、5、6、7七个不同的频率音符。并通过改变两组开关的通断可以发出不同的音符和音调,分别按下音符按键能发出7个不同频率的音符,通过通断两个音调开关实现音调的升调调节。2设计要求(1)开关K1~K7,做琴键按键开关。(2)S1和S2做音调调节开关。(3)由NE555定时器为核心组成振荡电路。(4)由LM386小功率集成功放为核心组成功放电路。(5)所以元件均采用DIP封装。二、原理图的设计1设计概述本次简易电子琴的设计运用数字电路和模拟电路两方面的知识,运用数字电路的知识设计了由NE555定时器组成的振荡器电路,运用了模拟电路的知识设计了由LM386小功率集成功放组成的功放电路。本设计主要分为三部分:琴键部分:由按键开关和可调电阻组成。振荡器部分:由NE555定时器为核心组成。功放部分:由LM386小功率集成功放为核心组成。2原理图(1)总体原理图(2)由NE555定时器为核心组成的振荡器多谐振荡器由NE555、C1和R9构成,R10、R11和S1、S2用于改变振荡器输出信号的频率。高电平触发6脚,低电平触发2脚,7脚输入,3脚输出。此电路的主要功能是把琴键输出的电流信号通过多谐振荡器转换成方波信号。电路图如下:(3)由L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论