iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java实现简单计算器小程序
  • 800
分享到

Java实现简单计算器小程序

2024-04-02 19:04:59 800人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了Java实现简单计算器小程序的具体代码,供大家参考,具体内容如下 这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的

本文实例为大家分享了Java实现简单计算器小程序的具体代码,供大家参考,具体内容如下

这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的计算器练练。

由于期末来了,没太多时间,所以暂时就实现最简单的功能。

个人不喜欢用大量文字记叙程序,而且该程序也相对简单,所以直接画了张程序框架图,再配合代码的注释,就明白程序的原理了。

图 计算器程序框架

代码如下:


package tst.jframe;
 
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Font;
import javax.swing.SwinGConstants;
 
public class javaAP {
 
 
 private JFrame frame;
 private JTextField result;
 private JButton button_1;
 private JButton button_2;
 private JButton button_3;
 private JButton button_4;
 private JButton button_5;
 private JButton button_6;
 private JButton button_7;
 private JButton button_8;
 private JButton button_9;
 private JButton button_0;
 private JButton Button_equal;
 private JButton button_dot;
 private JButton button_d0;
 private JButton button_plus;
 private JButton button_sub;
 private JButton button_clr;
 private JButton button_dlt;
 private JButton button_mul;
 private JButton button_div;
 
 
 private boolean numflag = false;     //用于标识是否输入数字
 private boolean opflag = false;   //用于标识是否输入运算操作符
 private String txt = null;    //显示结果的文本框的文本内容,用于存放计算结果的字符串形式
 private String num_txt = "";   //每次输入一个数,以字符的形式加到该字符创变量,后面运算直接将该字符创转成double类型进行运算
 private String op = " ";    //存放输入的运算操作符
 private double num1 = 0;    //num1和num2用作运算 
 private double num2 = 0;
 
 
 
 public static void main(String[] args) {
  EventQueue.invokeLater(new Runnable() {
   public void run() {
    try {
     javaAP window = new javaAP();
     window.frame.setVisible(true);
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  });
 }
 
 
 public javaAP() {
  initialize();
 }
 
 
 
 private void initialize() {
  frame = new JFrame();                                   //-----------------------------------------------
  frame.setResizable(false);        //
  frame.setBounds(100, 100, 371, 371);     // 窗口各个属性的初始化
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //
  frame.getContentPane().setLayout(null);     //-----------------------------------------------
  
  result = new JTextField();        //-----------------------------------------------
  result.setFont(new Font("Lao UI", Font.BOLD, 15));  //
  result.setHorizontalAlignment(SwingConstants.RIGHT);    //
  result.setBounds(29, 28, 308, 50);      //  显示结果的文本框的各个属性的初始化
  frame.getContentPane().add(result);      //
  result.setColumns(10);         //
  result.setText(txt);         //-----------------------------------------------
  
  
  
  
  button_0 = new JButton("0");
  button_0.addActionListener(new ActionListener() {
   public void actionPerfORMed(ActionEvent e) {
    numBtnAction("0");
   }
  });
  button_0.setBounds(99, 273, 50, 50);
  frame.getContentPane().add(button_0);
  
  button_1 = new JButton("1");
  button_1.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
     numBtnAction("1");
   }
  });
  button_1.setBounds(99, 213, 50, 50);
  frame.getContentPane().add(button_1);
  
