java版简易计算器

合集下载

用java代码写的简易计算器(可以实现基本的加减乘除功能)

用java代码写的简易计算器(可以实现基本的加减乘除功能)

⽤java代码写的简易计算器(可以实现基本的加减乘除功能)package A;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.*;public class Calcular3 extends JFrame implements ActionListener,MouseListener{private int m1=0,n=0;//private double m2=0;//运算的数private int flag=0;JFrame f;JPanel p1,p2,p3;JTextField t;JButton b1[]=new JButton[18];String b[]= {"1","2","3","4","5","6","7","8","9","0","清空","退格",".","=","+","-","*","/"};public Calcular3(){f=new JFrame("计算器");t=new JTextField(35);p1=new JPanel();p2=new JPanel();p3=new JPanel();f.setBounds(100, 100, 400, 200);f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.CENTER);f.add(p3,BorderLayout.EAST);p2.setLayout(new GridLayout(5,3));p3.setLayout(new GridLayout(4,1));p1.add(t);for(int i=0;i<14;i++) {b1[i]=new JButton(b[i]);p2.add(b1[i]);b1[i].addActionListener(this);}for(int i=14;i<18;i++) {b1[i]=new JButton(b[i]);p3.add(b1[i]);b1[i].addActionListener(this);}/*for(int i=0;i<18;i++) {b1[i].addActionListener(this);}*/f.setVisible(true);}//实现接⼝的⽅法public void mouseClicked(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void actionPerformed(ActionEvent e) {String str="";int i;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {if(i==9) {n=n*10;}else {n=n*10+i+1;}str=String.valueOf(n);//整形n转换成字符串strt.setText(str);//显⽰到⽂本框上}}for(i=14;i<18;i++) {//+、-、*、/if(e.getSource()==b1[i]) {//匹配运算符m1=Integer.parseInt(t.getText());if(flag==15) {m2=m1+m2;}else if(flag==16) {m2=m1-m2;}else if(flag==17) {m2=m1*m2;}else if(flag==18) {m2=m1/m2;}else m2=m1;//若⽆连续的运算符运算,保存当前数据到m2 if(i==14) flag=15;else if(i==15) flag=16;else if(i==16) flag=17;else flag=18;str=String.valueOf(b[i]);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据break;//找到匹配数据退出循环}}if(e.getSource()==b1[13]) {//=m1=Integer.parseInt(t.getText());if(flag==15) {m2=m2+m1;}else if(flag==16) {m2=m2-m1;}else if(flag==17) {m2=m2*m1;}else if(flag==18) {m2=m2/m1;}else m2=m1;str=String.valueOf(m2);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据flag=0;//flag还原0,表明没有未处理的运算符}if(e.getSource()==b1[10]) {//各变量变为0 清空m1=0;m2=0;flag=0;n=0;t.setText("0");//显⽰到⽂本框上}if(e.getSource()==b1[11]) {//退格m1=(int)(Double.parseDouble(t.getText())/10);n=m1;str=String.valueOf(m1);t.setText(str);}if(e.getSource()==b1[12]) {//⼩数点m1=Integer.parseInt(t.getText());str=String.valueOf(m1+b[12]);t.setText(str);//显⽰到⽂本框上int j=0;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {j++;m2=Math.pow(0.1, j)*Integer.parseInt(b[i]);str=String.valueOf(m1+m2);t.setText(str);//显⽰到⽂本框上}}}}//主函数public static void main(String[] args) {new Calcular3();}}。

Java实现简易计算器

Java实现简易计算器

Java实训作业题目:Java实现简易计算器学院:姓名:学号:班级:20 年月一、实验目的通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。

此次课程设计实训主要是Java语言程序设计的实现。

通过该课程设计,可以将课堂上掌握的理论知识与处理数据的业务相结合,以检验自己掌握知识的宽度、深度及对知识的综合运用能力。

二、实验要求用Java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,平方等功能。

三、详细内容1.界面设计界面设计使用GUI,其中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如图1-1所示:图1-1其中主要代码为:public mainWindow(){this.setTitle("计算器");//用户图形界面标题this.setVisible(true);//用户图形界面可缩小this.setResizable(false);//用户图形界面不可放大this.setSize(350,300);//设置用户图形界面的大小this.setLocation(400,150);//用户图形界面在屏幕中的显示位置JPanel panel1 = new JPanel();//新建一个画板JPanel panel2 = new JPanel();button1 = new JButton("1");...reset = new JButton("CE");Container container = this.getContentPane();container.add(panel2,BorderLayout.NORTH);container.add(panel1);panel1.setLayout(new GridLayout(5,4));//将画板1分为4行5列result.setEnabled(false);result.setFont(new Font("Dialog",Font.BOLD,25));//运算结果的字体大小result.setEditable(false);result.setHorizontalAlignment(SwingConstants.RIGHT);panel1.add(reciprocal);//分别将20个按钮依次添加到画板panel1中,并设置各自的大小reciprocal.setFont(new Font("Dialog",Font.PLAIN,20));...panel1.add(divide);divide.setFont(new Font("Dialog",Font.PLAIN,20));panel2.setLayout(new GridLayout());panel2.add(result);//画板panel2添加运算结果2.四则运算较为简单的实现了简单的加、减、乘、除运算,主要代码如下:ActionListener equal1 = new ActionListener(){ //实现四则运算public void actionPerformed(ActionEvent e){String str = result.getText();b = DatatypeConverter.parseDouble(str);{if(flag == "+")c = a + b;else if(flag == "-")c = a - b;else if(flag == "*")c = a * b;else if(flag == "/" || b != 0)c = a / b;}if(flag != "=")result.setText("" + c);elseresult.setText("零不能做除数!");a = 0;b = 0;c = 0;flag = "";}};3.其他功能另外添加了平方根,倒数,平方等功能,主要代码如下:平方根运算的实现:ActionListener sqrt1= new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = Math.sqrt(i);result.setText("" + i);}};倒数运算的实现:ActionListener reciprocal1 = new ActionListener(){ public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = 1/i;result.setText("" + i);}};平方运算的实现:ActionListener square1 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = i*i;result.setText("" + i);}};4.程序测试经测试发现本计算器基本功能均能实现,可正常运行计算,针对功能实现的代码部分过于简单,可以对其进行改善提高,方便用户使用!5.实训小结通过对计算器窗体的编写,熟悉了java图形用户界面的设计原理和程序结构,熟悉了java中awt和swing的组合。

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计算器

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class jisuanqi extends JFrame implements ActionListener,ItemListener{//ItemListener用于捕获带有item的组件产生的事件JTextField text;JTextField textMemory;//内存中记录boolean clickable;double memoryd;int memoryi;String copy;public jisuanqi(){super("计算器");setSize(450,230);}public void init(){clickable = true;JPanel pa1=new JPanel();pa1.setBackground(new Color(236,231,210));//设置背景色text=new JTextField("0.",38);//设置文本框长度text.setHorizontalAlignment(JTextField.RIGHT);//从右到左pa1.add("North",text);//面板添加和按钮的设置JPanel pa=new JPanel();JPanel pa2=new JPanel();JButton bt1=new JButton("Backspace");JButton bt2=new JButton("CE");JButton bt3=new JButton("c");bt3.setForeground(Color.red);bt3.setBackground(Color.gray);JButton bt4=new JButton("π");bt1.addActionListener(this);//添加监听器bt2.addActionListener(this);bt3.addActionListener(this);bt4.addActionListener(this);pa2.add(bt1);pa2.add(bt2);pa2.add(bt3);pa2.add(bt4);pa2.setLayout(new GridLayout(1,5));pa.setLayout(new BorderLayout());pa.add(pa2,"North");JPanel p1=new JPanel();p1.setLayout(new GridLayout(5,2));JButton bt5=new JButton("sin");JButton bt6=new JButton("cos");JButton bt7=new JButton("MC");JButton bt9=new JButton("MR");JButton bt11=new JButton("MS");JButton bt13=new JButton("M+");JButton bt12=new JButton("n!");JButton bt14=new JButton("%");JButton bt8=new JButton("x²");JButton bt10=new JButton("x³");bt5.addActionListener(this);//THIS的意思是指调用该类的实例对象bt6.addActionListener(this);bt7.addActionListener(this);bt8.addActionListener(this);bt9.addActionListener(this);bt10.addActionListener(this);bt11.addActionListener(this);bt12.addActionListener(this);bt13.addActionListener(this);bt14.addActionListener(this);p1.add(bt5);p1.add(bt6);p1.add(bt7);p1.add(bt8);p1.add(bt9);p1.add(bt10);p1.add(bt11);p1.add(bt12);p1.add(bt13);p1.add(bt14);pa.add(p1,"West");JPanel p = new JPanel();p.setLayout(new GridLayout(5, 5));String buttons[] = {"tan","cot","sinh","cosh","tanh","7","8","9","/","sqrt","4","5","6","*","Mod","1","2","3","-","1/x" ,"0","+/-",".","+","="};JButton btn[]=new JButton[buttons.length];for (int i = 0; i < buttons.length; i++){addButton(p, buttons[i]);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.addActionListener(this);}//功能的实现public void actionPerformed(ActionEvent evt){String s = evt.getActionCommand();if(s.equals("CE")||s.equals("C")){text.setText("");}////////////////////else if(s.equals("+/-"))//单击"+/-"选择输入的运算数是正数还是负数{ double x;x=Double.parseDouble(text.getText().trim());text.setText(""+(-x));}elseif (s == "sqrt") {String s1 = text.getText();if (s1.charAt(0) == '-'&& clickable == true) {text.setText("负数不能开根号");clickable = false;}elsetext.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(text.getText()))));}else if(s.equals("x²"))//单击了"x²"按钮{ double x;x=Double.parseDouble(text.getText().trim());text.setText(""+(x*x));}else if(s.equals("x³"))//单击了"x³"按钮{ double x;x=Double.parseDouble(text.getText().trim());text.setText(""+(x*x*x));}else if(s.equals("n!"))//单击了"n!"按钮{ double x;double y=1.0;x=Double.parseDouble(text.getText().trim());for(int i=1;i<=x;i++){y*=i;}text.setText(""+y);}else if(s.equals("%"))//单击了"%"按钮{ double x;x=Double.parseDouble(text.getText().trim());text.setText(""+(x*0.01));}else if(s.equals("π"))//单击了"π"按钮{ double x;x=Double.parseDouble(text.getText().trim());x=x*Math.PI;text.setText(""+x);}else if(s.equals("sin"))//单击了"sin"按钮{ double x;x=Double.parseDouble(text.getText().trim()); //获取文本框中内容功能除去字符串开头和末尾的空格或其他字符x=Math.sin(x*Math.PI/180);text.setText(""+x);}else if(s.equals("cos"))//单击了"cos"按钮{ double x;x=Double.parseDouble(text.getText().trim());x=Math.cos(x*Math.PI/180);text.setText(""+x);}else if(s.equals("tan"))//单击了"tan"按钮{ double x;x=Double.parseDouble(text.getText().trim());x=Math.tan(x*Math.PI/180);text.setText(""+x);}else if(s.equals("cot"))//单击了"sin"按钮{ double x;x=Double.parseDouble(text.getText().trim()); //获取文本框中内容功能除去字符串开头和末尾的空格或其他字符x=1/(Math.tan(x*Math.PI/180));text.setText(""+x);}else if(s.equals("sinh"))//单击了"sinh"按钮{ double x;x=Double.parseDouble(text.getText().trim());x=Math.asin(x)*(180/Math.PI);text.setText(""+x);}else if(s.equals("cosh"))//单击了"cosh"按钮{ double x;x=Double.parseDouble(text.getText().trim());x=Math.acos(x)*(180/Math.PI);text.setText(""+x);}else if(s.equals("tanh"))//单击了"tanh"按钮{ double x;x=Double.parseDouble(text.getText().trim());x=Math.atan(x)*(180/Math.PI);text.setText(""+x);}else if(s.equals("1/x"))//单击了"1/X"按钮{ double x;x=Double.parseDouble(text.getText().trim());if(x==0){text.setText("除数不能为零");}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) <= '9' || s1.charAt(i) == '.' ||s1.charAt(i) == '-')) {isNumber = false;break;}if (isNumber == true) {//如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {text.setText("");for (int i = 1; i < s1.length(); i++) {char a = s1.charAt(i);text.setText(text.getText() + a);}}//如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetext.setText('-' + s);}}//计算器有关内存操作//'MC'的操作,将内存清0elseif (s == "MC" && clickable == true) {memoryd = memoryi = 0;textMemory.setText("");}//'MS'的操作,将当前文本框内容保存入内存,显示'M'elseif (s == "MS" && 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());memoryi = 0; //保证存储器中存放最新的值}//如果是int,则存入memoryi(int存储器)else {memoryi = Integer.parseInt(text.getText());memoryd = 0; //保证存储器中存放最新的值}}//'MR'的操作,将存储器中的信息输出elseif (s == "MR" && clickable == true) {if (memoryd != 0)text.setText(Double.toString(memoryd));if (memoryi != 0)text.setText(Integer.toString(memoryi));}//'M+'的功能,将当前文本框里的数据和存储器中数据相加后,再存入存储器elseif (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型数if (isDot == false) //被加数是一个int型数memoryi += Integer.parseInt(text.getText());else { //被加数是一个double型数,则将int存储器中数传入double存储器与当前数相加,int存储器清零memoryd = memoryi + Double.parseDouble(text.getText());memoryi = 0;}}elsememoryd += Double.parseDouble(text.getText());}}elseif ('0' <= s.charAt(0) && s.charAt(0) <= '9' || s.equals(".")){ // text.setText("");if (start)text.setText(s);else text.setText(text.getText() + s);start = false;}else{ if (start){ if (s.equals("-")){ text.setText(s); start = false; }else op = s;}else{double x=Double.parseDouble(text.getText());calculate(x);op = s;start = true;}}}public void calculate(double n){ if (op.equals("+")) arg += n;else if (op.equals("-")) arg -= n;else if (op.equals("*")) arg *= n;else if (op.equals("/")) arg /= n;else if (op.equals("Mod")) arg %= n;else if (op.equals("=")) arg = n;text.setText("" + arg);}private double arg = 0;private String op = "=";private boolean start = true;public void itemStateChanged(ItemEvent e){}public static void main(String args[]){JFrame frame=new JFrame();jisuanqi myMenu=new jisuanqi();myMenu.init();myMenu.setVisible(true);//设置可见}}。

java swing开发案例

java swing开发案例

java swing开发案例1. 计算器应用程序该应用程序使用Java Swing开发,实现了一个简单的计算器功能。

用户可以输入数字和运算符,并通过按下相应的按钮来执行计算操作。

应用程序会将计算结果显示在屏幕上,并允许用户清除当前计算或进行新的计算。

2. 学生成绩管理系统该应用程序使用Java Swing开发,可以帮助学校或老师管理学生的成绩信息。

用户可以添加新的学生、编辑学生信息、输入学生成绩,并可以通过查询功能来查找特定学生的成绩。

应用程序还可以生成成绩报告,以便用户进行分析和评估。

3. 文件浏览器这个应用程序使用Java Swing开发,模拟了一个简单的文件浏览器。

用户可以浏览计算机上的文件和文件夹,并可以通过点击相应的按钮来打开或删除文件。

应用程序还提供了搜索功能,以便用户可以快速找到所需的文件。

4. 图片编辑器这个应用程序使用Java Swing开发,可以帮助用户编辑和处理图片。

用户可以打开图片文件、调整亮度、对比度和饱和度,并可以进行裁剪、旋转和缩放操作。

应用程序还提供了一些滤镜效果,如黑白、模糊和怀旧效果。

5. 音乐播放器这个应用程序使用Java Swing开发,可以帮助用户播放本地音乐文件。

用户可以选择音乐文件并通过点击播放按钮来播放音乐。

应用程序还提供了控制音乐播放的功能,如暂停、停止和调整音量。

6. 电子邮件客户端这个应用程序使用Java Swing开发,可以帮助用户发送和接收电子邮件。

用户可以登录到他们的电子邮件账户,并可以编写和发送电子邮件。

应用程序还可以从服务器上接收新的电子邮件,并将它们显示在收件箱中。

7. 聊天应用程序这个应用程序使用Java Swing开发,可以帮助用户进行在线聊天。

用户可以登录到他们的聊天账户,并可以与其他在线用户进行实时聊天。

应用程序还提供了一些附加功能,如发送文件和创建群聊。

8. 天气预报应用程序这个应用程序使用Java Swing开发,可以帮助用户获取实时天气信息。

java实验报告——简单计算器的编写五篇范文

java实验报告——简单计算器的编写五篇范文

java实验报告——简单计算器的编写五篇范文第一篇:java实验报告——简单计算器的编写JAVA实验报告——简单计算器的编写班级:学号:姓名:一、实验目的1.掌握java图形用户界面(GUI)的设计原理和程序结构2.能设计复核问题要求的图形用户界面程序3.掌握常用组件的事件接口4.应用awt和swing组件进行应用程序设计二、实验条件1.计算机一台2.java软件开发环境三、实验步骤1、编写代码:mport java.awt.*;import java.awt.event.*;import javax.swing.*;public class JCalculator extends JFrame implements ActionListener {private static final long serialVersionUID =-***457Lprivate class WindowCloser extends WindowAdapter {public void windowClosing(WindowEvent we){System.exit(0);}}int i;private final String[] str = { “7”, “8”, “9”, “/”, “4”, “5”, “6”, “*”, “1”,“2”, “3”, “-”, “.”, “0”, “=”, “+” };JButton[] buttons = new JButton[str.length]; JButton reset = new JButton(“CE”); JTextField display = new JTextField(“0”);public JCalculator(){super(“Calculator”);JPanel panel1 = new JPanel(new GridLayout(4, 4)); for(i = 0;i < str.length;i++){buttons[i] = new JButton(str[i]);panel1.add(buttons[i]);}JPanel panel2 = new JPanel(new BorderLayout()); panel2.add(“Center”, display);panel2.add(“East”, reset);getContentPane().setLayout(new BorderLayout()); getContentPane().add(“North”, panel2); getContentPane().add(“Center”, panel1);for(i = 0;i < str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this); addWindowListener(new WindowCloser()); setSize(800, 800);setVisible(true);pack();}public void actionPerformed(ActionEvent e){ Object target = e.getSource();String label = e.getActionCommand();if(target == reset)handleReset();else if(“0123456789.”.indexOf(label)> 0)handleNumber(label);elsehandleOperator(label);}boolean isFirstDigit = true;public void handleNumber(String key){if(isFirstDigit)display.setText(key);else if((key.equals(“.”))&&(display.getText().indexOf(“.”)< 0))display.setText(display.getText()+ “.”);else if(!key.equals(“.”))display.setText(display.getText()+ key);isFirstDigit = false;}public void handleReset(){display.setText(“0”);isFirstDigit = true;operator = “=”;}double number = 0.0;String operator = “=”;public void handleOperator(String key){if(operator.equals(“+”))number += Double.valueOf(display.getText());else if(operator.equals(“-”))number-= Double.valueOf(display.getText());else if(operator.equals(“*”))number *= Double.valueOf(display.getText());else if(operator.equals(“/”))number /= Double.valueOf(display.getText());else if(operator.equals(“=”))number = Double.valueOf(display.getText());display.setText(String.valueOf(number));operator = key;isFirstDigit = true;}public static void main(String[] args){new JCalculator();} }2、运行结果,见截图计算测试:123+456=579结果正确,程序无误。

基于java的简易计算器的设计

基于java的简易计算器的设计

基于java的简易计算器的设计摘要自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了C语言中指针特点,因而变得简单了很多。

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,其具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

本文介绍了用java语言编写一个简易计算器。

实现数学上的加、减、乘、除、乘方、开方、阶乘、正弦、余弦运算等相关运算。

利用这个程序可以方便的进行日常性的小规模运算,小巧简易,是个实用的工具。

关键词:程序设计;简易计算器;java语言THE DESIGN OF SIMPLE CALCULATOR BASED ON JA V AABSTRACTSince the inception of the java language, java language Take irresistible trend soon beca me widespread international popular object-oriented programming language, both with advan ced language features, and less of the C language pointer characteristics, and thus becomes a l ot simpler . Java is a cross-platform application software can write object-oriented programmi ng language, which has excellent versatility, efficiency, platform portability, and security, are widely used in personal PC, data center, gaming consoles, scientific super-computers, mobile phones and the Internet, also has the world's largest developer of professional community. In t he global cloud computing and mobile Internet industry environment, Java and more have sig nificant advantages and broad prospects.This article describes the use java language a simple calculator. Achieve mathematical addition, subtraction, multiplication, division, involution, evolution, factorial, sine, cosine op erations and other related operations. With this program you can easily carry out daily operati ons of small-scale, small simple, is a useful tool.Key words:program design;simple calculator;java language目录1前言 (1)1.1 课程设计背景 (1)1.2 需求环境 (1)1.3 课程设计思路 (1)2课程设计概要 (2)3 计算器详细设计 (3)3.1 计算器界面……….………….........………………………………………. .33.1.1 CAL主类的显示分布 (3)3.1.2计算器显示界面实现代码 (3)3.2 监听各个按钮的类 (5)3.2.1 编写监听类目的 (5)3.2.2 监听类实现代码 (5)3.3 按键响应类 (7)3.3.1 响应类编写的目的 (7)3.2.2 响应类实现代码 (7)3.3 运算处理类 (9)3.3.1 处理方式 . (9)3.2.2 处理类实现代码 (9)4 运行与调试 (12)4.1 进入程序主界面 (12)4.2 加减乘除功能实现 (12)4.3 正余弦、正切功能实现 (13)4.4 阶乘功能实现 (13)4.5 乘方、开方功能实现 (14)5 实验总结 (15)参考文献 (16)附录:源代码 (17)1 前言1.1 课程设计背景日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。

java编写的简单计算器

java编写的简单计算器

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame{private JPanel jp;private JTextField tAdd1,tAdd2,tAdd3,tSub1,tSub2,tSub3,tMul1,tMul2,tMul3,tDiv1,tDiv2,tDiv3;private JLabel tShow,label1,label2,label3,label4,label5,label6,label7,label8;private JButton result,exit;//构造器public Calculator(){super("简易计算器");Init();}//初始化public void Init(){ //显示区tShow=new JLabel(" 感谢使用简易计算器!"); tShow.setBounds(0, 0, 300, 20);//加法区tAdd1=new JTextField(); tAdd2=new JTextField(); tAdd3=new JTextField();label1=new JLabel("+"); label2=new JLabel("=");tAdd1.setBounds(5, 25, 80, 20); label1.setBounds(85, 25, 15, 15);tAdd2.setBounds(100,25,80,20); label2.setBounds(180,25,15,15);tAdd3.setBounds(190,25,130,20);//减法区tSub1=new JTextField(); tSub2=new JTextField(); tSub3=new JTextField();label3=new JLabel("-"); label4=new JLabel("=");tSub1.setBounds(5, 50, 80, 20); label3.setBounds(85, 50, 15, 15);tSub2.setBounds(100,50,80,20); label4.setBounds(180,50,15,15);tSub3.setBounds(190,50,130,20);//乘法区tMul1=new JTextField(); tMul2=new JTextField(); tMul3=new JTextField();label5=new JLabel("*"); label6=new JLabel("=");tMul1.setBounds(5, 75, 80, 20); label5.setBounds(85,75, 15, 15);tMul2.setBounds(100,75,80,20); label6.setBounds(180,75,15,15);tMul3.setBounds(190,75,130,20);//除法区tDiv1=new JTextField(); tDiv2=new JTextField(); tDiv3=new JTextField();label7=new JLabel("/"); label8=new JLabel("=");tDiv1.setBounds(5, 100, 80, 20); label7.setBounds(85,100, 15, 15);tDiv2.setBounds(100,100,80,20); label8.setBounds(180,100,15,15);tDiv3.setBounds(190,100,130,20);result=new JButton("开始计算");result.setBounds(10,140,100,40);exit=new JButton("退出");exit.setBounds(180,140,100,40);jp=(JPanel)this.getContentPane();jp.setLayout(null);jp.add(tShow); jp.add(tAdd1); jp.add(label1); jp.add(tAdd2); jp.add(label2); jp.add(tAdd3);jp.add(tSub1); jp.add(label3); jp.add(tSub2); jp.add(label4); jp.add(tSub3); jp.add(tMul1);jp.add(tMul2); jp.add(label5); jp.add(tMul3); jp.add(label6); jp.add(tDiv1); jp.add(label7);jp.add(tDiv2); jp.add(label8); jp.add(tDiv3); jp.add(result); jp.add(exit);//动作事件exit.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});result.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){Double d = null;String a=null,b=null;a=tAdd1.getText(); b=tAdd2.getText();if(!a.isEmpty()&&!b.isEmpty()) //if(a!=null&b!=null&&a!=""&b!="")不行{d=Double.parseDouble(a)+Double.parseDouble(b);tAdd3.setText(d+""); //将d转换为字符串型// tAdd3.setText(String.valueOf(d));}a=tSub1.getText(); b=tSub2.getText();if(!a.isEmpty()&&!b.isEmpty()){d=Double.parseDouble(a)-Double.parseDouble(b);tSub3.setText(d+"");}a=tMul1.getText(); b=tMul2.getText();if(!a.isEmpty()&&!b.isEmpty()){d=Double.parseDouble(a)*Double.parseDouble(b);tMul3.setText(d+"");}a=tDiv1.getText(); b=tDiv2.getText();if(!a.isEmpty()&&!b.isEmpty()){d=Double.parseDouble(a)/Double.parseDouble(b);tDiv3.setText(String.valueOf(d));}}});}//主函数public static void main(String[] args){Calculator cal=new Calculator();cal.setVisible(true);cal.setResizable(false);cal.setSize(330,230);cal.setLocationRelativeTo(null);cal.setDefaultCloseOperation(EXIT_ON_CLOSE);}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
bMul.addActionListener(this);
bDiv.addActionListener(this);
bPoint.addActionListener(this);
bEqual.addActionListener(this);
bSqrt.addActionListener(this);
public Counter()
{
super("计算器");
t.setEditable(false);
for(int i=0;i<10;i++)//利用for循环将数字键添加进p1中
{
b[i]=new Button(String.valueOf(i));
p1.add(b[i]);
b[i].setActionCommand("number");
}
else if(e.getActionCommand().equals("平方"))
{
double f=Math.pow(Double.parseDouble(str1),2);
str1=String.valueOf(f);
t.setText(String.valueOf(f));
first=false;
b[i].addActionListener(this);//调用addActionListener()方法注册事件监听器
}
p1.add(bPoint);
bPoint.setActionCommand("number");
p1.add(bAdd); //数字键,符号键放置在panel的p1中
p1.add(bSub);
p1.add(bMul);
p1.add(bDiv);
p1.add(bEqual);
p2.add(bSqrt);//开方键,平方键,清除键放置在panel的p2中
p2.add(bPow);
p2.add(bNull);
bAdd.setActionCommand("oper");
bSub.setActionCommand("oper");
}
else if(e.getActionCommand().equals("清除"))
{
str1="";//清空
str2="";
t.setText("");//将文本框清空
countOper=0;//将按键计数器清零
first=true;
error=false;
}
else if(e.getActionCommand().equals("="))
实验总结:
事件监听器及布局管理器的基础知识要熟练掌握
实验成绩
{
str2=str2+temp.getLabel();
t.setText(str2);//将输入的str2显示在文本框中
}
}
else if(e.getActionCommand().equals("oper"))
{
if(str1=="")//如果还没有输入数就点击运算符执行if
{
countOper=0;//若此,则将计数清零
add(p2,"South");//将p2添加到South中
setLocation(400,200);//设计按钮尺寸
setSize(200,200);//设计窗口尺寸
setBackground(new Color(20,200,10));//设置Frame的背景,默认为白色
setVisible(true);//设置Frame设置为可见
bNull.addActionListener(this);
bPow.addActionListener(this);
p1.setLayout(new GridLayout(4,4,5,5));//网格布局管理器,把容器根据行数和列数分成同样大小的单元,每个单元可容纳一个组件,并且此组件会填满网格单元,不能控制其占据网格的大小。4、4为网格的行、列数。5、5为组建之间的间距
{
double d=Math.sqrt(Double.parseDouble(str1));
str1=String.valueOf(d);//将计算出来的结果再次传给str1,为连计算准备
t.setText(String.valueOf(d));//将计算出来的结果传至文本框中
first=false;//置为false,即已输入第一个数
{
result=num1*num2;
}
else if(operator.equals("÷"))
{
if(num2==0.0) //除数为0的处理方法
{
error=true;
}
else
{
result=num1/num2;
}
}
if(error)
{
t.setText("error");
}
else
{
t.setText(String.valueOf(result));
first=true;
}
else
{
countOper++;//计算输入符号的个数
if(countOper>1)//若输入的符号个数多余一个,则可以进行计算
{
getResult();
}
operator=temp.getLabel();//存放加减乘除以及开方、平方的符号
first=false;
}
}
else if(e.getActionCommand().equals("开方"))
Button bPow=new Button("平方");
Button bNull=new Button("清除");
String str1=""; //str1和str2存放两个输入的数
String str2="";
String operator=null; //存放加减乘除以及开平方的符号
boolean first=true; //检验输入的是否为第一个数
Button bSub=new Button("-");
Button bMul=new Button("×");
Button bPoint=new Button(".");
Button bDiv=new Button("÷");
Button bEqual=new Button("=");
Button bSqrt=new Button("开方");
addWindowListener(new WindowAdapter(){ //关闭窗口功能
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
//实现接口ActionListener
public void actionPerformed(ActionEvent e)
int countOper=0; //累计输入符号的个数,连加连减等操作中会用到
double result=0.0; //暂存结果
double num1=0.0,num2=0.0; //两个输入的数做运算时转化为double存放
boolean error=false; //检验除数是否为0
//构造方法
设计性综合性实验
实验课题名称:简易计算器
院系:计算机科学与技术专业:
课程:java程序设计与案例教师:学号:姓名:
09至10学年度下学期
实验名称:简易计算器
实验性质:设计性(√ ) 综合性( )
实验器材:
PC机一台,JCreator软件
实验目的:
用java语言编写一个简易计算器
实验任务:
该计算器应具有加,减,乘,除,开方,平方,等于,清除等功能;
{
Button temp=(Button)e.getSource();
if(e.getActionCommand().equals("number"))
{
if(first)
{
str1=str1+temp.getLabel();
t.setText(str1);//将输入的str1显示在文本框中
}
else
Panel p1=new Panel();//new一个panel,用于存放数字键和符号键。
Panel p2=new Panel();//new一个panel,用于存放开方、平方、和清除键。
Button[] b=new Button[10];//创建对象Button
Button bAdd=new Button("+");//实例化Button对象
str1=String.valueOf(result); //运算后把结果放入str1中,str2清空,为连加连减等操作做准备
str2="";
}
}
//主方法
public static void main(String[] args)
{
new Counter();//创建一个对象"计算器"
}
}
运行结果:
num2=Double.parseDouble(str2);
相关文档
最新文档