午夜无码人妻aⅴ大片色欲张津瑜,国产69久久久欧美黑人A片,色妺妺视频网,久久久久国产综合AV天堂

Java代碼寫計算器解析,java語言編寫計算器

誰能幫我寫一個JAVA編寫的計算器程序,還要特詳細的解析,從總體的解析到甚至每一行的分析!謝謝

package book.gui;

創(chuàng)新互聯(lián)制作網(wǎng)站網(wǎng)頁找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁設計,成都網(wǎng)站制作、成都做網(wǎng)站,網(wǎng)站設計,企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務,680元做網(wǎng)站,已為上1000+服務,創(chuàng)新互聯(lián)網(wǎng)站建設將一如既往的為我們的客戶提供最優(yōu)質的網(wǎng)站建設、網(wǎng)絡營銷推廣服務!

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

/**

* 一個計算器,與Windows附件自帶計算器的標準版功能、界面相仿。

* 但還不支持鍵盤操作。

*/

public class Calculator extends JFrame implements ActionListener {

/** 計算器上的鍵的顯示名字 */

private final String[] KEYS = { "7", "8", "9", "/", "sqrt", "4", "5", "6",

"*", "%", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" };

/** 計算器上的功能鍵的顯示名字 */

private final String[] COMMAND = { "Backspace", "CE", "C" };

/** 計算器左邊的M的顯示名字 */

private final String[] M = { " ", "MC", "MR", "MS", "M+" };

/** 計算器上鍵的按鈕 */

private JButton keys[] = new JButton[KEYS.length];

/** 計算器上的功能鍵的按鈕 */

private JButton commands[] = new JButton[COMMAND.length];

/** 計算器左邊的M的按鈕 */

private JButton m[] = new JButton[M.length];

/** 計算結果文本框 */

private JTextField resultText = new JTextField("0");

// 標志用戶按的是否是整個表達式的第一個數(shù)字,或者是運算符后的第一個數(shù)字

private boolean firstDigit = true;

// 計算的中間結果。

private double resultNum = 0.0;

// 當前運算的運算符

private String operator = "=";

// 操作是否合法

private boolean operateValidFlag = true;

/**

* 構造函數(shù)

*/

public Calculator(){

super();

//初始化計算器

init();

//設置計算器的背景顏色

this.setBackground(Color.LIGHT_GRAY);

this.setTitle("計算器");

//在屏幕(500, 300)坐標處顯示計算器

this.setLocation(500, 300);

//不許修改計算器的大小

this.setResizable(false);

//使計算器中各組件大小合適

this.pack();

}

/**

* 初始化計算器

*/

private void init() {

// 文本框中的內容采用右對齊方式

resultText.setHorizontalAlignment(JTextField.RIGHT);

// 不允許修改結果文本框

resultText.setEditable(false);

// 設置文本框背景顏色為白色

resultText.setBackground(Color.white);

//初始化計算器上鍵的按鈕,將鍵放在一個畫板內

JPanel calckeysPanel = new JPanel();

//用網(wǎng)格布局器,4行,5列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素

calckeysPanel.setLayout(new GridLayout(4, 5, 3, 3));

for (int i = 0; i KEYS.length; i++) {

keys[i] = new JButton(KEYS[i]);

calckeysPanel.add(keys[i]);

keys[i].setForeground(Color.blue);

}

//運算符鍵用紅色標示,其他鍵用藍色表示

keys[3].setForeground(Color.red);

keys[8].setForeground(Color.red);

keys[13].setForeground(Color.red);

keys[18].setForeground(Color.red);

keys[19].setForeground(Color.red);

//初始化功能鍵,都用紅色標示。將功能鍵放在一個畫板內

JPanel commandsPanel = new JPanel();

//用網(wǎng)格布局器,1行,3列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素

commandsPanel.setLayout(new GridLayout(1, 3, 3, 3));

for (int i = 0; i COMMAND.length; i++) {

commands[i] = new JButton(COMMAND[i]);

commandsPanel.add(commands[i]);

commands[i].setForeground(Color.red);

}

//初始化M鍵,用紅色標示,將M鍵放在一個畫板內

JPanel calmsPanel = new JPanel();

//用網(wǎng)格布局管理器,5行,1列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素

calmsPanel.setLayout(new GridLayout(5, 1, 3, 3));

for (int i = 0; i M.length; i++) {

m[i] = new JButton(M[i]);

calmsPanel.add(m[i]);

m[i].setForeground(Color.red);

}

//下面進行計算器的整體布局,將calckeys和command畫板放在計算器的中部,

//將文本框放在北部,將calms畫板放在計算器的西部。

//新建一個大的畫板,將上面建立的command和calckeys畫板放在該畫板內

JPanel panel1 = new JPanel();

//畫板采用邊界布局管理器,畫板里組件之間的水平和垂直方向上間隔都為3象素

panel1.setLayout(new BorderLayout(3, 3));

panel1.add("North", commandsPanel);

panel1.add("West", calckeysPanel);

//建立一個畫板放文本框

JPanel top = new JPanel();

top.setLayout(new BorderLayout());

top.add("Center", resultText);

//整體布局

getContentPane().setLayout(new BorderLayout(3, 5));

getContentPane().add("North", top);

getContentPane().add("Center", panel1);

getContentPane().add("West", calmsPanel);

//為各按鈕添加事件偵聽器

//都使用同一個事件偵聽器,即本對象。本類的聲明中有implements ActionListener

for (int i = 0; i KEYS.length; i++) {

keys[i].addActionListener(this);

}

for (int i = 0; i COMMAND.length; i++) {

commands[i].addActionListener(this);

}

for (int i = 0; i M.length; i++) {

m[i].addActionListener(this);

}

}

/**

* 處理事件

*/

public void actionPerformed(ActionEvent e) {

//獲取事件源的標簽

String label = e.getActionCommand();

if (label.equals(COMMAND[0])){

//用戶按了"Backspace"鍵

handleBackspace();

} else if (label.equals(COMMAND[1])) {

//用戶按了"CE"鍵

resultText.setText("0");

} else if (label.equals(COMMAND[2])){

//用戶按了"C"鍵

handleC();

} else if ("0123456789.".indexOf(label) = 0) {

//用戶按了數(shù)字鍵或者小數(shù)點鍵

handleNumber(label);

// handlezero(zero);

} else {

//用戶按了運算符鍵

handleOperator(label);

}

}

/**

* 處理Backspace鍵被按下的事件

*/

private void handleBackspace() {

String text = resultText.getText();

int i = text.length();

if (i 0) {

//退格,將文本最后一個字符去掉

text = text.substring(0, i - 1);

if (text.length() == 0) {

//如果文本沒有了內容,則初始化計算器的各種值

resultText.setText("0");

firstDigit = true;

operator = "=";

} else {

//顯示新的文本

resultText.setText(text);

}

}

}

/**

* 處理數(shù)字鍵被按下的事件

* @param key

*/

private void handleNumber(String key) {

if (firstDigit) {

//輸入的第一個數(shù)字

resultText.setText(key);

} else if ((key.equals(".")) (resultText.getText().indexOf(".") 0)){

//輸入的是小數(shù)點,并且之前沒有小數(shù)點,則將小數(shù)點附在結果文本框的后面

resultText.setText(resultText.getText() + ".");

} else if (!key.equals(".")) {

//如果輸入的不是小數(shù)點,則將數(shù)字附在結果文本框的后面

resultText.setText(resultText.getText() + key);

}

//以后輸入的肯定不是第一個數(shù)字了

firstDigit = false;

}

/**

* 處理C鍵被按下的事件

*/

private void handleC() {

//初始化計算器的各種值

resultText.setText("0");

firstDigit = true;

operator = "=";

}

/**

* 處理運算符鍵被按下的事件

* @param key

*/

private void handleOperator(String key) {

if (operator.equals("/")) {

//除法運算

//如果當前結果文本框中的值等于0

if (getNumberFromText() == 0.0){

//操作不合法

operateValidFlag = false;

resultText.setText("除數(shù)不能為零");

} else {

resultNum /= getNumberFromText();

}

} else if (operator.equals("1/x")) {

//倒數(shù)運算

if (resultNum == 0.0){

//操作不合法

operateValidFlag = false;

resultText.setText("零沒有倒數(shù)");

} else {

resultNum = 1 / resultNum;

}

} else if (operator.equals("+")){

//加法運算

resultNum += getNumberFromText();

} else if (operator.equals("-")){

//減法運算

resultNum -= getNumberFromText();

} else if (operator.equals("*")){

//乘法運算

resultNum *= getNumberFromText();

} else if (operator.equals("sqrt")) {

//平方根運算

resultNum = Math.sqrt(resultNum);

} else if (operator.equals("%")){

//百分號運算,除以100

resultNum = resultNum / 100;

} else if (operator.equals("+/-")){

//正數(shù)負數(shù)運算

resultNum = resultNum * (-1);

} else if (operator.equals("=")){

//賦值運算

resultNum = getNumberFromText();

}

if (operateValidFlag) {

//雙精度浮點數(shù)的運算

long t1;

double t2;

t1 = (long) resultNum;

t2 = resultNum - t1;

if (t2 == 0) {

resultText.setText(String.valueOf(t1));

} else {

resultText.setText(String.valueOf(resultNum));

}

}

//運算符等于用戶按的按鈕

operator = key;

firstDigit = true;

operateValidFlag = true;

}

/**

* 從結果文本框中獲取數(shù)字

* @return

*/

private double getNumberFromText() {

double result = 0;

try {

result = Double.valueOf(resultText.getText()).doubleValue();

} catch (NumberFormatException e){

}

return result;

}

public static void main(String args[]) {

Calculator calculator1 = new Calculator();

calculator1.setVisible(true);

calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

java編程,用代碼實現(xiàn)計算器類(Calculator)

public class Calculator {

private int number1;

private int number2;

public Calculator(int number1, int number2) {

this.number1 = number1;

this.number2 = number2;

}

public double add() {

return number1 + number2;

}

public double subtract() {

return number1 - number2;

}

public double multiple() {

return number1 * number2;

}

public double divide() {

if(number2 == 0) {

return 0;

}

return number1 / number2;

}

}

public class TestCalculator {

public static void main(String[] args) {

Calculator calculator = new Calculator(5, 2);

System.out.println(calculator.add());

System.out.println(calculator.subtract());

System.out.println(calculator.multiple());

System.out.println(calculator.divide());

}

}

JAVA計算器相關代碼求大神{詳解}

我給你找找

package com.bj.calcultor;

import java.awt.Frame;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JButton;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Calcultor extends Frame implements ActionListener {

public static void main(String[] args) {//定義主方

new Calcultor();//創(chuàng)建匿名對象,并調用test()方法;

}

//定義按鈕名稱

String[] arr={"1","2","3","4","5","6","7","8","9","0","+","-","*","/","=","."};

JButton [] button=new JButton[arr.length];

JButton reset = new JButton("CE");

JTextField display = new JTextField(20);

//創(chuàng)建窗口,定義組件

//執(zhí)行窗口事件:關閉窗口

private class WindowCloser extends WindowAdapter {

public void windowClosing(WindowEvent we) {

System.exit(0);

}

}

public Calcultor(){

super("計算器");//定義標題

//定義面板容器,并布局

JPanel jpanel=new JPanel(new GridLayout(4,4));

//添加按鈕,并給按鈕添加名稱

for (int i = 0; i arr.length; i++) {

button[i]= new JButton(arr[i]);

jpanel.add(button[i]);

}

JPanel panel2 = new JPanel();

panel2.add("Northr", display);

display.setEnabled(false);

panel2.add("East", reset);

this.add("North", panel2);

this.add("Center", jpanel);

for (int i = 0; i arr.length; i++){

addWindowListener(new WindowCloser());

setVisible(true);

setSize(400,400);

pack();

button[i].addActionListener(this);

reset.addActionListener(this);

display.addActionListener(this);

}

}

@Override

public void actionPerformed(ActionEvent e) {//定義事件

// TODO Auto-generated method stub

Object target=e.getSource();

String lable=e.getActionCommand();

if(target==reset){

handleReset();

}else if("0123456789.".indexOf(lable)0){

handleNumber(lable);

}else{

hadleOperator(lable);

}

}

boolean isFirstDigit=true;

private void hadleOperator(String key) {

if(operator.equals("+")){

number += Double.valueOf(display.getText());

}else if (operator.equals("-")){

number -= Double.valueOf(display.getText());

}else if (operator.equals("*")){

number *= Double.valueOf(display.getText());

}else if (operator.equals("/")){

number /= Double.valueOf(display.getText());

}else if(operator.equals("=")){

number =Double.valueOf(display.getText());

}

display.setText(String.valueOf(number));

operator=key;

isFirstDigit=true;

}

private void handleNumber(String key) {

if(true){

display.setText(key);//把鍵值設置為文本框內容

}else if(key.equals(".") display.getText().indexOf(".")0){

display.setText(display.getText()+".");//把文本框內容設置:display.getText()+"."

}else if(!key.equals(".")){

display.setText(display.getText() + key);//把文本框內容設置:display.getText()+key

isFirstDigit=false;

}

}

private void handleReset() {

display.setText("0");

isFirstDigit=true;

operator="=";

}

String operator="=";

Double number=0.0;

}

怎么用JAVA編程編寫一個計算器?

打開IED:打開自己java編程的軟件,采用的是eclipse軟件。

建立java工程。

編寫類。

編寫類的詳細步驟

1.類的基本結構:

由于這里用到了界面,所以要進行窗口界面的編程,按鈕事件的處理,和計算處理界面;

package MyCaculator;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyCaculator extends JFrame {

private int add=1,sub=2,mul=3,div=4;

private int op=0;

boolean ifOp;

private String output="0";

private Button[] jba=new Button[]{new Button("7"),new Button("8"),

new Button("9"),new Button("+"),

new Button("4"),new Button("5"),new Button("6"),new Button("-"),

new Button("1"),new Button("2"),new Button("3"),new Button("*"),

new Button("0"),new Button("."),new Button("="),new Button("/")};

private JPanel jpt=new JPanel();

private JPanel jpb=new JPanel();

private JTextField jtf=new JTextField("");

private MyCaculator(){

}

private void operate(String x){

}

public String add(String x){

return output;

}

public String subtract(String x){

return output;

}

public String multiply(String x){

return output;

}

public String divide(String x){

return output;

}

public String Equals(String x){

return output;

}

public void opClean(){

}

class setOperate_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

}

}

class setLabel_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

}

}

