希赛考试网
首页 > 软考 > 软件设计师

java编写简易计算器初学者

希赛网 2024-06-01 17:22:13

随着计算机科学的发展,编程语言也逐渐增多。而Java语言作为一种跨平台、面向对象的高级编程语言,广泛应用于开发各种软件应用程序。对于初学者来说,通过编写一款简易计算器来掌握Java编程语言的基本知识点可谓是非常不错的选择,也是一种有效的学习方法。本文将从多个角度分析Java编写简易计算器的相关主题,帮助初学者掌握Java编程基础。

一、Java编写简易计算器的基本框架

Java语言编写的简易计算器具有简单、快捷、直观等特点。根据计算器的使用场景和功能需求,Java编写简易计算器的基本框架可分为如下部分:

1. 界面设计:计算器的界面设计应该简单明了,易于使用,不需要太多繁琐的操作步骤,常见的有菜单栏、文本框、按钮等组件。

2. 基础功能实现:计算器需要实现的基础功能有加、减、乘、除、开方、百分数、取反等功能。

3. 高级功能实现:可根据需要增加一些高级的功能,如对数、sin、cos等。

二、Java编写简易计算器的编程思路

1. Java编写简易计算器需要掌握Java基础语法、面向对象编程思想和GUI编程相关知识,因此先要深入学习Java编程基础。

2. 在学习Java编程基础的基础上,需要了解AWT和Swing两种GUI编程的相关知识,这是Java语言编写简易计算器的基础。

3. 参考其他优秀的计算器程序,例如Windows自带计算器,自行设计和实现计算功能。

三、Java编写简易计算器实例代码

