成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java大作業(yè)代碼及報告 java大作業(yè)總結

Java計算器實驗報告(含代碼),急?。。?!

給你一個吧。

成都創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設、成都網(wǎng)站設計,集網(wǎng)站策劃、網(wǎng)站設計、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營銷、軟文營銷等專業(yè)人才根據(jù)搜索規(guī)律編程設計,讓網(wǎng)站在運行后,在搜索中有好的表現(xiàn),專業(yè)設計制作為您帶來效益的網(wǎng)站!讓網(wǎng)站建設為您創(chuà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() {

// 文本框中的內(nèi)容采用右對齊方式

resultText.setHorizontalAlignment(JTextField.RIGHT);

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

resultText.setEditable(false);

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

resultText.setBackground(Color.white);

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

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);

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

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鍵放在一個畫板內(nèi)

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畫板放在該畫板內(nèi)

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) {

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

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的大作業(yè)

這種事情還是自己做吧。

要代碼還要報告,本來就是你自己學習的內(nèi)容。

這樣讓人幫忙,對你沒好處,對幫忙的人也沒好處呀。

java大作業(yè),麻煩大神了,先給一百分,解決了,后加一百

復數(shù)類:

/**

*復數(shù)類

* @author sunsnowad

*/

public class Plural {

double real, unreal;

public Plural(double real, double unreal){

this.real = real;

this.unreal = unreal;

}

private Plural() {

real = 0.0;

unreal = 0.0;

}

public Plural add(Plural a, Plural b){

return new Plural(a.getReal()+b.getReal(), a.getUnreal()+b.getUnreal());

}

public Plural minus(Plural a, Plural b){

return new Plural(a.getReal()-b.getReal(), a.getUnreal()-b.getUnreal());

}

public Plural multi(Plural a, Plural b){

return new Plural(a.getReal()*b.getReal()-a.getUnreal()*b.getUnreal(),

a.getUnreal()*b.getReal() + a.getReal()*b.getUnreal());

}

public Plural division(Plural a, Plural b){

double middleResult = a.getReal()*a.getReal() + a.getUnreal()*b.getUnreal();

double realResult = (a.getReal()*b.getReal()+a.getUnreal()*b.getUnreal())/middleResult;

double unrealResult = (a.getUnreal()*b.getReal()-a.getReal()*b.getUnreal())/middleResult;

return new Plural(realResult, unrealResult);

}

public double getReal() {

return real;

}

public void setReal(double real) {

this.real = real;

}

public double getUnreal() {

return unreal;

}

public void setUnreal(double unreal) {

this.unreal = unreal;

}

@Override

public String toString(){

return real + "+" + unreal + "i";

}

public static Plural parsePlural(String plural){

plural = plural.trim();

String realString = "";

String unrealString = "";

if(plural.contains("i")){

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

if(plural.charAt(i) == '+'){

for(int j = i + 1; j plural.length()-1; j ++){

unrealString += plural.charAt(j);

}

break;

}

realString+=plural.charAt(i);

}

}

//TODO else

return new Plural(Double.parseDouble(realString), Double.parseDouble(unrealString));

}

}

Applet測試程序(使用Netbeans設計工具):

/**

*

* @author sunsnowad

*/

