用Java程序设计语言设计一个计算器

作者&投稿:壤肺 (若有异议请与网页底部的电邮联系)
用java程序设计语言设计一个小系统,如设计一个闹钟、计算器,或实现图形界面的绘图功能等。自己去思考,设~

我也想要

不知道你想实现什么样的计算。

import javax.swing.*;//新的窗口组件包
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener
{
private boolean dotExist, operated, equaled; // 帮助运算的布尔变量
private double storedNumber; // 目前的结果
private char lastOperator; // 表示上一运算符
private JTextField operation; // 显示栏
private JButton dot, plus, minus, multi, div, sqrt, equal, changePN, clear; // 运算符
private JButton[] numbers; // 数字
// 构造者
public Calculator()
{
setTitle("简单计算器");
// 初始化变量
dotExist = false; // 表示当前的数是否有小数点
operated = false; // 表示任意运算符是否被按下
equaled = false; // 表示等号是否被按下
storedNumber = 0;
lastOperator = '?';
// 初始化窗口变量
operation = new JTextField("0");
operation.setEditable(false); //设置文本框的可编辑性
numbers = new JButton[10];
for (int i = 0; i < 10; i++)
numbers[i] = new JButton("" + i);
dot = new JButton(".");
plus = new JButton("+");
minus = new JButton("-");
multi = new JButton("*");
div = new JButton("/");
sqrt = new JButton("√");
equal = new JButton("=");
changePN = new JButton("±");
clear = new JButton("NC");
// 将窗口物体放入窗口
GridBagLayout layout = new GridBagLayout();
getContentPane().setLayout(layout);
addComponent(layout, operation, 0, 0, 4, 1);
addComponent(layout, numbers[1], 1, 0, 1, 1);
addComponent(layout, numbers[2], 1, 1, 1, 1);
addComponent(layout, numbers[3], 1, 2, 1, 1);
addComponent(layout, numbers[4], 2, 0, 1, 1);
addComponent(layout, numbers[5], 2, 1, 1, 1);
addComponent(layout, numbers[6], 2, 2, 1, 1);
addComponent(layout, numbers[7], 3, 0, 1, 1);
addComponent(layout, numbers[8], 3, 1, 1, 1);
addComponent(layout, numbers[9], 3, 2, 1, 1);
addComponent(layout, dot, 4, 0, 1, 1);
addComponent(layout, numbers[0], 4, 1, 1, 1);
addComponent(layout, sqrt, 4, 2, 1, 1);
addComponent(layout, plus, 1, 3, 1, 1);
addComponent(layout, minus, 2, 3, 1, 1);
addComponent(layout, multi, 3, 3, 1, 1);
addComponent(layout, div, 4, 3, 1, 1);
addComponent(layout, equal, 5, 0, 2, 1);
addComponent(layout, changePN, 5, 2, 1, 1);
addComponent(layout, clear, 5, 3, 1, 1);
}
// 对按钮进行反应的方法
public void actionPerformed(ActionEvent e)
{
JButton btn = (JButton)e.getSource();
if (btn == clear)
{
operation.setText("0");
dotExist = false;
storedNumber = 0;
lastOperator = '?';
}
else if (btn == equal)
{
operate('=');
equaled = true;
}
else if (btn == plus)
{
operate('+');
equaled = false;
}
else if (btn == minus)
{
operate('-');
equaled = false;
}
else if (btn == multi)
{
operate('*');
equaled = false;
}
else if (btn == div)
{
operate('/');
equaled = false;
}
else if (btn == changePN)
{
operate('p');
operate('=');
equaled = true;
}
else if (btn == sqrt)
{
operate('s');
operate('=');
equaled = true;
}
else
{
if (equaled)
storedNumber = 0;
for (int i = 0; i < 10; i++)
if (btn == numbers[i])
{
if (operation.getText().equals("0"))
operation.setText("" + i);
else if(! operated)
operation.setText(operation.getText() + i);
else
{
operation.setText("" + i);
operated = false;
}
}
if (btn == dot && ! dotExist)
{
operation.setText(operation.getText() + ".");
dotExist = true;
}
}
}
// 进行运算的方法
private void operate(char operator)
{
double currentNumber = Double.valueOf(operation.getText()).doubleValue();
if (lastOperator == '?')
storedNumber = currentNumber;
else if (lastOperator == '+')
storedNumber += currentNumber;
else if (lastOperator == '-')
storedNumber -= currentNumber;
else if (lastOperator == '*')
storedNumber *= currentNumber;
else if (lastOperator == '/')
storedNumber /= currentNumber;
else if (lastOperator == 'p')
storedNumber *= -1;
else if (lastOperator == 's')
storedNumber = Math.sqrt(currentNumber);
else if (lastOperator == '=' && equaled)
storedNumber = currentNumber;
operation.setText("" + storedNumber);
operated = true;
lastOperator = operator;
}
// 快捷使用GridBagLayout的方法
private void addComponent(GridBagLayout layout, Component component, int row, int col, int width, int height)
{
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.BOTH;
constraints.insets = new Insets(10, 2, 10, 2);
constraints.weightx = 100;
constraints.weighty = 100;
constraints.gridx = col;
constraints.gridy = row;
constraints.gridwidth = width;
constraints.gridheight = height;
layout.setConstraints(component, constraints);
if (component instanceof JButton)
((JButton)component).addActionListener(this);
getContentPane().add(component);
}
// 主方法初始化并显示窗口
public static void main(String[] args)
{
Calculator calc = new Calculator();
calc.setSize(230, 280);
calc.setVisible(true);
}
}

