Java课设-百行代码实现简易计算器

这篇具有很好参考价值的文章主要介绍了Java课设-百行代码实现简易计算器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

                                         成绩: __________

Java程序设计
工程实践

——简易计算器的设计

院、 系 计算机与软件学院 专业 信息安全
姓 名
指导教师

2022年 6 月 11 日

目录:
一、 设计简介 2
1、 设计背景 2
2、 开发工具及环境 2
(1)开发工具及介绍 2
(2)开发环境 2
二、 相关工作 2
1、设计基础 2
2、功能需求 2
3、系统设计 3
三、 设计原理 3
1、包和类的说明 3
2、简易计算器的源代码清单 3
四、 实现结果 6
1、程序界面 6
2、测试用例 7
3、运行结果 7
五、 设计心得 9

一、 设计简介
1、 设计背景
伴随着日益升高的物质生活水平以及日常生活中对基本的计算需求的提高。如今,网络快速发展,对算力的需求日益增大,计算的效率和性能和人们的生活紧密相关。对此,使用Java语言开发出一个为人们生活带来便利的计算器,以期带来对数据计算的提高。该系统实现了对数的加、减、乘、除的运算。
2、 开发工具及环境
(1)开发工具及介绍
Visual Studio Code(简称“VS Code” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器, [2] 可在桌面上运行,并且可用于Windows,macOS和Linux。它具有对JavaScript,TypeScript和Node.js的内置支持,并具有丰富的其他语言(例如C++,C#,Java,Python,PHP,Go)和运行时(例如.NET和Unity)扩展的生态系统。
(2)开发环境:window10系统、Visual Studio Code1.67.2、JDK17.0.2。
二、 相关工作
1、设计基础
使用Java Swing的GUI图形用户界面编程设计编写一个简易的计算器,加入事件监听器可以通过鼠标输入参加运算的数值和运算符,达到四则运算的目的。
2、功能需求
图形化用户界面,设计的简易计算器,用户通过鼠标依次输入参与计算的数值和运算符,进行四则运算,具体如下:
(1) 鼠标单击“计算器”上的数字按钮(0、1、2、3、4、5、6、7、8、9)累次可以设置参与运算的数值
(2) 鼠标单击“计算器”上的运算符按钮(+、-、*、/)选择运算符同时,保存之前的数,并情况输入栏,以便后续输入。
(3) 鼠标单击“计算器”上的“=”按钮,输出运算的结果。
(4) 鼠标单击“计算器”上的“clear”按钮,可以清除输入框内的数字。
3、系统设计
一个简易的计算器,主要由界面组件、组件事件监听器以及处理程序组成,如图2-1。实现其功能具体可分如下几个步骤:
(1) 创建Java项目(此版本为17.0.2的JDK)
(2) 创建框架、面板以及初始化
(3) 创建UI组件,并将其添加到相应面板中
(4) 注册监听器、添加事件响应逻辑
(5) 计算逻辑实现

三、 设计原理
1、包和类的说明
package start;\保存主要功能实现代码的包
package util;\保存常量的包
public class Const\自定义保存常量的类
public class calculator \自定义实现计算器主要功能的类
2、简易计算器的源代码清单
①导入组件

package start;
import javax.swing.*;
import util.Const;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

②创建Const类的部分代码

public class Const {
    public static final int FRAME_W = 300;//得到窗体中心点
    public static final int FRAME_H = 300;
    public static final int SCREEN_W = Toolkit.getDefaultToolkit().getScreenSize().width;
    public static final int SCREEN_H = Toolkit.getDefaultToolkit().getScreenSize().height;

    public static final int Frame_X = (SCREEN_W-FRAME_W)/2;
    public static final int Frame_Y = (SCREEN_H-FRAME_H)/2;

    public static final String TITLE = "计算器";
}
 ③calculator类中的部分代码
public class calculator extends JFrame implements ActionListener{
    /**********************北面的控件***********************/
    private JPanel jp_north = new JPanel();
    private JTextField input_text = new JTextField();
    private JButton c_Btn = new JButton("Clear");
     /**********************中间的控件***********************/
     private JPanel jp_center = new JPanel();
     public calculator() throws HeadlessException{//显示窗体
        this.init();
        this.addNorthComponent();
        this.addCenterButton();
    }
    //初始化的方法
    public void init(){
        this.setTitle(Const.TITLE);
        this.setSize(Const.FRAME_W, Const.FRAME_H);
        this.setLayout(new BorderLayout());
        this.setResizable(false);
        this.setLocation(Const.Frame_X,Const.Frame_Y);//设置框架在屏幕的位置
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭键
    }
    //主方法
    public static void main(String[] args) {
        calculator Calculator = new calculator();
        Calculator.setVisible(true);
    }

}
④添加控件和按钮的代码
    //添加北面的控件
    public void addNorthComponent(){
        this.input_text.setPreferredSize(new Dimension(200,30));//设置文本框大小
        jp_north.add(input_text);//加文本框

        this.c_Btn.setForeground(Color.RED);//设置按钮颜色
        jp_north.add(c_Btn);//加按钮
        c_Btn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                input_text.setText("");
            }
        });

        this.add(jp_north,BorderLayout.NORTH);//将面板加到框架北侧
    }
    //添加中间按钮
    public void addCenterButton(){
        String btn_text = "123+456-789*0.=/";
        String regex = "[\\+\\-*/.=]";//正则表达式
        this.jp_center.setLayout(new GridLayout(4,4));//4*4的布局
        for(int i=0;i<16;i++){//在面板中加按钮
            String tmp  = btn_text.substring(i,i+1);
            JButton btn = new JButton();
            btn.setText(tmp);//给按钮加文字
            if(tmp.matches(regex)){//如果正则匹配
                    btn.setFont(new Font("粗体",Font.BOLD,20));
                    btn.setForeground(Color.RED);
                }
            btn.addActionListener(this);//添加按钮监听器
            jp_center.add(btn);
        }
        this.add(jp_center,BorderLayout.CENTER);//将面板加载框架布局的中间位置
    }