public static void main(String[] args) {

}

}

2.建立構造方法:

所謂構造方法就是,對自己的主類進行初始化,代碼如下:

private MyCaculator(){

jpt.setLayout(new BorderLayout());

jpt.add(jtf);

this.add(jpt,BorderLayout.NORTH);

jpb.setLayout(new GridLayout(4,4));

for(int i=0;ijba.length;i++){

jpb.add(jba[i]);

if(i==3||i==7||i==11||i==15||i==14)

jba[i].addActionListener(new setOperate_Act());

else

jba[i].addActionListener(new setLabel_Act());

}

this.add(jpb,BorderLayout.CENTER);

this.setSize(250, 200);

this.setResizable(false);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

3.建立數(shù)據(jù)計算方法

這里的數(shù)據(jù)計算方法有6個,一個是主方法其他幾個是加減乘除的處理方法,代碼如下:

private void operate(String x){

double x1=Double.valueOf(x);

double y=Double.valueOf(output);

switch(op){

case 0:output=x;break;

case 1:output=String.valueOf(y+x1);break;

case 2:output =String.valueOf(y-x1);break;

case 3:output =String.valueOf(y*x1);break;

case 4:

if(x1!=0) output=String.valueOf(y/x1);

else output="不能為0";

break;

}

}

public String add(String x){

operate(x);

op=add;

return output;

}

public String subtract(String x){

operate(x);

op=sub;

return output;

}

public String multiply(String x){

operate(x);

op=mul;

return output;

}

public String divide(String x){

operate(x);

op=div;

return output;

}

public String Equals(String x){

operate(x);

op=0;

return output;

}

public void opClean(){

op=0;

output ="0";

}

4.事件處理方法

這里的時間處理方法,沒有建立一個整體的方法,二是在為了便于處理的方法,將按鈕事件分成兩個部分,并采用兩個子類來實現(xiàn),這兩個類時內部類要寫在主類內部的,代碼如下:

class setOperate_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

if(e.getSource()==jba[3]){

jtf.setText(add(jtf.getText()));

ifOp=true;

}

else if(e.getSource()==jba[7]){

jtf.setText(subtract(jtf.getText()));

ifOp=true;

}

else if(e.getSource()==jba[11]){

jtf.setText(multiply(jtf.getText()));

ifOp=true;

}

else if(e.getSource()==jba[15]){

jtf.setText(divide(jtf.getText()));

ifOp=true;

}

else if(e.getSource()==jba[14]){

jtf.setText(Equals(jtf.getText()));

ifOp=true;

}

}

}

class setLabel_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

Button tempb=(Button)e.getSource();

if(ifOp){

jtf.setText(tempb.getLabel());

ifOp=false;

}else {

jtf.setText(jtf.getText()+tempb.getLabel());

}

}

}

5.建立main方法:

要想實現(xiàn)我們的代碼,我們需在main方法中,實例化我們的對象。

public static void main(String[] args) {

new MyCaculator();

}

本文標題:Java代碼寫計算器解析,java語言編寫計算器
本文地址:http://www.ekvhdxd.cn/article24/hegije.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、服務器托管、面包屑導航、網(wǎng)站收錄、網(wǎng)站設計公司商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作