java计算器设计报告

合集下载

Java计算器课程设计报告

Java计算器课程设计报告

《Java计算器》Java课程设计报告姓名:********学号:********专业:************一.程序要实现的功能:基础功能:类似windows计算器-普通计算器所具有的,数的输入、加、减、乘、除、开根号、求倒数、退格、清空,以及数字储存器中的MR(显示)、MC (清空)、M+(相加)、MS(储存)扩展功能: 类似windows计算器-科学计算器所具有的,各种函数(包括正三角反三角函数)计算,不同进制转换,逻辑与或非等操作。

二.程序算法&功能实现(大概)以下为运算功能简易示意图:不同进制转换:此功能独立于计算器其他功能,计算器运行过程中设定一个变量carry储存当前进制转态,每次运算时先将屏幕显示的数字转化成十进制然后带入运算,对于要显示在计算器屏幕的结果也要先进行十进制转换为当前进制然后显示。

三.遇到问题及解决方案1.普通计算器到科学计算器的界面转换:科学计算器的界面显然比普通计算器界面要复杂,按钮要多,而无论怎样修改布局都无法完整得在科学计算器和普通计算器之间切换。

解决方案:将计算器的界面布局的类设为扩展JPanel的类CreateButton,该类中设置两个方法,一个方法进行科学计算器的界面布局,一个方法进行普通计算器的界面布局,两个方法依靠CreateButton类构造函数种的参数决定调用哪个方法,在主的类里面若要在科学计算器和普通计算器之间切换,只要为当前面板new一个CreateButton,并设置好参数,就可以换一个界面。

2.不同进制输入输出与运算问题:由于科学型计算器涉及不同进制的输入输出与运算,而不同的进制运算规则稍有不同,因此不同进制输入输出与运算就成了一个问题。

解决方案:设置一个全局变量表示当前进制状态,而程序运行过程处理数据都以十进制形式,也就是仅在显示时,按照当前进制状态,将十进制转化为相应进制。

3.JAVA已有的函数计算精度不够:例如sin函数计算,java对sin函数计算的参数是弧度制,但是如果用Math.sin ()计算Pi/6(即sin30度),那么结果是0.4999999999999999而不是0.5。

计算器java课程设计报告(完整版)

计算器java课程设计报告(完整版)

《面向对象程序设计》课程设计报告课程设计题目:计算器****:***专业:信息管理与信息系统班级:1424603****:***2016年 5 月25 日一、课设任务及要求1)课设任务:⑴设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算)。

⑵有求倒数、退格和清零功能。

2)创新要求:能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。

3)设计要求①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。

且有小数点、正负号、求倒数、退格和清零功能。

②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。

③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、设计思路⑴本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p加入到”Center”区域。

包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。

如:Button b=new Button();b.addActionListener(事件监听器);⑵事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。

事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”求倒”)、退格按钮事件(”退格”)、清除按钮事件(“C”) 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数(pow)、对e的指数(exp)、对数运算(log)。

java 计算器实验报告

java 计算器实验报告

java 计算器实验报告Java计算器实验报告一、引言计算器是我们日常生活和学习中经常使用的工具之一。

它可以帮助我们进行简单的数学运算,提高计算效率。

在本实验中,我们将使用Java编程语言设计并实现一个简单的计算器。

二、实验目的1. 学习Java编程语言的基本语法和数据类型;2. 掌握Java图形用户界面(GUI)的设计和实现;3. 熟悉计算器的基本功能和运算规则。

三、实验步骤1. 界面设计在Java中,我们可以使用Swing库来设计和实现GUI界面。

首先,我们创建一个窗口对象,并设置窗口的标题、大小和布局。

然后,我们在窗口中添加文本框和按钮,用于显示计算结果和接收用户输入。

2. 功能实现计算器的基本功能包括加法、减法、乘法和除法运算。

我们可以通过监听按钮点击事件,获取用户输入的数字和操作符,然后进行相应的运算,并将结果显示在文本框中。

3. 异常处理在进行计算过程中,可能会出现一些异常情况,例如除数为零或输入非法字符等。

为了保证程序的健壮性,我们需要对这些异常进行处理,并给出相应的提示信息。

4. 测试和优化完成代码编写后,我们需要进行测试和优化。

通过输入一系列测试用例,检查计算器是否能够正确处理各种情况,并对可能存在的bug进行修复和优化。

四、实验结果经过多次测试和优化,我们的计算器程序已经能够正确地进行加减乘除运算,并能够处理各种异常情况。

用户友好的界面设计和清晰的提示信息,使得计算器易于使用和操作。

五、实验总结通过本次实验,我学习了Java编程语言的基本语法和数据类型,并且掌握了Java图形用户界面(GUI)的设计和实现方法。