此处给出Java编写简易计算器的示例代码,仅供参考:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class Calculator extends JFrame implements ActionListener{

JButton[] jbnum = new JButton[10];

JButton jia, jian, cheng, chu, dengyu, dot;

JTextArea jti = new JTextArea("");

JMenuBar menubar = new JMenuBar();

JMenu filemenu = new JMenu("文件");

JMenu aboutmenu = new JMenu("关于");

JMenuItem exit = new JMenuItem("退出");

JMenuItem about = new JMenuItem("关于");

String jiafa, jianfa, chengfa, chufa, xiaoshuxian, xianshi;

double a, b, result;

JLabel label = new JLabel();

public static void main(String[] args) {

Calculator cal = new Calculator();

cal.go();

}

public void go(){

JPanel centerpanel = new JPanel();

JPanel southpanel = new JPanel();

JPanel northpanel = new JPanel();

JPanel westpanel = new JPanel();

menubar.add(filemenu);

menubar.add(aboutmenu);

filemenu.add(exit);

aboutmenu.add(about);

setJMenuBar(menubar);

exit.addActionListener(this);

about.addActionListener(this);

jti.setPreferredSize(new Dimension(522, 100));

centerpanel.add(jti);

southpanel.setLayout(new GridLayout(1, 5, 0, 5));

northpanel.setLayout(new GridLayout(1, 3, 0, 0));

northpanel.add(new JLabel(" "));

centerpanel.setBackground(Color.WHITE);

centerpanel.setPreferredSize(new Dimension(522, 100));

for(int i = 0; i < 10; i++){

jbnum[i] = new JButton(i + "");

southpanel.add(jbnum[i]);

jbnum[i].addActionListener(this);

}

jia = new JButton("+");

jian = new JButton("-");

cheng = new JButton("*");

chu = new JButton("/");

dengyu = new JButton("=");

dot = new JButton(".");

southpanel.add(jia);

southpanel.add(jian);

southpanel.add(cheng);

southpanel.add(chu);

southpanel.add(dot);

southpanel.add(dengyu);

jia.addActionListener(this);

jian.addActionListener(this);

chu.addActionListener(this);

cheng.addActionListener(this);

dot.addActionListener(this);

dengyu.addActionListener(this);

westpanel.setPreferredSize(new Dimension(100, 303));

westpanel.setBackground(Color.BLUE);

add(southpanel, BorderLayout.SOUTH);

add(centerpanel, BorderLayout.CENTER);

add(westpanel, BorderLayout.WEST);

add(northpanel, BorderLayout.NORTH);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setLocationRelativeTo(null);

setVisible(true);

}

public void actionPerformed(ActionEvent event){

if(event.getSource() == jbnum[0]){

if(xianshi == null){

xianshi = "0";

jti.setText("0");

}

else if(xianshi.indexOf("/") == xianshi.length() - 1){

jti.setText(xianshi + "0");

xianshi = xianshi + "0";

}

else if(xianshi.indexOf("*") == xianshi.length() - 1){

jti.setText(xianshi + "0");

xianshi = xianshi + "0";

}

else if(xianshi.indexOf("+") == xianshi.length() - 1){

jti.setText(xianshi + "0");

xianshi = xianshi + "0";

}

else if(xianshi.indexOf("-") == xianshi.length() - 1){

jti.setText(xianshi + "0");

xianshi = xianshi + "0";

}

else {

jti.setText(xianshi + "0");

xianshi = xianshi + "0";

}

}

else if(event.getSource() == jbnum[1]){

if(xianshi == null){

xianshi = "1";

jti.setText("1");

}

else {

jti.setText(xianshi + "1");

xianshi = xianshi + "1";

}

}

...

else if(event.getSource() == jia){

a = Double.parseDouble(jti.getText());

xiaoshuxian = "+";

jti.setText(xianshi + "+");

xianshi = xianshi + "+";

}

else if(event.getSource() == jian){

a = Double.parseDouble(jti.getText());

xiaoshuxian = "-";

jti.setText(xianshi + "-");

xianshi = xianshi + "-";

}

else if(event.getSource() == cheng){

a = Double.parseDouble(jti.getText());

xiaoshuxian = "*";

jti.setText(xianshi + "*");

xianshi = xianshi + "*";

}

else if(event.getSource() == chu){

a = Double.parseDouble(jti.getText());

xiaoshuxian = "/";

jti.setText(xianshi + "/");

xianshi = xianshi + "/";

}

else if(event.getSource() == dot){

if(xianshi == null){

jti.setText("0.");

xianshi = "0.";

}

else if(xianshi.indexOf("=") != -1 || xianshi.indexOf("sin(") != -1

|| xianshi.indexOf("cos(") != -1 || xianshi.indexOf("tan(") != -1

|| xianshi.indexOf("log(") != -1){

jti.setText("0.");

xianshi = "0.";

}

else if(xianshi.indexOf(".") != -1){

jti.setText(xianshi);

}

else{

jti.setText(xianshi + ".");

xianshi = xianshi + ".";

}

}

else if(event.getSource() == dengyu){

b = Double.parseDouble(jti.getText().substring(xianshi.indexOf(xiaoshuxian)+1));

if(xiaoshuxian == "+"){

result = a + b;

}

else if(xiaoshuxian == "-"){

result = a - b;

}

else if(xiaoshuxian == "*"){

result = a * b;

}

else if(xiaoshuxian == "/"){

result = a / b;

}

jti.setText(xianshi + "=" + result);

xianshi = xianshi + "=" + result;

}

}

}

四、Java编写简易计算器的注意事项

1. 在编写Java语言的计算器程序时,需要注意特殊情况的处理,如被除数等于0时的异常处理等。

2. Java语言对于计算器的计算结果进行精度的限制,需要注意精度判断和计算过程中的数据类型转换等问题。

3. 计算器程序的界面设计要美观、简单明了、易于使用,尽量减少不必要的操作和显示。

综上所述,Java编写简易计算器是一种很好的学习Java语言编程的方法,全面掌握Java编程基础知识,了解GUI编程相关知识,参考其他优秀的计算器程序,注意程序设计中的特殊情况和精度处理,可以实现一款实用、功能齐全的计算器程序。

扫码咨询 领取资料


软考.png


软件设计师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
软件设计师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考资格查询系统

扫一扫,自助查询报考条件