⑤添加事件监听器和逻辑运算代码
    private String firstInput = null;
    private String operator = null;
    //给按钮添加监听事件
    public void actionPerformed(ActionEvent e){
        String clickStr = e.getActionCommand();
        if(".0123456789".indexOf(clickStr)!=-1){//数字输入
            this.input_text.setText(input_text.getText() + clickStr);
            this.input_text.setHorizontalAlignment(JTextField.RIGHT);
        }
        else if(clickStr.matches("[\\+\\-*/]{1}")){//运算符输入
            operator = clickStr;
            firstInput = this.input_text.getText();
            this.input_text.setText("");
        }
        else if(clickStr.equals("=")){//等号输入
            Double a = Double.valueOf(firstInput);
            Double b = Double.valueOf(this.input_text.getText());
            Double res = null;
            switch (operator){//运算主体
                case "+":
                res = a + b;
                break;
                case "-":
                res = a - b;
                break;
                case "*":
                res = a * b;
                break;
                case "/":
                if(b!=0){
                    res = a/b;
                }
                else{
                    this.input_text.setText("除数不能为0!请清空!");
                }
                break;
            }
            this.input_text.setText(res.toString());
        }
    }

四、 实现结果
1、程序界面
简易计算器运行界面,如图3-1所示。
Java课设-百行代码实现简易计算器

图3-1 计算器运行界面
2、测试用例
(1)清除当前输入的数值,例如:计算7+23,输出结果为30.0。
(2)清除当前输入的数值,例如:计算7-23,输出结果为-16.0。
(3)清除当前输入的数值,例如:计算7*23,输出结果为161.0。
(4)清除当前输入的数值,例如:计算7/23,输出结果为0.30434782608695654。
3、运行结果
(1)输入7和23,进行加法运算,如图3-2、图3-3和图3-4所示。下面只输出结果。
Java课设-百行代码实现简易计算器

图3-2 输入 7
Java课设-百行代码实现简易计算器

图 3-3 输入 23
Java课设-百行代码实现简易计算器

图3-4 结果显示为 30.0

(2)输入7和23,进行减法运算,如图3-5所示。
Java课设-百行代码实现简易计算器

图3-5 “7-23”结果显示为 -16.0

(3)输入7和23,进行乘法运算,如图3-6所示
Java课设-百行代码实现简易计算器

图3-6 “7*3”结果显示为161.9

(4)输入7和23,进行除法运算,如图3-7所示。
Java课设-百行代码实现简易计算器