通过实践,我深入理解了计算器的基本功能和运算规则,并学会了如何处理异常情况。

此外,我还培养了代码编写、测试和优化的能力,提高了自己的编程水平。

六、实验感想本次实验让我更加熟悉了Java编程语言,并且提高了我的代码设计和编程能力。

通过自己动手实现一个计算器,我对计算机科学的理论知识有了更深入的理解,并且增强了我的实践能力。

java计算器设计实验报告

java计算器设计实验报告

java计算器设计实验报告《Java计算器设计实验报告》摘要:本实验报告基于Java语言,设计了一个简单的计算器。

通过使用面向对象的编程方法,实现了基本的加、减、乘、除运算,并且实现了用户界面的交互操作。

本实验报告详细介绍了计算器的设计思路、实现过程和代码结构,并对实验结果进行了分析和总结。

1. 引言计算器是人们日常生活中常用的工具之一,它能够帮助人们进行简单的数学运算。

随着计算器的普及和发展,计算器的功能也越来越丰富,例如科学计算器、金融计算器等。

本实验旨在通过使用Java语言,设计一个简单的计算器,以加深对面向对象编程的理解和应用。

2. 设计思路在设计计算器时,首先需要确定计算器的功能需求,包括加法、减法、乘法、除法等基本运算。

其次,需要考虑用户界面的设计,使用户能够方便地输入数字和选择运算符。

最后,需要考虑计算器的实现方式,包括数据结构的选择、算法的设计等。

3. 实现过程在本实验中,我们使用Java语言和Swing库来实现计算器的设计。

首先,我们创建一个Calculator类来处理计算器的逻辑操作,包括加法、减法、乘法、除法等运算。

然后,我们创建一个CalculatorUI类来处理用户界面的设计,包括数字按钮、运算符按钮和显示屏的设计。

最后,我们将Calculator类和CalculatorUI类进行整合,实现一个完整的计算器。

4. 代码结构以下是计算器的主要代码结构:Calculator类:- add(double a, double b):加法运算- subtract(double a, double b):减法运算- multiply(double a, double b):乘法运算- divide(double a, double b):除法运算CalculatorUI类:- createNumberButton(int number):创建数字按钮- createOperatorButton(String operator):创建运算符按钮- createDisplayScreen():创建显示屏Main类:- main(String[] args):主函数,启动计算器界面5. 实验结果分析通过实验,我们成功地实现了一个简单的计算器,用户能够输入数字并进行加、减、乘、除等运算。

Java课程设计报告计算器

Java课程设计报告计算器

Java课程设计报告-计算器第一部分设计的内容要求1.1 Windows自带计算器版面设计1.2计算器计算功能算法实现第二部分设计思想2.1根据图形用户界面设计方法设计计算器版面。

①容器类(窗口--Window类,面板--Panel类),框架类--Frame,Button类,Label类,TextField类等类的构造方法,菜单(菜单栏、菜单项)的建立于应用。

②事件处理机制:监听器类WinClose(),actionPerformed()。

2.2计算器计算功能实现,即按钮监听器的实现自定义变量:x,y为操作数,op为操作符。

根据单击按钮不同进行不同的操作,详见处理按钮单击事件方法actionPerformed(ActionEvent e)(计算功能算法)流程图。

第三部分详细设计3.2处理按钮单击事件方法actionPerformed(ActionEvent e)(计算器计算功能算法)流程图:第四部分运行效果图4.1运行初始图:4.2 计算功能测试图:-1+23.4 将textp中数据赋给yN Y单击”1”~”9”将单击数字插入到textp中数据后,并将textp中数据赋给y 将textp赋0,并str.stelength(0);结束4.2 数学分组功能测试图:第五部分心得与体会5.1 Java是一门实践性很强的编程语言,每学习到一个新的知识点应当及时动手编写程序,提高动手能力,加深对语言的理解。

5.2 根据Java图形用户界面设计方法设计计算器版面有很多种设计方法,学习过程中应灵活变通,使版面的设计更简单易懂。

5.3 本次设计的计算器还有不足之处,首先还没有实现科学型的计算功能,其次还没有键盘输入功能,因此还应继续努力,更加完善计算器的功能。