四百行有点多啊,我自己写的一个,挺小的 ,发你邮箱了

400行确实有点难啊!!


java语言与C++相比,有哪些优点?
一谈到Java,人们马上会想起一种类似于C++的、适用于分布环境的面向对象编程语言,想到这种语言的简单、稳定、安全、与体系结构无关、可移植、可解释、高性能、多线程和动态性等特征。这些都是Java作为一种程序设计语言的主要特征。 Java是由Sun公司的一个技术小组研制出来的。在实现Java语言的过程中,Sun小组的技术人员...

JAVA主要是用来干什么的呢?
其次,Java是一种软件开发平台。所谓软件开发简单地理解为:编程的结果是软件或者程序,而编程的过程就是软件开发。JAVA可以用来干什么,下面是为大家总结的主要的六点:一、Java可以用来做网站 很多大型网站都是用JSP写的,JSP全名Java Server Pages。这是一种动态网页技术,比如我们熟悉的B站,很多政府网站...

计算机语言排行是怎样的?什么是最好的语言?
计算机语言排行是Python、C语言、Java、C++、C#。1、Python Python的历史可以追溯到1989年,因其高度可读的代码而深受其粉丝的喜爱。许多程序员认为这是最简单的语言开始。Python是一种面向对象的解释型计算机程序设计语言,由荷兰人1989年发明,第一个公开发行版发行于1991年。Python语法简洁清晰,特色之一是...

面向对象的程序设计语言有哪些?
1、Smalltalk:Smalltalk,被公认为历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE)。Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:C++,C#,Objective-C,Actor,Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构...

Java程序设计基础学习的重要性在哪里?
学好Java程序设计基础是因为它是一门广泛应用于软件开发的编程语言。1.Java语言的普及性(普及性)Java是全球最流行的编程语言之一,应用范围广泛。无论是企业级应用、移动应用、Web开发还是大数据处理等领域,Java都扮演着重要的角色。学好Java能让我们更好地适应和应对各种软件开发需求。2.Java的跨平台特性...

javase和javaee的区别有哪些?
同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。Java SE的简介:Java se是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、...

计算机编程语言有哪些?
用来给HTML网页增加动态功能。Java:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java和C语言有什么区别?
摒弃了一些C++的不足之处,语法跟C++很像,它是运行在Java虚拟机上,所以可以跨平台,一处编译,到处执行。\\x0d\\x0a\\x0d\\x0a编程都是易学难精,哪个都好学,哪个又都不好学。都有很好的发展前景,就看是什么方向了。底层的C、桌面应用程序、游戏等等C++、嵌入式,网页,Java。

c++和java到底学哪一个好?
2、java的应用 (1) Android应用程序 许多Android应用程序都是由Java程序员和开发人员开发的。尽管Android使用不同的jvm和不同的封装方法,但是代码仍然是用Java语言编写的。相当数量的手机支持Java游戏,这让很多非程序员都懂Java。(2) 在金融业应用的服务器程序 Java在金融服务业得到了广泛的应用。