图3-7“7/23”结果显示为0.30434782608695654
五、 设计心得
从我的角度出发,课设的目的在于使学生养成综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生在实际场景下能力的具体训练和考察过程。伴随着科学技术的快速发展,当今计算机的应用在生活中可以说是处处都有。
在课程设计过程中我遇到许多的问题,通过网上的查询,和同学的热心帮助,最终我成功的完成了这次课程设计。在这其中我充分理解了Java面对对象的特性,并体会到Java与C\C++语言的不同之处。只有多动手,经常编写程序,才能发现我们学习上的缺陷和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。通过本课程的设计,我了解到理论与实践的结合非常重要,简单的理论知识远远不够,只有将所获得的理论知识与实践相结合,从理论中得出结论,才能真正服务于社会,发展我的实践技能和能力。 这次编写的程序大部分功能是通过调用各包中的方法和类来实现的,这也让我充分理解了包和类之间的关系。
由于这次编写的程序是我初次使用Java编写,会遇到很多小问题,比如说:如何保存输入的数字和下一个数进行加、减、乘、除运算。此次课程设计让我们更了解Java中的图形用户界面和它的编程方式。在完成课题的过程中,查阅了很多关于Java语言开发的资料,不断地充实了自己,学习到了很多以前没有学习到的知识,收获颇多。Java 计算器设计使得我们对所学的课程有了更为深刻的认识,使得知识得到了巩固和提高。
今后,我将会继续努力;我相信,只要有信心,有毅力,人永远不会被打败!
完整源码文章来源地址https://www.toymoban.com/news/detail-443795.html

package util;
import java.awt.*;

public class Const {
    public static final int FRAME_W = 300;//得到窗体中心点
    public static final int FRAME_H = 300;
    public static final int SCREEN_W = Toolkit.getDefaultToolkit().getScreenSize().width;
    public static final int SCREEN_H = Toolkit.getDefaultToolkit().getScreenSize().height;

    public static final int Frame_X = (SCREEN_W-FRAME_W)/2;
    public static final int Frame_Y = (SCREEN_H-FRAME_H)/2;

    public static final String TITLE = "计算器";
}

package start;
import javax.swing.*;
import util.Const;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class calculator extends JFrame implements ActionListener{
    /**********************北面的控件***********************/
    private JPanel jp_north = new JPanel();
    private JTextField input_text = new JTextField();
    private JButton c_Btn = new JButton("Clear");
     /**********************中间的控件***********************/
     private JPanel jp_center = new JPanel();
     public calculator() throws HeadlessException{//显示窗体
        this.init();
        this.addNorthComponent();
        this.addCenterButton();
    }
    //初始化的方法
    public void init(){
        this.setTitle(Const.TITLE);
        this.setSize(Const.FRAME_W, Const.FRAME_H);
        this.setLayout(new BorderLayout());
        this.setResizable(false);
        this.setLocation(Const.Frame_X,Const.Frame_Y);//设置框架在屏幕的位置
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭键
    }
    //添加北面的控件
    public void addNorthComponent(){
        this.input_text.setPreferredSize(new Dimension(200,30));//设置文本框大小
        jp_north.add(input_text);//加文本框

        this.c_Btn.setForeground(Color.RED);//设置按钮颜色
        jp_north.add(c_Btn);//加按钮
        c_Btn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                input_text.setText("");
            }
        });

        this.add(jp_north,BorderLayout.NORTH);//将面板加到框架北侧
    }
    //添加中间按钮
    public void addCenterButton(){
        String btn_text = "123+456-789*0.=/";
        String regex = "[\\+\\-*/.=]";//正则表达式
        this.jp_center.setLayout(new GridLayout(4,4));//4*4的布局
        for(int i=0;i<16;i++){//在面板中加按钮
            String tmp  = btn_text.substring(i,i+1);
            JButton btn = new JButton();
            btn.setText(tmp);//给按钮加文字
            if(tmp.matches(regex)){//如果正则匹配
                    btn.setFont(new Font("粗体",Font.BOLD,20));
                    btn.setForeground(Color.RED);
                }
            btn.addActionListener(this);//添加按钮监听器
            jp_center.add(btn);
        }
        this.add(jp_center,BorderLayout.CENTER);//将面板加载框架布局的中间位置
    }
    private String firstInput = null;
    private String operator = null;
    //给按钮添加监听事件
    public void actionPerformed(ActionEvent e){
        String clickStr = e.getActionCommand();
        if(".0123456789".indexOf(clickStr)!=-1){//数字输入
            this.input_text.setText(input_text.getText() + clickStr);
            this.input_text.setHorizontalAlignment(JTextField.RIGHT);
        }
        else if(clickStr.matches("[\\+\\-*/]{1}")){//运算符输入
            operator = clickStr;
            firstInput = this.input_text.getText();
            this.input_text.setText("");
        }
        else if(clickStr.equals("=")){//等号输入
            Double a = Double.valueOf(firstInput);
            Double b = Double.valueOf(this.input_text.getText());
            Double res = null;
            switch (operator){//运算主体
                case "+":
                res = a + b;
                break;
                case "-":
                res = a - b;
                break;
                case "*":
                res = a * b;
                break;
                case "/":
                if(b!=0){
                    res = a/b;
                }
                else{
                    this.input_text.setText("除数不能为0!请清空!");
                }
                break;
            }
            this.input_text.setText(res.toString());
        }
    }

    //主方法
    public static void main(String[] args) {
        calculator Calculator = new calculator();
        Calculator.setVisible(true);
    }

}

