java计算器设计报告_第1页
java计算器设计报告_第2页
java计算器设计报告_第3页
java计算器设计报告_第4页
java计算器设计报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1 摘要 本计算器是由 java 语言所编程设计的标准计算器,可以进行十进制下的四 则运算(加、减、乘、除) 、开平方、求余、求倒数,还可以实现二进制与十进 制之间的转换。通过本课程设计使学生能够较全面的掌握面向对象程序设计的 有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提 高自身的编程能力。 关键词: java 语言,计算器,算法 2 目录 摘要摘要.1 1 1 概述概述.2 1.11.1 设计目的及思路设计目的及思路.2 1.21.2 功能模块设计功能模块设计.2 1.31.3 系统功能图系统功能图.3 2 2 计算器的设计与实现计算器的设计与实现.3 2.12.1 程序界面程序界面.3 2.22.2 程序源代码程序源代码.4 3 3 计算器演示计算器演示.10 4 4 运行调试及讨论分析运行调试及讨论分析.13 5 5 小结小结.13 参考文献:参考文献: .14 3 1 概述 1.11.1 设计目的及思路设计目的及思路 通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和 开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编 程能力。利用 Java Applet 图形界面首先开始设计一个计算器的界面,定义计 算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见, 操作轻松。 给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执 行那个按钮所定义的算法,生成数据并显示。 除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法 要求计算时通过内部较为复杂的运算将结果显示在显示屏上。 至于其中的进制转换功能的实现则是直接调用 Java 中进制转换的函数,例 如要将十进制转换成二进制则可直接调用函数 Integer.toBinaryString(int i)来 实现,充分显示了 Java 语言的简洁性和 Java 语言功能的强大性。 当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是 Java 语言健壮性的体现! 1.21.2 功能模块设计功能模块设计 以下为标准计算器的基本功能: (1)加法 两个数据进行加操作,可以为小数。 (2)减法 两个数据进行减操作,可以为负数相减。 (3)乘法 两个数相乘操作。 (4)除法 两个数相除操作。 (5)开平方 对任意一个数进行开方运算,可以是小数。 (6)求余 对任意一个数进行求余运算。 (7)倒数 对任意一个数进行倒数运算。 (8)转换 将十进制数转换为二进制以及将二进制转换为十进制。 1.31.3 系统功能图系统功能图 4 计算器 减法运算 加法运算 乘法运算 除法运算 倒数运算 开平方运 算 求余运算 二进制与 十进制转 换 2 计算器的设计与实现 2.12.1 程序界面程序界面 2.22.2 程序源代码程序源代码 import javax.swing.*; import javax.swing.text.JTextComponent; import java.util.StringTokenizer; import java.awt.*; import java.awt.event.*; import java.math.*; public class Calculator implements ActionListener JFrame jf=new JFrame(计算器); JTextField tf=new JTextField(); JPanel pnl; 5 JButton jButtonDENG; JButton jButtonJIAN; JButton jButtonCHENG; JButton jButton1; JButton jButton2; JButton jButton3; JButton jButton4; JButton jButton5; JButton jButton6; JButton jButton7; JButton jButton8; JButton jButton9; JButton jButton0; JButton jButtonCHU; JButton jButtonQINGKONG; JButton jButtonJIA; JButton jButtonQUYU; JButton jButtonPINGFANG; JButton jButtonXIAOSHUDIAN; JButton jButtonBACKSPACE; JButton jButtonDAOSHU; JButton jButtonKAIPINGFANG; JButton jButtonERJINZHI; JButton jButtonSHIJINZHI; public Calculator () /初始化界面的方法 Container c=jf.getContentPane(); tf.setHorizontalAlignment(JTextField.RIGHT); c.add(tf,North); JPanel pnl=new JPanel(); c.add(pnl,Center); pnl.setLayout(new GridLayout(6,5); jButton1=new JButton(1); jButton1.addActionListener(this); pnl.add(jButton1); jButton2=new JButton(2); jButton2.addActionListener(this); pnl.add(jButton2); jButton3=new JButton(3); jButton3.addActionListener(this); pnl.add(jButton3); jButtonBACKSPACE=new JButton(backspace); jButtonBACKSPACE.addActionListener(this); pnl.add(jButtonBACKSPACE); jButton4=new JButton(4); 6 jButton4.addActionListener(this); pnl.add(jButton4); jButton5=new JButton(5); jButton5.addActionListener(this); pnl.add(jButton5); jButton6=new JButton(6); jButton6.addActionListener(this); pnl.add(jButton6); jButtonJIA=new JButton(+); jButtonJIA.addActionListener(this); pnl.add(jButtonJIA); jButton7=new JButton(7); jButton7.addActionListener(this); pnl.add(jButton7); jButton8=new JButton(8); jButton8.addActionListener(this); pnl.add(jButton8); jButton9=new JButton(9); jButton9.addActionListener(this); pnl.add(jButton9); jButtonJIAN=new JButton(-); jButtonJIAN.addActionListener(this); pnl.add(jButtonJIAN); jButton0=new JButton(0); jButton0.addActionListener(this); pnl.add(jButton0); jButtonQINGKONG=new JButton(清空); jButtonQINGKONG.addActionListener(this); pnl.add(jButtonQINGKONG); jButtonCHENG=new JButton(*); jButtonCHENG.addActionListener(this); pnl.add(jButtonCHENG); jButtonCHU=new JButton(/); jButtonCHU.addActionListener(this); pnl.add(jButtonCHU); jButtonQUYU=new JButton(%); jButtonQUYU.addActionListener(this); pnl.add(jButtonQUYU); jButtonPINGFANG=new JButton(平方); jButtonPINGFANG.addActionListener(this); pnl.add(jButtonPINGFANG); jButtonXIAOSHUDIAN=new JButton(.); jButtonXIAOSHUDIAN.addActionListener(this); pnl.add(jButtonXIAOSHUDIAN); 7 jButtonDENG=new JButton(=); jButtonDENG.addActionListener(this); pnl.add(jButtonDENG); jButtonDAOSHU=new JButton(倒数); jButtonDAOSHU.addActionListener(this); pnl.add(jButtonDAOSHU); jButtonKAIPINGFANG=new JButton(开平方); jButtonKAIPINGFANG.addActionListener(this); pnl.add(jButtonKAIPINGFANG); jButtonERJINZHI=new JButton(二进制); jButtonERJINZHI.addActionListener(this); pnl.add(jButtonERJINZHI); jButtonSHIJINZHI=new JButton(十进制); jButtonSHIJINZHI.addActionListener(this); pnl.add(jButtonSHIJINZHI); jf.setSize(600,400); jf.setVisible(true); public void actionPerformed(ActionEvent event) /检测运算符的方法 try double wen=0; String toknizer=+; String ben; String wenben=tf.getText()+event.getActionCommand(); tf.setText(wenben); /各运算符的判断运行代码 if(wenben.indexOf(*)!=-1) toknizer=*; if(wenben.indexOf(+)!=-1) toknizer=+; if(wenben.indexOf(-)!=-1) toknizer=-; if(wenben.indexOf(/)!=-1) toknizer=/; if(wenben.indexOf(%)!=-1) toknizer=%; if(wenben.indexOf(平方)!=-1) toknizer=平方; if(wenben.indexOf(倒数)!=-1) 8 toknizer=倒数; if(wenben.indexOf(开平方)!=-1) toknizer=开平方; if(wenben.indexOf(二进制)!=-1) toknizer=二进制; if(wenben.indexOf(十进制)!=-1) toknizer=十进制; /各个运算符的运算方法代码 if(event.getSource()=jButtonQINGKONG) /清空算法 wenben=; tf.setText(wenben); if(event.getSource()=jButtonBACKSPACE) /清除算法 wenben=wenben.substring(0,wenben.length()-10); tf.setText(wenben); if(event.getSource()=jButtonDENG) /=算法 wenben=wenben.substring(0,wenben.length()-1); double b=new double10; String a=new String15; StringTokenizer sun=new StringTokenizer(wenben,toknizer); int i=0; while(sun.hasMoreTokens() ai+=sun.nextToken(); for(int j=0;j1) bj=Double.parseDouble(aj); wen=wen%bj; ben=Double.toString(wen); tf.setText(wenben+=+ben); catch(Exception e) e.getMessage(); private int sqrt(double d) / TODO Auto-generated method stub return 0; /主函数 public static void main(Stringargs) new Calculator(); /对小程序进行初始化 3 计算器演示 11 加法 减法 乘法 除法 12 倒数 平方 13 二进制转换为十进制 十进制转换为二进制 4 运行调试及讨论分析 将代码写好之后检查代码的正确性,检查代码无误后将代码进行调试和运 行将会出现一个 JavaApplet 计算器界面。在调试过程中可能会出现有界面但是 不能运行小程序,那是因为没有初始化小程序,那时我们应该在主函数中将小 程序进行初始化,这样小程序才能运行! 在调试和运行完全正确后,我们就可以按照自己的医院将小程序进行简单 测试,例如输入一些简单数据分别运行各个按钮结果正确后可以初步确定程序 师正确的。有时候我们还要输入不同范围的值进行测试,可能会发现更多的错 误,因为有时候我们定义数据的范围可能会过小或输入数据会越界,到时我们 就可以改正以适应更多更大的运算。 有时候我们会不自觉的选择一种最优函数方法尽量将自己的代码简单规范 而又不缺少题目所要求的功能,那就要求我们翻阅很多参考书和查阅很多资料。 其实 javaApplet 图形界面的布局也是我们要讨论的范围,如何使得界面更加美 14 观是我们要探讨的! 有时候我们可能会到书上或网上找到一些满足我们要求的程序代码,在此我们 应该取其优秀的简单易理解代码作为我们设计程序的代码,作为初学者参考和 借用部分外部程序是不可避免,但是我认为前提我们应该看懂那些程序代码, 要知其所以然,那样才达到我们学程序的目的,但不主张完全照搬,否则就会 没意义了! 5 小结 到此本次课程报告快接近尾声了,通过本次课程设计我学到了

温馨提示

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

评论

0/150

提交评论