java计算器

刚学java不久,老师要说编个这
JAVA计算器
基础功能:类似windows计算器-普通计算器所具有的数的输入、加、减、乘、除、开根号、求倒数、退格、清空。
哪位高手指点哈,回去研究下,,灰常感谢,,
 
 

 

回复次数:2
 
要类似windows计算器 需要java图形用户界面知识,你先编在dos状态下的计算器。
用java中util包中Scanner接受输入数据,在执行操作。
 

 

#2楼
import java.awt.*;   
import java.awt.event.*;   
import javax.swing.*;   

public class homework{   
public static void main(String[] args)   
{   
CalculatorFrame frame = new CalculatorFrame();   
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
frame.setVisible(true);   
}   
}   

class CalculatorFrame extends JFrame   
{   
public CalculatorFrame()   
{   
setTitle("Calculator");   
CalculatorPanel panel = new CalculatorPanel();   
add(panel);   
pack();   
}   
}   

class CalculatorPanel extends JPanel   
{   
public CalculatorPanel()   
{   
setLayout(new BorderLayout());   

result = 0;   
lastCommand = "=";   
start = true;   

display = new JButton("0");   
display.setEnabled(false);   
add(display, BorderLayout.NORTH);   

ActionListener insert = new InsertAction();   
ActionListener command = new CommandAction();   

panel = new JPanel();   
panel.setLayout(new GridLayout(4, 4));   

addButton("7", insert);   
addButton("8", insert);   
addButton("9", insert);   
addButton("/", command);   

addButton("4", insert);   
addButton("5", insert);   
addButton("6", insert);   
addButton("*", command);   

addButton("1", insert);   
addButton("2", insert);   
addButton("3", insert);   
addButton("-", command);   

addButton("0", insert);   
addButton(".", insert);   
addButton("=", command);   
addButton("+", command);   

add(panel, BorderLayout.CENTER);   
}   

private void addButton(String label, ActionListener listener)   
{   
JButton button = new JButton(label);   
button.addActionListener(listener);   
panel.add(button);   
}   

private class InsertAction implements ActionListener   
{   
public void actionPerformed(ActionEvent event)   
{   
String input = event.getActionCommand();   
if (start)   
{   
display.setText("");   
start = false;   
}   
display.setText(display.getText() + input);   
}   
}   

private class CommandAction implements ActionListener   
{   
public void actionPerformed(ActionEvent event)   
{   
String command = event.getActionCommand();   

if (start)   
{   
if (command.equals("-"))   
{   
display.setText(command);   
start = false;   
}   
else   
lastCommand = command;   
}   
else   
{   
calculate(Double.parseDouble(display.getText()));   
lastCommand = command;   
start = true;   
}   
}   
}   

public void calculate(double x)   
{   
if (lastCommand.equals("+")) result += x;   
else if (lastCommand.equals("-")) result -= x;   
else if (lastCommand.equals("*")) result *= x;   
else if (lastCommand.equals("/")) result /= x;   
else if (lastCommand.equals("=")) result = x;   
display.setText("" + result);   
}   

private JButton display;   
private JPanel panel;   
private double result;   
private String lastCommand;   
private boolean start;   
}

但是我还想让它开根号、求倒数、退格、清空。。刚怎么加啊,教教我呀。。
 
 
  
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值