第六部分附录6.1计算器计算功能算法(按钮"="):if(e.getSource()==b26) // "="{str.setLength(0);switch(op){case 0 :if(flag==1)textp.setText(String.valueOf(x+y));else{str.setLength(0);str.append(x+y);fun();}break;case 1 :if(flag==1)textp.setText(String.valueOf(x-y)); else{str.setLength(0);str.append(x-y);fun();}break;case 2 :if(flag==1)textp.setText(String.valueOf(x*y)); else{str.setLength(0);str.append(x*y);fun();}break;case 3 :if(y==0){textp.setText("除数不能为零");str.setLength(0);y=0;}else{if(flag==1)textp.setText(String.valueOf(x/y)); else{str.setLength(0);str.append(x/y);fun();}}break;}}6.2 fun()函数(数学分组功能)public void fun(){flag=0;int t=0;StringBuffer temp;String sstr=str.toString();if(sstr.trim().indexOf("-")==1){temp=new StringBuffer(str.substring(1));t=1;}elsetemp=new StringBuffer(str.substring(0));if(sstr.trim().indexOf(".")==-1){int j=temp.length();for(int i=j;i>3;){temp.insert(i-3,",");i=i-3;}if(t==0)textp.setText(temp.toString());elsetextp.setText('-'+temp.toString());}else{int i=sstr.indexOf('.');StringBuffer s1=new StringBuffer(sstr.substring(0,i));StringBuffer s2=new StringBuffer(sstr.substring(i+1));for(int j=s1.length();j>3;){s1.insert(j-3,",");j=j-3;}if(t==0)textp.setText(s1.toString()+'.'+s2.toString());elsetextp.setText('-'+s1.toString()+'.'+s2.toString());}}。

java计算器设计报告

java计算器设计报告

设计报告课题名称:计算器设计学院:专业班级:学号:学生:指导教师:教务处年月日学生指导教师课题名称JAVA计算器课程设计设计时间设计地点设计目的图形界面设计,熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。

从而检测对这门课的掌握情况,有助于及时查漏补缺。

1.1功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。

(2)减法两个数据进行减操作,可以为负数相减。

(3)乘法两个数相乘操作。

(4)除法两个数相除操作。

(5)开平方对任意一个数进行开方运算,可以是小数。

(6)百分号对任意一个数进行百分号运算。

(7)倒数对任意一个数进行倒数运算。

1.2标准计算器界面(图1-1)图1-1 1.3系统功能图(图1-2)2标准计算器演示(1)启动计算器(图2-1)图2-1(2)加法、乘法运算分别输入9和3然后分别计算其加法、乘法运算(图2-2,图2-3)图2-2(加法运算)图2-3(乘法运算)(3)开平方运算sqrt(图2-4)图2-4(4)百分号运算%(图2-5)图2-5(5)倒数运算1/x(图2-6)图2-63程序设计过程中的问题该设计目前还不太完整全面,在测试时有以下问题:1.在进行aqrt 、%、 1/x这三个运算后再输入数据就在文本框中继续输入,不能重新输入。

需要按下清零键才可继续输入下一数据再进行运算。

2.菜单栏中虽然设计了“查看—标准型、科学型、数字分组”以及“帮助—帮助主题、关于计算器”可是其功能并没有时间。

3.该计算器设计了有关内存的操作,可是并没有达到预期中的效果。

java计算器实验报告

java计算器实验报告

课程设计论文设计题目:java计算器学生姓名:指导教师:专业名称:所在院系:摘要在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。

Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。

该程序是一个图形界面的java 计算器,其界面主要采用了swing包,程序实现了:(1)实现简单加、减、乘、除的运算。

(2)实现除了加、减、乘、除按钮外其他按钮功能。

(3)给软件添加一个编辑、查看、帮助的主菜单。