学编程到底是学C语言、C++、VB、jave中的哪种比较好?
成哪一方面的程序设计,你的程序主要完成的功能是什么?由此在众多软件中, 选择出适合自己的开发工具。...>>问题五:现在学什么编程语言好 C语言玩玩就好,过了指针就难了,JAVA入门简单,后边框架太多,C++是王道,但学的人多了,想学的很出彩就难了。计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高...

临川区19218071236: 用java语言,编写一个计算器 -
衷轰板蓝: 有一个现成的.你看看吧import java.awt.event.ActionEvent;public class Application extends JFrame { protected String str = "";protected boolean isChar = true;protected boolean isEqual = false;protected JTextField textField; public ...

临川区19218071236: 2.编写一个Java程序,计算半径为3.0的圆的周长和面积并输出计算结果. -
衷轰板蓝: public class Test {public static void main(String[] args) {double l = 3.0;double perimeter = 2 * Math.PI * l;double area = l * l * Math.PI; System.out.println("周长" + perimeter);System.out.println("面积" + area);} }

临川区19218071236: 用java编写一个简单计算器 -
衷轰板蓝: 原发布者:someday云importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;...

临川区19218071236: 如何使用Java对象语言编写一个加减乘除计算器要有代码 -
衷轰板蓝: 下面文件名要为:JiSuanQi.java import java.awt.*; import java.awt.event.*; public class JiSuanQi { String s="",s1=null,s2=null; Frame f=new Frame("计算器"); TextField tf=new TextField(30); Panel p1=new Panel(); Panel p2=new Panel(); ...

临川区19218071236: 如何用JAVA语言编写一个计算器?
衷轰板蓝: 关于界面我认为可以 利用netbeans拉出来.当然一个界面就行了.计算器关键是按钮功能,理解难点是如何将数字组合到一起.比如将1和2组合到一起行程12,在文本框里填写的数据,用gettext()方法提取之后,得到的是字符串.这个你必须事先知道.其次关键是提供一个临时变量,这个临时变量保存你再按符号之前的文本框的数据.再按符号后文本框内设置为空,在输入数字的时候,在调用方法提取现在的文本框里的内容,然后将原来提取的字符,与现在的字符加起来,构成字符集,在通过强制转换成double就行了"1"+"2"="12"呵呵,就这么简单,你明白了吗

临川区19218071236: 用Java语言编写一个计算表达式的程序,能做简单的加,减,乘,除,和括号识别. -
衷轰板蓝: import java.util.Scanner; public class Prog1 { public static void main(String[] args) { Scanner cin=new Scanner(System.in ); int a=cin.nextInt(); int b=cin.nextInt(); String str1=cin.nextLine(); String str=cin.nextLine(); char c=str.charAt(0); switch(c) { ...

临川区19218071236: Java程序计算
衷轰板蓝: Integer minute = 12; Integer metre = 0; for(int i=0;i<minute;i++){ metre+=(100-i*5); } System.out.println("最终结果:"+metre);

临川区19218071236: 求大神用JAVA语言编写一个简易计算器~! -
衷轰板蓝: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JTextField; class CalcControler implements ActionListener { JTextField textField; //integer1 ,integer2String op1, op2, operator; String errMsg = "Error"; ...

临川区19218071236: 用JAVA语言编写一段程序,计算一个大的整数数组所有元素的总和,要求在双核系统中解决并利用到两个核. -
衷轰板蓝: 既然要用到2个核那么自然要用到多线程2个线程的话比1个线程速度要快大概1倍 可以先把那个大的整数数组 拆分成2个或多个运算 最后再合并.那样比楼上的运算要快一些 但是写的复杂多了! 先写一个线程类专门运算加法 public class ...

临川区19218071236: 怎样用JAVA语言编写一个简单的计算器界面 -
衷轰板蓝: import java.awt.FlowLayout; import java.awt.TextArea;import javax.swing.*;public class MyFrame extends JFrame { public static void main(String[] args) {new MyFrame();} public MyFrame() {

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网