到了这里,关于Java课设-百行代码实现简易计算器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java 简易计算器

    1.使用Java图形界面组件设计软件,界面如图所示。 2.软件能够满足基本的“加、减、乘、除”等运算要求。 3.程序代码清晰,语法规范,结构合理,逻辑正确。 先分析,计算器大概是由三个大部分组成的:菜单栏,显示框,按钮。 所以定义一个类cal继承JFrame。 我们定义完后

    2024年02月01日
    浏览(48)
  • JAVA简易计算器

    1.C是清除键,功能是将之前所输入的数字、计算结果等信息全部归零 2.CE,清除当前输入的数据或符号 3.单击MS存储当前显示值,可以理解为放到存储区 4.单击MC清除存储区数值 5.单击MR将存储区数据显示到屏幕上 6.M+:当前显示的数与存储区的数相加 7.M-:当前显示的数与存储

    2024年02月09日
    浏览(49)
  • Python - 简易版计算器(附完整代码)

    对输入的两个数进行一次加减乘除 对输入的运算符进行判断 做出计算机图形界面

    2024年02月08日
    浏览(45)
  • Java课程设计——简易计算器

    1.系统简介 1.1设计背景     随着人们物质生活水平的日益提高,人们对高质量的计算提出了更高的要求。当今世界,是云计算的生活和物联网发展和使用阶段,计算性能的高低和计算的效率直接影响到了人们的生活。对此,使用Java语言开发出一个为人们生活带来便利的计算

    2024年02月08日
    浏览(41)
  • C++简易计算器的实现

    定义: 计算器是近代人发明的可以进行数字运算的机器。 也就是说,计算器不等同于算盘,前者能自行运算,后者只能简便计算过程,在古代,人们发明了许多计算工具,如算筹、算盘、计算尺等,随着社会的发展和科技的进步,计算工具也经历了由简单到复杂,由低级向高级的发

    2024年02月11日
    浏览(39)
  • QT简易加法计算器项目实现

    完整代码见GitHub:点击进入 在该项目中,使用了三个文件,分别是CalculatorDialog.h, CalculatorDialog.cpp, main.cpp CalculatorDialog.h:在该头文件里定义了一些成员变量和槽函数,用于实现计算器基本功能。 CalculatorDialog.cpp: CalculatorDialog 类的构造函数,用于初始化计算器对话框界面和控

    2024年02月11日
    浏览(41)
  • Android开发:kotlin语言实现简易计算器

    输入两个数字,可选加减乘除操作符,并计算显示对应结果 随系统切换语言 可对结果进行四舍五入操作 界面布局:activity_main.xml文件代码 字符定义:string.xml文件代码 逻辑实现:MainActivity.kt 文件代码 方法一(偷懒): 复制文件到对应位置 方法二: 1. 绘制界面 2. 编写逻辑

    2023年04月08日
    浏览(46)
  • 【Servlet学习三】实现一个内存版本的简易计算器~

    目录 一、方式1:使用form表单的形式(不推荐) 🌈1、前端代码:HTML文件 🌈2、后端代码:Calculator_form.java文件 🌈3、最终效果 二、方式2:使用ajax形式(最常用重点!!!) 🌈1、前端代码:HTML文件 🌈2、后端代码:Calculator_ajax.java文件 🌈3、最终效果  注意: (1)前端

    2024年02月12日
    浏览(41)
  • 简易计算器(详解用栈实现算术表达式求值)

    [问题描述] 一个算术表达式是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。假设操作数是 正实数 ,运算符只含 加减乘除 等四种运算符,界限符只含 左右括号 如:6+15*(21-8/4)。编程利用“ 运算符优先法 ”求算术表达式的值。 [基本要求] (1)读入一个合法的

    2024年02月08日
    浏览(49)
  • 简易计算器-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)

    【案例11-2】 简易计算器 【案例介绍】 1. 案例描述 本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。 2. 运行结果 运行结果   【案例分析】 要制作一个计算器,首先要知道它由哪些部分组成,如下图所示: 一个简单的图形化界面计算器,

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包