java计算机全部代码_(Java)谁有计算器的完整代码?

展开全部

参考: http://gzdzw.51.net/htmjsq.htm

计算器代码:

计算器

var FKeyPad = document.Calculator;

var Accum = 0;

var FlagNewNum = false;

var PendingOp = "";

function Num (Num) {

if (FlagNewNum) {

FKeyPad.ReadOut.value = Num;

FlagNewNum = false;

}

else {

if (FKeyPad.ReadOut.value == "0")

FKeyPad.ReadOut.value = Num;

else

FKeyPad.ReadOut.value += Num;

}

}

function Operation (Op) {

var Readout = FKeyPad.ReadOut.value;

if (FlagNewNum && PendingOp != "=");

else

{

FlagNewNum = true;

if ( '+' == PendingOp )

Accum += parseFloat(Readout);

else if ( '-' == PendingOp )

Accum -= parseFloat(Readout);

else if ( '/' == PendingOp )

Accum /= parseFloat(Readout);

else if ( '*' == PendingOp )

Accum *= parseFloat(Readout);

else

Accum = parseFloat(Readout);

FKeyPad.ReadOut.value = Accum;

PendingOp = Op;

}

}

function Decimal () {

var curReadOut = FKeyPad.ReadOut.value;

if (FlagNewNum) {

curReadOut = "0.";

FlagNewNum = false;

}

else

{

if (curReadOut.indexOf(".") == -1)

curReadOut += ".";

}

FKeyPad.ReadOut.value = curReadOut;

}

function ClearEntry () {

FKeyPad.ReadOut.value = "0";

FlagNewNum = true;

}

function Clear () {

Accum = 0;

PendingOp = "";

ClearEntry();

}

function Neg () {

FKeyPad.ReadOut.value = parseFloat(FKeyPad.ReadOut.value) * -1;

}

function Percent () {

FKeyPad.ReadOut.value = (parseFloat(FKeyPad.ReadOut.value) / 100) * parseFloat(Accum);

}

function hexchange()

{

var hex,dec;

dec = parseFloat(FKeyPad.ReadOut.value);

hex = dec.toString(16);

window.alert("该十进制数转成十六进制数为:["+ hex +"]");

}

function octchange()

{

var oct,dec;

dec = parseFloat(FKeyPad.ReadOut.value);

oct = dec.toString(8);

window.alert("该十进制数转成八进制数为:["+ oct +"]");

}

function binchange()

{

var bin,dec;

dec = parseFloat(FKeyPad.ReadOut.value);

bin = dec.toString(2);

window.alert("该十进制数转成二进制数为:["+ bin +"]");

}

-----------------------------

//主类

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.border.*;

public class Counter{

Process process=new Process();

JTextField t1=new JTextField();

public Counter(){

JFrame f=new JFrame();

t1.setEditable(false);

t1.setBackground(Color.white);

JButton b1=new JButton(" 1 ");b1.setForeground(Color.blue);

JButton b2=new JButton(" 2 ");b2.setForeground(Color.blue);

JButton b3=new JButton(" 3 ");b3.setForeground(Color.blue);

JButton b4=new JButton(" + ");b4.setForeground(Color.red);

JButton b5=new JButton(" C ");b5.setForeground(Color.red);

JButton b6=new JButton(" 4 ");b6.setForeground(Color.blue);

JButton b7=new JButton(" 5 ");b7.setForeground(Color.blue);

JButton b8=new JButton(" 6 ");b8.setForeground(Color.blue);

JButton b9=new JButton(" - ");b9.setForeground(Color.red);

JButton b10=new JButton(" B ");b10.setForeground(Color.red);

JButton b11=new JButton(" 7 ");b11.setForeground(Color.blue);

JButton b12=new JButton(" 8 ");b12.setForeground(Color.blue);

JButton b13=new JButton(" 9 ");b13.setForeground(Color.blue);

JButton b14=new JButton(" * ");b14.setForeground(Color.red);

JButton b15=new JButton("1/x");b15.setForeground(Color.red);

JButton b16=new JButton(" 0 ");b16.setForeground(Color.blue);

JButton b17=new JButton("+/-");b17.setForeground(Color.red);

JButton b18=new JButton(" . ");b18.setForeground(Color.red);

JButton b19=new JButton(" / ");b19.setForeground(Color.red);

JButton b20=new JButton(" = ");b20.setForeground(Color.red);

Container c=f.getContentPane();

c.setLayout(new BorderLayout());

JPanel p=new JPanel(new GridLayout(4,1));

JPanel p1=new JPanel(new FlowLayout());

JPanel p2=new JPanel(new FlowLayout());

JPanel p3=new JPanel(new FlowLayout());

JPanel p4=new JPanel(new FlowLayout());

c.add(t1,BorderLayout.NORTH);

p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5);

p2.add(b6);p2.add(b7);p2.add(b8);p2.add(b9);p2.add(b10);

p3.add(b11);p3.add(b12);p3.add(b13);p3.add(b14);p3.add(b15);

p4.add(b16);p4.add(b17);p4.add(b18);p4.add(b19);p4.add(b20);

p.add(p1);

p.add(p2);

p.add(p3);

p.add(p4);

c.add(p,BorderLayout.CENTER);

f.setTitle("计算器");

f.setBounds(300,160,284,210);

f.setVisible(true);

f.setResizable(false);

//b1事件

b1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input("1");

t1.setText(process.out());

}

});