  button_2 = new JButton("2");
  button_2.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
     numBtnAction("2");
   }
  });
  button_2.setBounds(159, 213, 50, 50);
  frame.getContentPane().add(button_2);
  
  button_3 = new JButton("3");
  button_3.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    numBtnAction("3");
   }
  });
  button_3.setBounds(219, 213, 50, 50);
  frame.getContentPane().add(button_3);
  
  button_4 = new JButton("4");
  button_4.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    numBtnAction("4");
   }
  });
  button_4.setBounds(99, 157, 50, 50);
  frame.getContentPane().add(button_4);
  
  button_5 = new JButton("5");
  button_5.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    numBtnAction("5");
   }
  });
  button_5.setBounds(159, 157, 50, 50);
  frame.getContentPane().add(button_5);
  
  button_6 = new JButton("6");
  button_6.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    numBtnAction("6");
   }
  });
  button_6.setBounds(219, 157, 50, 50);
  frame.getContentPane().add(button_6);
  
  button_7 = new JButton("7");
  button_7.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    numBtnAction("7");
   }
  });
  button_7.setBounds(99, 97, 50, 50);
  frame.getContentPane().add(button_7);
  
  button_8 = new JButton("8");
  button_8.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    numBtnAction("8");
   }
  });
  button_8.setBounds(159, 97, 50, 50);
  frame.getContentPane().add(button_8);
  
  button_9 = new JButton("9");
  button_9.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    numBtnAction("9");
   }
  });
  button_9.setBounds(219, 97, 50, 50);
  frame.getContentPane().add(button_9);
    
  button_dot = new JButton(".");
  button_dot.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    numBtnAction(".");
   }
  });
  button_dot.setFont(new Font("宋体", Font.BOLD, 15));
  button_dot.setBounds(159, 273, 50, 50);
  frame.getContentPane().add(button_dot);
  
  button_d0 = new JButton("00");
  button_d0.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    numBtnAction("00");
   }
  });
  button_d0.setBounds(219, 273, 50, 50);
  frame.getContentPane().add(button_d0);
  
  
  
  Button_equal = new JButton("=");
  Button_equal.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    if(opflag == true){
     num2 = Double.parseDouble(num_txt);  //如果此时opflag为true的话,证明已经输入运算符,这时候刚输入的数为另外一个操作数,所以赋给num2。
     calc(op);       //num1和num2进行运算。
    }
    result.setText(new Double(num1).toString());   //显示结果。
   }
  });
  Button_equal.setBounds(279, 213, 50, 110);
  frame.getContentPane().add(Button_equal);
  
  button_plus = new JButton("+");
  button_plus.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    opBtnAction("+");
   }
  });
  button_plus.setBounds(279, 97, 50, 50);
  frame.getContentPane().add(button_plus);
  
  button_sub = new JButton("-");
  button_sub.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    opBtnAction("-");
   }
  });
  button_sub.setBounds(279, 157, 50, 50);
  frame.getContentPane().add(button_sub);
  
  button_mul = new JButton("*");
  button_mul.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    opBtnAction("*");
   }
  });
  button_mul.setBounds(39, 157, 50, 50);
  frame.getContentPane().add(button_mul);
  
  button_div = new JButton("/");
  button_div.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    opBtnAction("/");
   }
  });
  button_div.setBounds(39, 97, 50, 50);
  frame.getContentPane().add(button_div);
  
  
  
  button_clr = new JButton("clr");
  button_clr.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    result.setText(null);        //清楚文本框和num_txt,num1和num2全部置为0,
    txt = null;          //numflag和opflag均置为false,全部置为程序开始的默认值。
    numflag = opflag = false;
    num1 = num2 = 0;
    num_txt = "";
   }
  });
  button_clr.setBounds(39, 273, 50, 50);
  frame.getContentPane().add(button_clr);
  
  button_dlt = new JButton("dlt");
  button_dlt.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    if(num_txt != "" && num_txt.length() > 0) {
     num_txt = num_txt.substring(0, num_txt.length() - 1);  //通过截取字符串的方式回删一个字符
    }
    if(txt != null && txt.length() > 0) {
     txt = result.getText().substring(0,txt.length() - 1);  //结果文本框的回删
     result.setText(txt);
    }
   }
  });
  button_dlt.setBounds(39, 213, 50, 50);
  frame.getContentPane().add(button_dlt);
   
 }
 
 
 private void numBtnAction(String num) { 
  if(num_txt == "" && opflag == false) {    //判断是否num_txt是否为空,opflag是否为false,若满足这两个
   result.setText(null);      //条件,则为一次运算完毕,切新运算不以该次结果继续做运算。
   num_txt = "";
  } 
  numflag = true;         //只要输入一个数,则把numflag置为true,表示已有数字输入
  num_txt += num;         //把输入的数加入到最终要转换成都double运算的字符串
  txt = result.getText() + num;     //加到txt,使输入的数显示到文本框中。
  result.setText(txt);
  
 }
 
 
 private void opBtnAction(String operator) {
  
 
  if(opflag == false && num_txt != "") {   //进行判断,如果opflag为false,则表示还没输入运算符,         
   num1 = Double.parseDouble(num_txt);   //这个时候把num_txt转换成double赋给num1。
  }
  if(opflag == true && num_txt != ""){
   num2 = Double.parseDouble(num_txt);   //如果opflag为true,表示第一个数输入完毕,且已输入相应的运算符,这个时候是在输入第二个要参与运算的数,则加到num2
   calc(op);         //先计算两数结果,赋给num1,num2置为0,以便后面多层混合运算使用。
  }
  numflag = false;        //numflag置为0,表示当前需要输入数进行运算
  op = operator;         //把新输入的运算符赋给op
  result.setText(operator + " ");     //在文本框显示
  opflag = true;         //opflag置为true,表示当前已输入一个或多个操作数。
  num_txt = "";         //num_txt置为空,为了存储下一个操作数。
 }
 
 
 private void calc(String op) {
  switch(op){
  case "+" : 
       num1 = num1 + num2;
       num2 = 0;
       opflag = false;
       num_txt = "";
       break;
       
  case "-" :
       num1 = num1 - num2;
       num2 = 0;
       opflag = false;
       num_txt = "";
       break;
       
  case "*" :
     if(num2 != 0) {
      num1 = num1 * num2;
      num2 = 0;
      opflag = false;
      num_txt = "";
     }
     break;
     
  case "/" : 
     if(num2 != 0) {
      num1 = num1 / num2;
      num2 = 0;
      opflag = false;
      num_txt = "";
     } 
     break;
     
  default:   opflag = false;
       num_txt = "";
       break;
  }
 }
}