(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。

(5)科学型计算器与标准计算器之间的菜单切换。

Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。

在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。

与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。

目录第1章概要设计 (1)1.1查找资料 (1)1.2选题 (1)1.3标准型计算器界面设计 (1)1.4本章小节 (3)第2章程序整体设计说明 (4)2.1程序中所用到的变量 (4)2.2程序部分源代码及注释 (4)2.3本章小节 (15)第3章程序运行效果 (16)3.1程序运行主界面 (16)3.2程序中各按钮运行界面 (16)3.3本章小节 (20)第4章设计中遇到的重点及难点 (21)4.1设计中遇到的重点 (21)4.2设计中的遇到的难点 (21)4.3本章小节 (23)第5章本次设计中存在不足与改良方案 (24)5.1本次设计中存在的不足 (24)5.2本次设计的改良方案 (24)5.3本章小节 (24)结论 (25)参考文献 (26)致谢 (27)指导教师评语 (28)答辩委员会评语 (29)第1章概要设计1.1查找资料21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。

java计算器实验报告

java计算器实验报告

j a v a计算器实验报告 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】课程设计论文设计题目:java计算器学生姓名:指导教师:专业名称:所在院系:在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。

Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。

该程序是一个图形界面的java计算器,其界面主要采用了swing包,程序实现了:(1)实现简单加、减、乘、除的运算。

(2)实现除了加、减、乘、除按钮外其他按钮功能。

(3)给软件添加一个编辑、查看、帮助的主菜单。

(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。

(5)科学型计算器与标准计算器之间的菜单切换。

Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。

在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。

与此相对,Swing组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。

第1章概要设计 (1)查找资料 (1)选题 (1)标准型计算器界面设计 (1)本章小节 (3)第2章程序整体设计说明 (4)程序中所用到的变量 (4)程序部分源代码及注释 (4)本章小节 (15)第3章程序运行效果 (16)程序运行主界面 (16)程序中各按钮运行界面 (16)本章小节 (20)第4章设计中遇到的重点及难点 (21)设计中遇到的重点 (21)设计中的遇到的难点 (21)本章小节 (23)第5章本次设计中存在不足与改良方案 (24)本次设计中存在的不足 (24)本次设计的改良方案 (24)本章小节 (24)结论 (25)参考文献 (26)致谢 (27)指导教师评语 (28)答辩委员会评语 (29)第1章概要设计查找资料21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开平方、求余、求倒数,还可以实现二进制与十进制之间的转换。

通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。

关键词: java语言,计算器,算法目录摘要 (1)1概述 (3)1.1设计目的及思路 (3)1.2功能模块设计 (3)1.3系统功能图 (3)2计算器的设计与实现 (4)2.1程序界面 (4)2.2程序源代码 (4)3计算器演示 (10)4运行调试及讨论分析 (13)5小结 (14)参考文献: (14)1概述1.1设计目的及思路通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。

利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。

给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。

除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。

至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。

当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!1.2功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。

(2)减法两个数据进行减操作,可以为负数相减。

(3)乘法两个数相乘操作。

(4)除法两个数相除操作。

(5)开平方对任意一个数进行开方运算,可以是小数。

(6)求余对任意一个数进行求余运算。

(7)倒数对任意一个数进行倒数运算。

(8)转换将十进制数转换为二进制以及将二进制转换为十进制。

1.3系统功能图2计算器的设计与实现2.1程序界面2.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; 计算器减法运算 加法运算乘法运算除法运算倒数运算 开平方运算求余运算 二进制与十进制转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");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);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) {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 double[10];String a[]=new String[15];StringTokenizer sun=new StringTokenizer(wenben,toknizer); int i=0;while(sun.hasMoreTokens()){a[i++]=sun.nextToken();}for(int j=0;j<10;j++){String s=a[j];String k=a[j+1];if(s==null){break;}else{if(toknizer=="*"){ //"*"算法if(j==0){wen=1;}b[j]=Double.parseDouble(s);wen=wen*b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="+"){ //"+" 算法if(j==0){wen=0;}b[j]=Double.parseDouble(s);wen=wen+b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="-"){ //"-"算法b[j]=Double.parseDouble(s);if(j==0){wen=2*b[j];}wen=wen-b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="/"){ // "/"算法b[j]=Double.parseDouble(s);if(j==0){wen=b[j]*b[j];}wen=wen/b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="平方"){ //平方算法if(j==0){wen=1;}b[j]=Double.parseDouble(s);wen=wen*b[j]*b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="倒数"){ //倒数算法b[j]=Double.parseDouble(s);wen=1/b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="开平方"){ //开平方算法if(j==0){wen=0;}b[j]=Double.parseDouble(s);double wen1=sqrt(b[j]);ben=Double.toString(wen1);tf.setText(wenben+"="+ben);}JTextComponent textAnswer = null;if (toknizer=="十进制") { //二进制转为十进制代码//b[j]=Integer.parseInt(s);wen =Integer.parseInt(s,2);ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if (toknizer=="二进制") { //十进制转换为二进制代码 int den =Integer.parseInt(s);String daen = Integer.toBinaryString(den);tf.setText(wenben+"="+daen);}if(toknizer=="%"){ //"%"算法if(j==0){b[j]=Double.parseDouble(s);b[j+1]=Double.parseDouble(k);if(b[j]<b[j+1]){wen=b[j];} if(b[j]==b[j+1]) {wen=0;}if(b[j]>b[j+1]) {wen=b[j]%b[j+1];}} if(j>1) {b[j]=Double.parseDouble(a[j]);wen=wen%b[j];}ben=Double.toString(wen);tf.setText(wenben+"="+ben);}}}}}catch(Exception e){e.getMessage();}}private int sqrt(double d) {// TODO Auto-generated method stubreturn 0;}//主函数public static void main(String[]args) {new Calculator(); //对小程序进行初始化}}3计算器演示加法减法乘法除法倒数平方二进制转换为十进制十进制转换为二进制4运行调试及讨论分析将代码写好之后检查代码的正确性,检查代码无误后将代码进行调试和运行将会出现一个JavaApplet计算器界面。

相关文档
最新文档