//b2事件

b2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input("2");

t1.setText(process.out());

}

});

//b3事件

b3.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input("3");

t1.setText(process.out());

}

});

//b6事件

b6.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input("4");

t1.setText(process.out());

}

});

//b7事件

b7.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input("5");

t1.setText(process.out());

}

});

//b8事件

b8.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input("6");

t1.setText(process.out());

}

});

//b11事件

b11.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input("7");

t1.setText(process.out());

}

});

//b12事件

b12.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input("8");

t1.setText(process.out());

}

});

//b13事件

b13.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input("9");

t1.setText(process.out());

}

});

//b16事件

b16.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input("0");

t1.setText(process.out());

}

});

//b18事件

b18.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.input(".");

t1.setText(process.out());

}

});

//b5事件

b5.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.clear();

t1.setText("0");

}

});

//b10事件

b10.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.backSpace();

t1.setText(process.out());

}

});

//加号事件

b4.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.sign(1);

}

});

//减号事件

b9.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.sign(2);

}

});

//乘号事件

b14.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.sign(3);

}

});

//除号事件

b19.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.sign(4);

}

});

//+/-号事件

b17.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.setSign();

t1.setText(process.out());

}

});

//1/x号事件

b15.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

process.sign(5);

}

});

//等号事件

b20.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

t1.setText(process.sum());

}

});

}

public static void main(String args[]){

Counter cou=new Counter();

}

}

//Process类

class Process {

double temp1, temp2;

String tfsum1, tfsum2;

int mark, mark1;

//构造函数

Process() {

clear();

}

void clear() {

temp1 = temp2 = 0;

mark = mark1 = 0;

tfsum1 = tfsum2 = "0";

}

//接收数据

void input(String s) {

if (mark1 == -1) {

clear();

if (!s.equalsIgnoreCase(".")) {

tfsum1 = s;

}

else {

tfsum1 += s;

}

}

else if (mark != 0) {

if (tfsum2.equalsIgnoreCase("0") && !s.equalsIgnoreCase(".")) {

tfsum2 = s;

}

else if (!s.equalsIgnoreCase(".") ||

(tfsum2.indexOf(".") < 0 && s.equalsIgnoreCase("."))) {

tfsum2 += s;

}

mark1 = 2;

}

else {

if (tfsum1.equalsIgnoreCase("0") && !s.equalsIgnoreCase(".")) {

tfsum1 = s;

}

else if (!s.equalsIgnoreCase(".") ||

(tfsum1.indexOf(".") < 0 && s.equalsIgnoreCase("."))) {

tfsum1 += s;

}

mark1 = 1;

}

temp1 = Double.parseDouble(tfsum1);

temp2 = Double.parseDouble(tfsum2);

}

//符号//

void sign(int sign) {

if (mark1 != 0) {

mark = sign;

}

}

//输出计算结果

String sum() {

mark1 = -1;

switch (mark) {

default:

break;

case 1:

temp1 += temp2;

break;

case 2:

temp1 -= temp2;

break;

case 3:

temp1 *= temp2;

break;

case 4:

if (temp2 != 0) {

temp1 /= temp2;

}

else {

return "除数不能为零";

}

break;

case 5:

if(temp1!=0)

temp1=1/temp1;

else return "零不能取倒数";

break;

}

tfsum1 = Double.toString(temp1);

tfsum2 = Double.toString(temp2);

if (Double.isInfinite(temp1)) {

return "CE";

}

else {

return String.valueOf(temp1);

}

}

//输出当前操作数的字符串

String out() {

if (mark != 0 && mark1 >= 0) {

return tfsum2;

}

else {

return tfsum1;

}

}

//实现退格的功能

void backSpace() {

if (mark1 == 1) {

if (tfsum1.length() <= 1) {

tfsum1 = "0";

}

else {

tfsum1 = tfsum1.substring(0, tfsum1.length() - 1);

}

temp1 = Double.parseDouble(tfsum1);

}

if (mark1 == 2) {

if (tfsum2.length() <= 1) {

tfsum2 = "0";

}

else {

tfsum2 = tfsum2.substring(0, tfsum2.length() - 1);

}

temp2 = Double.parseDouble(tfsum2);

}

}

//取反

void setSign() {

switch (mark1) {

case -1:

case 1:

if (tfsum1.startsWith("-")) {

tfsum1 = tfsum1.substring(1, tfsum1.length());

}

else {

tfsum1 = "-" + tfsum1;

}

break;

case 2:

if (tfsum2.startsWith("-")) {

tfsum2 = tfsum2.substring(1, tfsum2.length());

}

else {

tfsum2 = "-" + tfsum1;

}

break;

default:

break;

}

temp1 = Double.parseDouble(tfsum1);

temp2 = Double.parseDouble(tfsum2);

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值