关于计算器的精彩文章请查看《计算器专题》 ,更多精彩等你来发现!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Java实现简单计算器小程序

本文链接: https://www.lsjlt.com/news/130764.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实现简单计算器小程序
    本文实例为大家分享了Java实现简单计算器小程序的具体代码,供大家参考,具体内容如下 这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的...
    99+
    2024-04-02
  • JavaScript实现简单计算器小程序
    本文实例为大家分享了JavaScript实现简单计算器的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html> <h...
    99+
    2024-04-02
  • 小程序实现简单的计算器
    本文实例为大家分享了小程序实现简单计算器的具体代码,供大家参考,具体内容如下 #app.json { "pages": [ "pages/index/index",...
    99+
    2024-04-02
  • C#实现简单的计算器小程序
    作为一个程序员,如何从浅入深的训练自己的技术,可以通过一些小程序来训练下面简单介绍一下如何制作一个简单的计算器小程序 如下为制作之后的小程序截图 代码段 其中计算用了dataTab...
    99+
    2024-04-02
  • 微信小程序实现简单计算器
    微信小程序写的简单计算器,供大家参考,具体内容如下 jisaunqi.js // pages/jisuanqi/jisuanqi.js Page({ data: {...
    99+
    2024-04-02
  • 小程序如何实现简单的计算器
    本篇内容介绍了“小程序如何实现简单的计算器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果如下:#app.json{  ...
    99+
    2023-06-08
  • 微信小程序实现简单计算器功能
    微信小程序:简单计算器,供大家参考,具体内容如下 对于才接触小程序不久的人来说,想要直接上手一个实用性强的项目难度很大,想要快速熟悉小程序的使用,我们可以先尝试着做一个简单的计算器。...
    99+
    2024-04-02
  • 微信小程序实现简单的计算器功能
    本文实例为大家分享了微信小程序实现计算器功能的具体代码,供大家参考,具体内容如下 wxml <view class='content'> <input va...
    99+
    2024-04-02
  • 怎么用C#实现简单的计算器小程序
    这篇文章主要介绍“怎么用C#实现简单的计算器小程序”,在日常操作中,相信很多人在怎么用C#实现简单的计算器小程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C#实现简单的计算器小程序”的疑惑有所帮助!...
    99+
    2023-06-29
  • 微信小程序实现简单计算器与秒表
    本文实例为大家分享了微信小程序实现简单计算器与秒表的具体代码,供大家参考,具体内容如下 实验内容: 任务一:实现一个简单的加减乘除运算。 首先输入两个运算数,然后选择加、减、乘、除四...
    99+
    2024-04-02
  • java gui实现计算器小程序
    本文实例为大家分享了java gui实现计算器小程序的具体代码,供大家参考,具体内容如下 废话不多说 , 直接贴代码 , 有详细的注释 , 我也是刚学GUI没多久 这个是效果图 : ...
    99+
    2024-04-02
  • 微信小程序实现简易计算器
    微信小程序之简易计算器,供大家参考,具体内容如下 一、介绍 1.中缀表达式 中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间。中缀表达式是人们常用的算术...
    99+
    2024-04-02
  • java 简单的计算器程序实例代码
    java 简单的计算器程序实现实例:import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator { public...
    99+
    2023-05-31
    java 计算器 ava
  • 基于Java实现简单的身材计算程序
    目录效果展示完整代码效果展示 完整代码 代码比较简单,也有注释,就不再详细做介绍啦。 import java.util.Scanner; public class Main e...
    99+
    2022-12-21
    Java身材计算程序 Java身材计算 Java身材
  • 微信小程序如何实现简单的计算器功能
    这篇文章主要介绍微信小程序如何实现简单的计算器功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下wxml<view class='content'> &nb...
    99+
    2023-06-20
  • iOS实现简单计算器小功能
    本文实例为大家分享了iOS实现简单计算器小功能的具体代码,供大家参考,具体内容如下 SimpleCaculatorViewController.h // //  SimpleCac...
    99+
    2024-04-02
  • JavaScript实现简单计算器小功能
    本文实例为大家分享了JavaScript实现简单计算器的具体代码,供大家参考,具体内容如下 此例为简单的计算器: 代码示例: <!DOCTYPE html> <h...
    99+
    2024-04-02
  • Java实现一个简单计算器
    先来看看界面效果: 源码如下: package test1;   import java.awt.Frame; import java.awt.TextField; import ...
    99+
    2024-04-02
  • 微信小程序实现简易加法计算器
    本文实例为大家分享了微信小程序实现加法计算器的具体代码,供大家参考,具体内容如下 wxml <!--pages/cal/cal.wxml--> <view cla...
    99+
    2024-04-02
  • Java实现小程序简单五子棋
    本程序适用于java初学者巩固类与对象、事件响应、awt包中各种工具的相关概念以及对逻辑能力的锻炼 需要注意的有: ①要加入java界面的重绘(基本原则) ②由...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作