public class PluralTest extends javax.swing.JApplet {

/** Initializes the applet PluralTest */

public void init() {

try {

java.awt.EventQueue.invokeAndWait(new Runnable() {

public void run() {

initComponents();

}

});

} catch (Exception ex) {

ex.printStackTrace();

}

}

/** This method is called from within the init() method to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this method is

* always regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

// editor-fold defaultstate="collapsed" desc="Generated Code"

private void initComponents() {

jLabel1 = new javax.swing.JLabel();

jTextField1 = new javax.swing.JTextField();

jLabel2 = new javax.swing.JLabel();

jTextField2 = new javax.swing.JTextField();

jButton1 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

jButton3 = new javax.swing.JButton();

jButton4 = new javax.swing.JButton();

jLabel3 = new javax.swing.JLabel();

jLabel1.setText("實數(shù)1:");

jTextField1.setText("4+5i");

jLabel2.setText("實數(shù)2:");

jTextField2.setText("5+4.4i");

jButton1.setText("加");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jButton2.setText("減");

jButton2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

jButton3.setText("乘");

jButton3.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton3ActionPerformed(evt);

}

});

jButton4.setText("除");

jButton4.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton4ActionPerformed(evt);

}

});

jLabel3.setText("結果:");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 143, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel2)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jTextField2)))

.addComponent(jButton4)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jButton3)

.addComponent(jButton2))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 331, Short.MAX_VALUE))

.addComponent(jButton1))

.addContainerGap())

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel1)

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel2)

.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jButton1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jButton2)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jButton3)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jButton4))

.addGroup(layout.createSequentialGroup()

.addGap(47, 47, 47)

.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap(122, Short.MAX_VALUE))

);

}// /editor-fold

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

Plural a = Plural.parsePlural(jTextField1.getText());

Plural b = Plural.parsePlural(jTextField2.getText());

jLabel3.setText(a.add(a, b).toString());

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

Plural a = Plural.parsePlural(jTextField1.getText());

Plural b = Plural.parsePlural(jTextField2.getText());

jLabel3.setText(a.minus(a, b).toString());

}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

Plural a = Plural.parsePlural(jTextField1.getText());

Plural b = Plural.parsePlural(jTextField2.getText());

jLabel3.setText(a.multi(a, b).toString());

}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

Plural a = Plural.parsePlural(jTextField1.getText());

Plural b = Plural.parsePlural(jTextField2.getText());

jLabel3.setText(a.division(a, b).toString());

}

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton2;

private javax.swing.JButton jButton3;

private javax.swing.JButton jButton4;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JTextField jTextField1;

private javax.swing.JTextField jTextField2;

// End of variables declaration

最近老師讓做個JAVA大作業(yè),還要附帶項目報告

學生的話,主要就是項目介紹:1項目名稱,2項目用途,3項目功能介紹以及操作4項目意義

JAVA實訓報告

1、 實訓的題目及簡介:

題目:java計算器應用程序

簡介:通過本程序可以實現(xiàn)計算器的基本功能。程序是Frame類的子類。使用GridLayout的布局方式對組件進行布局,用Panel類的容器存放按扭、文本框組件,程序中也用到大量的else-----if語句。

2、 設計說明:

一實驗目的

通過實訓能夠結合實例進一步理解面向?qū)ο蟪绦蛟O計的基本概念,掌握程序設計的基本方法和技巧,靈活的使用包,進一步的理解接口,熟練的掌握在接口中對事件的實現(xiàn)。深入理解和靈活運用面向?qū)ο蟪绦蛟O計的基本特性,培養(yǎng)良好的程序設計風格,提高抽象思維、邏輯思維的能力。

二實驗內(nèi)容

編寫一個實現(xiàn)計算器應用程序

三 程序介紹及其功能的實現(xiàn)

程序需要導入import java.awt.*、 import java.awt.event.*、 import java.lang.*、 import javax.swing.*包。①程序的基本框架是:首先定義一個Frame類的子類,之后聲明三個面板的布局,即定義了GridLayout類的三個對象gl1、gl2、gl3。之后是定義了Panel類的容器的四個對象p0、p1、p2、p3,其中p0用來存放顯示屏文本框組件,p1采用gl1布局,用來存放刪除和歸零按鈕,p3采用gl3布局,用來存放數(shù)字按鈕和運算符按鈕,p2采用gl2布局,用來存放其它功能按鈕鍵按鈕。②具體的實現(xiàn)過程是:⑴、程序定義了JTextField類的對象tf1和TextField類的對象tf2及26個button類的按鈕,在Counter類的構造方法中分別對各個對象進行了初始化,對面板進行了合適的布局,各個按鈕也相應的添加到相應的容器中,在實例化所有按鈕、設置其前景色的同時并注冊監(jiān)聽器。

⑵、對各個組件進行相應的設計之后,即程序運行之后的可視化界面完成之后開始實現(xiàn)程序內(nèi)部的事件過程,即接口的實現(xiàn)。定義了一個名為 Bt的類來實現(xiàn)接口,程序在actionPerformed( )方法中對各個按鈕和文本框組件的具體方法進行實現(xiàn),程序中不斷的用else—if語句對按鈕操作事件的實現(xiàn),并對事件的異常進行處理。

3.程序清單

import java.awt.*;

import java.awt.event.*;

import java.lang.*;

import javax.swing.*;

public class Counter extends Frame

{

//聲明三個面板的布局

GridLayout gl1,gl2,gl3;

Panel p0,p1,p2,p3;

JTextField tf1;

TextField tf2;

Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;

StringBuffer str;//顯示屏所顯示的字符串

double x,y;//x和y都是運算數(shù)

int z;//Z表示單擊了那一個運算符.0表示"+",1表示"-",2表示"*",3表示"/"

static double m;//記憶的數(shù)字

public Counter()

{

gl1=new GridLayout(1,4,10,0);//實例化三個面板的布局

gl2=new GridLayout(4,1,0,15);

gl3=new GridLayout(4,5,10,15);

tf1=new JTextField(27);//顯示屏

tf1.setHorizontalAlignment(JTextField.RIGHT);

tf1.setEnabled(false);

tf1.setText("0");

tf2=new TextField(10);//顯示記憶的索引值

tf2.setEditable(false);

//實例化所有按鈕、設置其前景色并注冊監(jiān)聽器

b0=new Button("Backspace");

b0.setForeground(Color.red);

b0.addActionListener(new Bt());

b1=new Button("CE");

b1.setForeground(Color.red);

b1.addActionListener(new Bt());

b2=new Button("C");

b2.setForeground(Color.red);

b2.addActionListener(new Bt());

b3=new Button("MC");

b3.setForeground(Color.red);

b3.addActionListener(new Bt());

b4=new Button("MR");

b4.setForeground(Color.red);

b4.addActionListener(new Bt());

b5=new Button("MS");

b5.setForeground(Color.red);

b5.addActionListener(new Bt());

b6=new Button("M+");

b6.setForeground(Color.red);

b6.addActionListener(new Bt());

b7=new Button("7");

b7.setForeground(Color.blue);

b7.addActionListener(new Bt());

b8=new Button("8");

b8.setForeground(Color.blue);

b8.addActionListener(new Bt());

b9=new Button("9");

b9.setForeground(Color.blue);

b9.addActionListener(new Bt());

b10=new Button("/");

b10.setForeground(Color.red);

b10.addActionListener(new Bt());

b11=new Button("sqrt");

b11.setForeground(Color.blue);

b11.addActionListener(new Bt());

b12=new Button("4");

b12.setForeground(Color.blue);

b12.addActionListener(new Bt());

b13=new Button("5");

b13.setForeground(Color.blue);

b13.addActionListener(new Bt());

b14=new Button("6");

b14.setForeground(Color.blue);

b14.addActionListener(new Bt());

b15=new Button("*");

b15.setForeground(Color.red);

b15.addActionListener(new Bt());

b16=new Button("%");

b16.setForeground(Color.blue);

b16.addActionListener(new Bt());

b17=new Button("1");

b17.setForeground(Color.blue);

b17.addActionListener(new Bt());

b18=new Button("2");

b18.setForeground(Color.blue);

b18.addActionListener(new Bt());

b19=new Button("3");

b19.setForeground(Color.blue);

b19.addActionListener(new Bt());

b20=new Button("-");

b20.setForeground(Color.red);

b20.addActionListener(new Bt());

b21=new Button("1/X");

b21.setForeground(Color.blue);

b21.addActionListener(new Bt());

b22=new Button("0");

b22.setForeground(Color.blue);

b22.addActionListener(new Bt());

b23=new Button("+/-");

b23.setForeground(Color.blue);

b23.addActionListener(new Bt());

b24=new Button(".");

b24.setForeground(Color.blue);

b24.addActionListener(new Bt());

b25=new Button("+");

b25.setForeground(Color.red);

b25.addActionListener(new Bt());

b26=new Button("=");

b26.setForeground(Color.red);

b26.addActionListener(new Bt());

//實例化四個面板

p0=new Panel();

p1=new Panel();

p2=new Panel();

p3=new Panel();

//創(chuàng)建一個空字符串緩沖區(qū)

str=new StringBuffer();

//添加面板p0中的組件和設置其在框架中的位置和大小

p0.add(tf1);

p0.setBounds(10,25,300,40);

//添加面板p1中的組件和設置其在框架中的位置和大小

p1.setLayout(gl1);

p1.add(tf2);

p1.add(b0);

p1.add(b1);

p1.add(b2);

p1.setBounds(10,65,300,25);

//添加面板p2中的組件并設置其的框架中的位置和大小

p2.setLayout(gl2);

p2.add(b3);

p2.add(b4);

p2.add(b5);

p2.add(b6);

p2.setBounds(10,110,40,150);

//添加面板p3中的組件并設置其在框架中的位置和大小

p3.setLayout(gl3);//設置p3的布局

p3.add(b7);

p3.add(b8);

p3.add(b9);

p3.add(b10);

p3.add(b11);

p3.add(b12);

p3.add(b13);

p3.add(b14);

p3.add(b15);

p3.add(b16);

p3.add(b17);

p3.add(b18);

p3.add(b19);

p3.add(b20);

p3.add(b21);

p3.add(b22);

p3.add(b23);

p3.add(b24);

p3.add(b25);

p3.add(b26);

p3.setBounds(60,110,250,150);

//設置框架中的布局為空布局并添加4個面板

setLayout(null);

add(p0);

add(p1);

add(p2);

add(p3);

setResizable(false);//禁止調(diào)整框架的大小

//匿名類關閉窗口

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e1)

{

System.exit(0);

}

});

setBackground(Color.lightGray);

setBounds(100,100,320,280);

setVisible(true);

}

//構造監(jiān)聽器

class Bt implements ActionListener

{

public void actionPerformed(ActionEvent e2)

{

try{

if(e2.getSource()==b1)//選擇"CE"清零

{

tf1.setText("0");//把顯示屏清零

str.setLength(0);//清空字符串緩沖區(qū)以準備接收新的輸入運算數(shù)

}

else if(e2.getSource()==b2)//選擇"C"清零

{

tf1.setText("0");//把顯示屏清零

str.setLength(0);

}

else if(e2.getSource()==b23)//單擊"+/-"選擇輸入的運算數(shù)是正數(shù)還是負數(shù)

{

x=Double.parseDouble(tf1.getText().trim());

tf1.setText(""+(-x));

}

else if(e2.getSource()==b25)//單擊加號按鈕獲得x的值和z的值并清空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);//清空緩沖區(qū)以便接收新的另一個運算數(shù)

y=0d;

z=0;

}

else if(e2.getSource()==b20)//單擊減號按鈕獲得x的值和z的值并清空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);

y=0d;

z=1;

}

else if(e2.getSource()==b15)//單擊乘號按鈕獲得x的值和z的值并清空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);

y=0d;

z=2;

}

else if(e2.getSource()==b10)//單擊除號按鈕獲得x的值和z的值并空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);

y=0d;

z=3;

}

else if(e2.getSource()==b26)//單擊等號按鈕輸出計算結果

{

str.setLength(0);

switch(z)

{

case 0 : tf1.setText(""+(x+y));break;

case 1 : tf1.setText(""+(x-y));break;

case 2 : tf1.setText(""+(x*y));break;

case 3 : tf1.setText(""+(x/y));break;

}

}

else if(e2.getSource()==b24)//單擊"."按鈕輸入小數(shù)

{

if(tf1.getText().trim().indexOf('.')!=-1)//判斷字符串中是否已經(jīng)包含了小數(shù)點

{

}

else//如果沒數(shù)點有小

{

if(tf1.getText().trim().equals("0"))//如果初時顯示為0

{

str.setLength(0);

tf1.setText((str.append("0"+e2.getActionCommand())).toString());

}

else if(tf1.getText().trim().equals(""))//如果初時顯示為空則不做任何操作

{

}

else

{

tf1.setText(str.append(e2.getActionCommand()).toString());

}

}

y=0d;

}

else if(e2.getSource()==b11)//求平方根

{

x=Double.parseDouble(tf1.getText().trim());

tf1.setText("數(shù)字格式異常");

if(x0)

tf1.setText("負數(shù)沒有平方根");

else

tf1.setText(""+Math.sqrt(x));

str.setLength(0);

y=0d;

}

else if(e2.getSource()==b16)//單擊了"%"按鈕

{

x=Double.parseDouble(tf1.getText().trim());

tf1.setText(""+(0.01*x));

str.setLength(0);

y=0d;

}

else if(e2.getSource()==b21)//單擊了"1/X"按鈕

{

x=Double.parseDouble(tf1.getText().trim());

if(x==0)

{

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

}

else

{

tf1.setText(""+(1/x));

}

str.setLength(0);

y=0d;

}

else if(e2.getSource()==b3)//MC為清除內(nèi)存

{

m=0d;

tf2.setText("");

str.setLength(0);

}

else if(e2.getSource()==b4)//MR為重新調(diào)用存儲的數(shù)據(jù)

{

if(tf2.getText().trim()!="")//有記憶數(shù)字

{

tf1.setText(""+m);

}

}

else if(e2.getSource()==b5)//MS為存儲顯示的數(shù)據(jù)

{

m=Double.parseDouble(tf1.getText().trim());

tf2.setText("M");

tf1.setText("0");

str.setLength(0);

}

else if(e2.getSource()==b6)//M+為將顯示的數(shù)字與已經(jīng)存儲的數(shù)據(jù)相加要查看新的數(shù)字單擊MR

{

m=m+Double.parseDouble(tf1.getText().trim());

}

else//選擇的是其他的按鈕

{

if(e2.getSource()==b22)//如果選擇的是"0"這個數(shù)字鍵

{

if(tf1.getText().trim().equals("0"))//如果顯示屏顯示的為零不做操作

{

}

else

{

tf1.setText(str.append(e2.getActionCommand()).toString());

y=Double.parseDouble(tf1.getText().trim());

}

}

else if(e2.getSource()==b0)//選擇的是“BackSpace”按鈕

{

if(!tf1.getText().trim().equals("0"))//如果顯示屏顯示的不是零

{

if(str.length()!=1)

{

tf1.setText(str.delete(str.length()-1,str.length()).toString());//可能拋出字符串越界異常

}

else

{

tf1.setText("0");

str.setLength(0);

}

}

y=Double.parseDouble(tf1.getText().trim());

}

else//其他的數(shù)字鍵

{

tf1.setText(str.append(e2.getActionCommand()).toString());

y=Double.parseDouble(tf1.getText().trim());

}

}

}

catch(NumberFormatException e){

tf1.setText("數(shù)字格式異常");

}

catch(StringIndexOutOfBoundsException e){

tf1.setText("字符串索引越界");

}

}

}

public static void main(String args[])

{

new Counter();

}

}

4、調(diào)試結果

5、實習體會

當前文章:java大作業(yè)代碼及報告 java大作業(yè)總結
文章出自:http://jinyejixie.com/article28/dodojjp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、營銷型網(wǎng)站建設、App開發(fā)Google、靜態(tài)網(wǎng)站域名注冊

廣告

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

成都網(wǎng)站建設
子长县| 乌兰察布市| 崇文区| 伊春市| 六枝特区| 上林县| 龙江县| 武胜县| 壶关县| 壶关县| 松江区| 滦平县| 阿图什市| 台北市| 大荔县| 郸城县| 商都县| 怀安县| 高雄县| 广丰县| 体育| 双桥区| 土默特左旗| 彩票| 法库县| 新平| 潜江市| 康保县| 福清市| 吴旗县| 墨玉县| 金华市| 罗甸县| 文安县| 德惠市| 德兴市| 乳山市| 舒城县| 进贤县| 沁阳市| 虎林市|