導航:首頁 > 編程語言 > java實驗報告計算器

java實驗報告計算器

發布時間:2022-08-02 21:44:20

1. 用java編寫一個計算器

importjava.awt.BorderLayout;

importjava.awt.Color;

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.ImageIcon;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

importjavax.swing.SwingConstants;

{

/**

*

*/

=1L;

Resultresult=newResult();//定義text的面板

Number_Keynumber_key=newNumber_Key();//定義按鈕面板

//當點擊按鈕+、-、*、/時,com=true

booleancom=false;

//當i=0時說明是我們第一次輸入,字元串text不會累加

inti=0;

//存放text的內容

Stringtext="";

//存放點擊按鈕+、-、*、/之前的數值

doubledefbutton=0;

//+、-、*、/的代號分別為1,2,3,4

intsymbol=0;

//構造函數

Jisuanqi(){

super("WangJiao");//設定標題

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設定關閉窗體時退出程序

JPanelpane=newJPanel();//定義主面板

pane.setLayout(newBorderLayout());

setBounds(380,220,30,80);//前兩個參數是在屏幕上顯示的坐標,後兩個是大小

//替換圖標

ImageIconicon=newImageIcon("F:1.GIF");

//Jisuanqi.class.getResource("APPLE.GIF")

//);

setIconImage(icon.getImage());

pane.add(result,BorderLayout.NORTH);

pane.add(number_key,BorderLayout.CENTER);

pane.add(number_key.equal,BorderLayout.SOUTH);

number_key.one.addActionListener(this);//對1按鈕添加監聽事件

number_key.two.addActionListener(this);//對2按鈕添加監聽事件

number_key.three.addActionListener(this);//對3按鈕添加監聽事件

number_key.four.addActionListener(this);//對4按鈕添加監聽事件

number_key.five.addActionListener(this);//對5按鈕添加監聽事件

number_key.six.addActionListener(this);//對6按鈕添加監聽事件

number_key.seven.addActionListener(this);//對7按鈕添加監聽事件

number_key.eight.addActionListener(this);//對8按鈕添加監聽事件

number_key.nine.addActionListener(this);//對9按鈕添加監聽事件

number_key.zero.addActionListener(this);//對0按鈕添加監聽事件

number_key.ce.addActionListener(this);//對置零按鈕添加監聽事件

number_key.plus.addActionListener(this);//對+按鈕添加監聽事件

number_key.equal.addActionListener(this);//對=按鈕添加監聽事件

number_key.sub.addActionListener(this);//對-按鈕添加監聽事件

number_key.mul.addActionListener(this);//對*按鈕添加監聽事件

number_key.div.addActionListener(this);//對/按鈕添加監聽事件

number_key.point.addActionListener(this);//對.按鈕添加監聽事件

setContentPane(pane);

pack();//初始化窗體大小為正好盛放所有按鈕

}

//各個按鈕觸發的事件

publicvoidactionPerformed(ActionEvente){

/*

*如果是點擊數字按鈕那麼先要判斷是否在此之前點擊了+、-、*、/、=,如果是那麼com=true如果沒有com=

*false;或者是否點擊數字鍵,如果是i=1,如果沒有i=0;

*/

if(e.getSource()==number_key.one){

if(com||i==0){

result.text.setText("1");

com=false;

i=1;

}else{

text=result.text.getText();

result.text.setText(text+"1");

}

}elseif(e.getSource()==number_key.two){

if(com||i==0){

result.text.setText("2");

com=false;

i=1;

}else{

text=result.text.getText();

result.text.setText(text+"2");

}

}elseif(e.getSource()==number_key.three){

if(com||i==0){

result.text.setText("3");

com=false;

i=1;

}else{

text=result.text.getText();

result.text.setText(text+"3");

}

}elseif(e.getSource()==number_key.four){

if(com||i==0){

result.text.setText("4");

com=false;

i=1;

}else{

text=result.text.getText();

result.text.setText(text+"4");

}

}elseif(e.getSource()==number_key.five){

if(com||i==0){

result.text.setText("5");

com=false;

i=1;

}else{

text=result.text.getText();

result.text.setText(text+"5");

}

}elseif(e.getSource()==number_key.six){

if(com||i==0){

result.text.setText("6");

com=false;

i=1;

}else{

text=result.text.getText();

result.text.setText(text+"6");

}

}elseif(e.getSource()==number_key.seven){

if(com||i==0){

result.text.setText("7");

com=false;

i=1;

}else{

text=result.text.getText();

result.text.setText(text+"7");

}

}elseif(e.getSource()==number_key.eight){

if(com||i==0){

result.text.setText("8");

com=false;

i=1;

}else{

text=result.text.getText();

result.text.setText(text+"8");

}

}elseif(e.getSource()==number_key.nine){

if(com||i==0){

result.text.setText("9");

com=false;

i=1;

}else{

text=result.text.getText();

result.text.setText(text+"9");

}

}

/*

*對於0這個按鈕有一定的說法,在我的程序里不會出現如00000這樣的情況,我加了判斷條件就是

*如果text中的數值=0就要判斷在這個數值中是否有.存在?如果有那麼就在原來數值基礎之上添加0;否則保持原來的數值不變

*/

elseif(e.getSource()==number_key.zero){//result.text.getText()是得到text里內容的意思

if(com||i==0){

result.text.setText("0");

com=false;

i=1;

}else{

text=result.text.getText();

if(Float.parseFloat(text)>0||Float.parseFloat(text)<0){//Float.parseFloat(text)就是類型轉換了,下面都是一樣

result.text.setText(text+"0");

}else{

if(text.trim().indexOf(".")==-1){

result.text.setText(text);

}else{

result.text.setText(text+"0");

}

}

}

}elseif(e.getSource()==number_key.ce){

result.text.setText("0");

i=0;

com=true;

//text="";

defbutton=0;

}

/*

*本程序不會讓一個數值中出現2個以上的小數點.具體做法是:判斷是否已經存在.存在就不添加,不存在就添加.

*/

elseif(e.getSource()==number_key.point){

if(com||i==0){

result.text.setText("0.");

com=false;

i=1;

}else{

text=result.text.getText();

if(text.trim().indexOf(".")==-1){

result.text.setText(text+".");

}else{

result.text.setText(text);

}

}

}//獲得點擊+之前的數值

elseif(e.getSource()==number_key.plus){

com=true;

i=0;

defbutton=Double.parseDouble(result.text.getText());

symbol=1;

}//獲得點擊-之前的數值

elseif(e.getSource()==number_key.sub){

com=true;

i=0;

defbutton=Double.parseDouble(result.text.getText());

symbol=2;

}//獲得點擊*之前的數值

elseif(e.getSource()==number_key.mul){

com=true;

i=0;

defbutton=Double.parseDouble(result.text.getText());

System.out.println(defbutton);

symbol=3;

}//獲得點擊/之前的數值

elseif(e.getSource()==number_key.div){

com=true;

i=0;

defbutton=Double.parseDouble(result.text.getText());

symbol=4;

}elseif(e.getSource()==number_key.equal){

switch(symbol){

case1:{//計算加法

doublead=defbutton

+Double.parseDouble(result.text.getText());

result.text.setText(ad+"");

i=0;

text="";

break;

}

case2:{//計算減法

doublead=defbutton

-Double.parseDouble(result.text.getText());

result.text.setText(String.valueOf(ad));

i=0;

text="";

break;

}

case3:{//計算乘法

doublead=defbutton

*Double.parseDouble(result.text.getText());

result.text.setText(ad+"");

i=0;

text="";

break;

}

case4:{//計算除法

doublead=defbutton

/Double.parseDouble(result.text.getText());

result.text.setText(ad+"");

i=0;

text="";

break;

}

}

System.out.println(com);

}

System.out.println(result.text.getText());

}

@SuppressWarnings("deprecation")

publicstaticvoidmain(String[]args){

Jisuanqiloveyou=newJisuanqi();

loveyou.show();

}

}

//計算器數字按鈕定義面板

classNumber_KeyextendsJPanel{

/**

*

*/

=1L;

JButtonzero=newJButton("0");//數字鍵0

JButtonone=newJButton("1");//數字鍵1

JButtontwo=newJButton("2");//數字鍵2

JButtonthree=newJButton("3");//數字鍵3

JButtonfour=newJButton("4");//數字鍵4

JButtonfive=newJButton("5");//數字鍵5

JButtonsix=newJButton("6");//數字鍵6

JButtonseven=newJButton("7");//數字鍵7

JButtoneight=newJButton("8");//數字鍵8

JButtonnine=newJButton("9");//數字鍵9

JButtonplus=newJButton("+");

JButtonsub=newJButton("-");

JButtonmul=newJButton("*");

JButtondiv=newJButton("/");

JButtonequal=newJButton("=");

JButtonce=newJButton("清零");//置零鍵

JButtonpoint=newJButton(".");

Number_Key(){

setLayout(newGridLayout(4,4,1,1));//定義布局管理器為網格布局

setBackground(Color.blue);//設置背景顏色

//添加按鈕

add(one);

add(two);

add(three);

add(four);

add(five);

add(six);

add(seven);

add(eight);

add(nine);

add(zero);

add(plus);

add(sub);

add(mul);

add(div);

add(point);

add(equal);

add(ce);

}

}

//計算器顯示結果的窗體

classResultextendsJPanel{

/**

*

*/

=1L;

//text先是輸入和結果

JTextFieldtext=newJTextField("0");

@SuppressWarnings("deprecation")

Result(){//講輸入的數字或得到的結果在text的右邊顯示

text.setHorizontalAlignment(SwingConstants.RIGHT);

text.enable(false);//文本框不能編輯

setLayout(newBorderLayout());//設定布局管理器邊框布局

add(text,BorderLayout.CENTER);//text放置在窗體的中間

}

}

直接復制保存成Jisuanqi.java可以直接運行了

2. java簡單計算器實驗報告

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class 計算器 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" };
private final String[] M = { " ", "MC", "MR", "MS", "M+" };
private JButton keys[] = new JButton[KEYS.length];
private JButton commands[] = new JButton[COMMAND.length];
private JButton m[] = new JButton[M.length];
private JTextField resultText = new JTextField();
private boolean firstDigit = true;
private double resultNum = 0.0;
private String operator = "=";
static double mr;// 記憶的數字
private boolean operateValidFlag = true;
JPanel panel[]=new JPanel[4];
public 計算器(){
super("計算器");
init();
setBackground(Color.LIGHT_GRAY);
setResizable(false);
setLocation(588, 250);
setSize(378,214);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); //窗口不能直接關閉
setVisible(true);
addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e){
if (JOptionPane.showConfirmDialog(null,"確定退出? ", "提示",2)==0){
System.exit(0);
}}});
}
private void init() {
setLayout(null);
for (int i = 0; i < 4; i++) {
panel[i]=new JPanel();
add(panel[i]);
}
panel[0].setLayout(new GridLayout(1,1,3,3));
panel[1].setLayout(new GridLayout(1,3,3,3));
panel[2].setLayout(new GridLayout(5,1,3,3));
panel[3].setLayout(new GridLayout(4,5,3,3));
resultText.setHorizontalAlignment(JTextField.RIGHT);
resultText.setAlignmentX(50);
resultText.setEditable(true);
resultText.setFont(new Font("宋體",Font.PLAIN,19));//設置字體
resultText.setBackground(Color.white);
panel[0].add(resultText);
for (int i = 0; i < KEYS.length; i++) {
keys[i] = new JButton(KEYS[i]);
panel[3].add(keys[i]);
if (i%5-3==0){ keys[i].setForeground(Color.red); }
else{keys[i].setForeground(Color.black);}
keys[i].setVisible(true);
keys[i].setFont(new Font(null,Font.PLAIN,17));//設置字體
keys[i].addActionListener(this);
keys[i].setHorizontalAlignment(keys[i].CENTER);
keys[i].setBackground(new Color(255,236,233));
}
keys[4].setFont(new Font(null,Font.PLAIN,13));//設置字體
keys[19].setForeground(Color.red);
for (int i = 0; i < COMMAND.length; i++) {
commands[i] = new JButton(COMMAND[i]);
panel[1].add(commands[i]);
commands[i].setForeground(Color.red);
commands[i].addActionListener(this);
}
commands[0].setFont(new Font(null,Font.PLAIN,12));//設置字體
for (int i = 0; i < M.length; i++) {
m[i] = new JButton(M[i]);
panel[2].add(m[i]);
m[i].setForeground(Color.red);
m[i].addActionListener(this);
}
panel[0].setBounds(2, 0, 370, 30);
panel[1].setBounds(74, 30, 298, 29);
panel[2].setBounds(2,30, 70, 150);
panel[3].setBounds(74,60, 300, 120);
validate();
}
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 (label.equals(M[4])){ //用戶按了"M+"鍵
mr=mr+Double.valueOf(resultText.getText()).doubleValue();
if (mr==0.0){m[0].setText("");}
else {m[0].setText("M");}
} else if (label.equals(M[3])){ //用戶按了"MS"鍵
mr=Double.valueOf(resultText.getText()).doubleValue();
if (mr==0.0){m[0].setText("");}
} else if (label.equals(M[2])){ //用戶按了"MR"鍵
resultText.setText(""+mr);
} else if (label.equals(M[1])){ //用戶按了"MC"鍵
mr=0.0;
m[0].setText("");
} else if (label.equals("sqrt")) { //平方根運算
resultNum = Math.sqrt(Double.valueOf(resultText.getText()).doubleValue());
resultText.setText(String.valueOf(resultNum));
} else if (label.equals("%")){ //百分號運算,除以100
resultNum = Double.valueOf(resultText.getText()).doubleValue() / 100;
resultText.setText(String.valueOf(resultNum));
} else if (label.equals("+/-")){ //正數負數運算
resultNum = Double.valueOf(resultText.getText()).doubleValue() * (-1);
resultText.setText(String.valueOf(resultNum));
} else if (label.equals("1/x")) { //倒數運算
resultNum=Double.valueOf(resultText.getText()).doubleValue();
if (resultNum == 0.0){ //操作不合法
operateValidFlag = false;
resultText.setText("零沒有倒數");
} else {
resultNum = 1 / resultNum;
}
resultText.setText(String.valueOf(resultNum));
} else if ("0123456789.".indexOf(label) >= 0) { //用戶按了數字鍵或者小數點鍵
handleNumber(label);
} else { //用戶按了運算符鍵
handleOperator(label);
}

}
private void handleBackspace() { // 處理Backspace鍵被按下的事件
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);
}
}
}
private void handleNumber(String key) { // 處理數字鍵被按下的事件
if (firstDigit) { //輸入的第一個數字
resultText.setText(key);
} else if ((key.equals(".")) && (resultText.getText().indexOf(".") < 0)){
//輸入的是小數點,並且之前沒有小數點,則將小數點附在結果文本框的後面
resultText.setText(resultText.getText() + ".");
} else if (!key.equals(".")) { //如果輸入的不是小數點,則將數字附在結果文本框的後面
resultText.setText(resultText.getText() + key);
}
firstDigit = false; //以後輸入的肯定不是第一個數字了
}
private void handleC() { //處理C鍵被按下的事件, 初始化計算器的各種值
resultText.setText("0");
firstDigit = true;
operator = "=";
}
private void handleOperator(String key) { //處理運算符鍵被按下的事件
if (operator.equals("÷")) { //除法運算 ,如果當前結果文本框中的值等於0
if (getNumberFromText() == 0.0){ //操作不合法
operateValidFlag = false;
resultText.setText("除數不能為零");
} else {
resultNum /= getNumberFromText();
}
} else if (operator.equals("+")){ //加法運算
resultNum += getNumberFromText();
} else if (operator.equals("-")){ //減法運算
resultNum -= getNumberFromText();
} else if (operator.equals("×")){ //乘法運算
resultNum *= getNumberFromText();
} else if (operator.equals("=")){ //賦值運算
resultNum = getNumberFromText();
}
if (operateValidFlag) { //雙精度浮點數的運算
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;
}
private double getNumberFromText() { // 從結果文本框中獲取數字
double result = 0;
try {
result = Double.valueOf(resultText.getText()).doubleValue();
}
catch (NumberFormatException e){ }
return result;
}
public static void main(String args[]) {
new 計算器();
}
}

3. 跪求JAVA簡易計算器的實驗報告,帶程序,麻煩有注釋

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Calcuator extends Frame implements ActionListener {
private JTextField num1, num2, result;
private JButton jiajb, jianjb, chengjb, chujb, againjb;// 定義加、減、乘、除和清空按鈕
private JLabel lb1;
int x, y;
private JPanel pan;

// 構造方法初始化變數
public Calcuator() {
pan = new JPanel();// 創建面板pan

num1 = new JTextField(10);
num2 = new JTextField(10);
result = new JTextField(10);

jiajb = new JButton("+");
jianjb = new JButton("-");
chengjb = new JButton("×");// 創建乘號按鈕
chujb = new JButton("÷");// 創建除號按鈕
againjb = new JButton("清空");// 創建清空按鈕

lb1 = new JLabel(" = ");// 創建等號標簽

// 依次各個按鈕注冊監聽器
jiajb.addActionListener(this);
jianjb.addActionListener(this);
chengjb.addActionListener(this);
chujb.addActionListener(this);
againjb.addActionListener(this);
this.addWindowListener(new myWindowAdapter());// 注冊窗體關閉監聽器

// 將各個文本框、按鈕、標簽依次粘貼到面板上
pan.add(num1);
pan.add(jiajb);
pan.add(jianjb);
pan.add(chengjb);
pan.add(chujb);
pan.add(num2);
pan.add(lb1);
pan.add(result);
pan.add(againjb);

this.add(pan);// 將面板粘貼到窗體上
this.pack();// 設置窗體大小為默認
this.setVisible(true);// 設置窗體為可見
}

//重寫actionPerformed方法,實現事件處理
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();

//把輸入的值賦值給x,y
try{
x = Integer.parseInt((num1.getText()));
y = Integer.parseInt((num2.getText()));

//用if語句控制計算
if (obj.equals(jiajb)) {
int result1 = x + y;
result.setText(Integer.toString(result1));//將運算結果賦值給result文本輸入框
}
if (obj.equals(jianjb)) {
int result1 = x - y;
result.setText(Integer.toString(result1));//將運算結果賦值給result文本輸入框
}
if (obj.equals(chengjb)) {
int result1 = x * y;
result.setText(Integer.toString(result1));//將運算結果賦值給result文本輸入框
}
if (obj.equals(chujb)) {
//利用try-catch語句,處理可能出現的異常

int result1 = x / y;
result.setText(Integer.toString(result1));//將運算結果賦值給result文本輸入框

}

} catch (ArithmeticException ex) {System.out.println("除數不能為0!");
String s = "除數不能為0";
JOptionPane.showMessageDialog(null, s, "Error",
JOptionPane.ERROR_MESSAGE);}//用showMessageDialog彈出錯誤對話框
catch(NumberFormatException ex){
JOptionPane.showMessageDialog(null, "輸入的不是數字", "Error",
JOptionPane.ERROR_MESSAGE);

}
catch(Exception ex){
JOptionPane.showMessageDialog(null, e.toString(), "Error",
JOptionPane.ERROR_MESSAGE);
}
//設置清空功能
if (obj.equals(againjb)) {
num1.setText("");
num2.setText("");
result.setText("");
}
}

//創建窗體關閉類,繼承WindowAdapter適配器
class myWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
//創建main方法作為程序主入口
public static void main(String arg[]) {
new Calcuator();
}
}

4. 用java編寫了一個最簡單的計算器的實驗報告怎麼寫

其實就是把你寫程序之前的思路,然後是過程中的遇到的問題,和你是怎麼解決的,寫完之後的總結,基本就是這個思路了

5. java 計算器課程設計報告

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;//導包

class MyClass extends JFrame
//創建一個MyClass類繼承JFrame框架的窗口類,
//也就是說JFrame里有的功能MyClass都能實現
{
JLabel a1=new JLabel("第一個數");
//創建一個顯示「第一個數」的標簽
JLabel a2=new JLabel("第二個數");
JLabel a3=new JLabel("運算結果");
JTextField b1=new JTextField(5);
//創建一個文本框、默認長度為5,用來輸入運算數字,當然也可以默認為空
JTextField b2=new JTextField(5);
JTextField b3=new JTextField(5);
//創建一個用於顯示運算結果的標簽,也可以創建一個標簽來顯示
JButton a=new JButton("加");
//創建一個用於加法計算的按鈕,點擊時進行加法運算
JButton b=new JButton("減");
JButton c=new JButton("乘");
JButton d=new JButton("除");
JPanel jp1=new JPanel();//創建一個面板,用來放控制項
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
MyClass()//構造函數,用來初始化的
{
setLayout(new GridLayout(3,1));//添加一個四行四列的布局管理器
jp1.setLayout(new FlowLayout());//設置JP1面板為流式布局管理器
jp1.setLayout(new FlowLayout());
//將a1,b1,a2,b2四個控制項添加到jp1面板中
jp1.add(a1);
jp1.add(b1);
jp1.add(a2);
jp1.add(b2);
jp1.add(a3);
//將a,b,c,d四個控制項添加到jp2面板中
jp2.add(a);
jp2.add(b);
jp2.add(c);
jp2.add(d);
jp3.add(a3);
jp3.add(b3);
//將jp1,jp2,jp3三個面板添加到窗口中
add(jp1);
add(jp3);
add(jp2);
Object e;
a.addActionListener(new ActionListener()
//創建一個匿名的事件監聽器
{

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double x=Double.valueOf(b1.getText().toString());
//獲取第一個輸入數,並將其由String型轉換成double型
double y=Double.valueOf(b2.getText().toString());
//獲取第二個輸入數,並將其由String型轉換成double型
b3.setText(""+(x+y));
//將運算結果在b3這個文本框中顯示
}

});
b.addActionListener(new ActionListener()
{

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double x=Double.valueOf(b1.getText().toString());
double y=Double.valueOf(b2.getText().toString());
b3.setText(""+(x-y));
}

});
c.addActionListener(new ActionListener()//創建一個匿名的事件監聽器
{

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double x=Double.valueOf(b1.getText().toString());
double y=Double.valueOf(b2.getText().toString());
b3.setText(""+(x*y));
}

});
d.addActionListener(new ActionListener()//創建一個匿名的事件監聽器
{

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double x=Double.valueOf(b1.getText().toString());
double y=Double.valueOf(b2.getText().toString());
//因為0不能做除數,所以在這里需要進行判斷
if(y==0)
{
b3.setText("錯誤");
}
else
{
b3.setText(""+(x/y));
}
}

});
//下面的是設置窗口的屬性
this.setTitle("計算器");//設置窗口的標題
//this.setSize(400,400);//設置窗口的大小,也可以改成this.pack()
this.pack();
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);//設置關閉屬性
this.setVisible(true);//設置窗口的可見性
}
public static void main(String[] args)//主函數
{
new MyClass();
}
}

6. 用JAVA編寫一個簡單的計算器,要求如下

以下是上圖計算器的代碼:

7. 用java編寫計算器,要求如下:

正好我們做過,給你發個吧。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.*;

public class Test6_1{
public static void main(String[] args){
MathWindow math=new MathWindow();//啟動程序
}
}
class MathWindow extends JFrame implements ActionListener{
GridLayout grid00=new GridLayout();//文本框的窗口布局,一行一列
GridLayout grid01=new GridLayout(1,3,5,5); //BackSpace、CE、C的窗口布局,一行三列
GridLayout grid1=new GridLayout(2,1,5,5); //二行一列,用於嵌套以上兩個窗口布局
GridLayout grid2=new GridLayout(4,5,5,5); //數字和運算符的窗口布局
BorderLayout border=new BorderLayout(5,5); //總窗口布局
JPanel j00=new JPanel();
JPanel j01=new JPanel();
JPanel j1=new JPanel(); //JPanel面板,後綴數字對應上述布局
JPanel j2=new JPanel();
JTextField 文本框=new JTextField("0"); //顯示框
JMenuBar 菜單條; //菜單條
JMenu 編輯,幫助; //菜單
JMenuItem 復制,粘貼,幫助主題,關於計算器; //菜單項
JButton 退格=new JButton("BackSpace");
JButton 清零=new JButton("CE");
JButton 清空=new JButton("C");
JButton B00=new JButton("7");
JButton B01=new JButton("8");
JButton B02=new JButton("9");
JButton B03=new JButton("/");
JButton B04=new JButton("sqrt"); //定義窗口中所有的按鈕
JButton B10=new JButton("4");
JButton B11=new JButton("5");
JButton B12=new JButton("6");
JButton B13=new JButton("*");
JButton B14=new JButton("%");
JButton B20=new JButton("1");
JButton B21=new JButton("2");
JButton B22=new JButton("3");
JButton B23=new JButton("-");
JButton B24=new JButton("1/x");
JButton B30=new JButton("0");
JButton B31=new JButton("+/-");
JButton B32=new JButton(".");
JButton B33=new JButton("+");
JButton B34=new JButton("=");
float num1=0; //運算數
char ch='#'; //運算符
String ="0"; //存儲
boolean can=false;
MathWindow(){
setTitle("計算器");//設置窗口名稱
setVisible(true);//設置可見性
setSize(400,300);//設置窗口初始大小
菜單條=new JMenuBar();
編輯=new JMenu("編輯(E)");
編輯.setMnemonic('E');
幫助=new JMenu("幫助(H)");
幫助.setMnemonic('H');
復制=new JMenuItem("復制(C)");
復制.setMnemonic('C');
復制.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));//設置快捷鍵
復制.addActionListener(this);//獲得監視器
粘貼=new JMenuItem("粘貼(P)");
粘貼.setMnemonic('P');
粘貼.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
粘貼.addActionListener(this);
幫助主題=new JMenuItem("幫助主題(H)");
幫助主題.setMnemonic('H');
幫助主題.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));
幫助主題.addActionListener(this);
關於計算器=new JMenuItem("關於計算器(A)");
關於計算器.setMnemonic('A');
關於計算器.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
關於計算器.addActionListener(this);
編輯.add(復制);
編輯.add(粘貼);
幫助.add(幫助主題);
幫助.addSeparator();
幫助.add(關於計算器);
菜單條.add(編輯);
菜單條.add(幫助);
setJMenuBar(菜單條);
setLayout(border);
j00.setLayout(grid00);
j00.add(文本框);
文本框.setEditable(false);
文本框.setHorizontalAlignment(JTextField.RIGHT);
j01.setLayout(grid01);
j01.add(退格);
j01.add(清零);
j01.add(清空);
退格.addActionListener(this);
清零.addActionListener(this);
清空.addActionListener(this);
j1.setLayout(grid1);
j1.add(j00);
j1.add(j01);
add(j1,"North");
j2.setLayout(grid2);
j2.add(B00);
j2.add(B01);
j2.add(B02);
j2.add(B03);
j2.add(B04);
j2.add(B10);
j2.add(B11);
j2.add(B12);
j2.add(B13);
j2.add(B14);
j2.add(B20);
j2.add(B21);
j2.add(B22);
j2.add(B23);
j2.add(B24);
j2.add(B30);
j2.add(B31);
j2.add(B32);
j2.add(B33);
j2.add(B34);
B00.addActionListener(this);
B01.addActionListener(this);
B02.addActionListener(this);
B03.addActionListener(this);
B04.addActionListener(this);
B10.addActionListener(this);
B11.addActionListener(this);
B12.addActionListener(this);
B13.addActionListener(this);
B14.addActionListener(this);
B20.addActionListener(this);
B21.addActionListener(this);
B22.addActionListener(this);
B23.addActionListener(this);
B24.addActionListener(this);
B30.addActionListener(this);
B31.addActionListener(this);
B32.addActionListener(this);
B33.addActionListener(this);
B34.addActionListener(this);
add(j2,"Center");
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
String act=e.getActionCommand();
if(e.getSource()==復制){
=文本框.getText();
}
if(e.getSource()==粘貼){
文本框.setText();
}
if(e.getSource()==幫助主題){
JOptionPane.showMessageDialog(null,"請參閱Windows幫助","幫助主題",JOptionPane.INFORMATION_MESSAGE);
}
if(e.getSource()==關於計算器){
JOptionPane.showMessageDialog(null,"名稱:簡單計算器\n作者:楊明宇\n學號:20101938\n版權所有,仿冒必究","關於計算器",JOptionPane.INFORMATION_MESSAGE);
}
if(e.getSource()==退格){
if(文本框.getText().length()>1){
文本框.setText(文本框.getText().substring(0,文本框.getText().length()-1));
}
else {
文本框.setText("0");
}
return;
}
if(e.getSource()==清零){
文本框.setText("0");
return;
}
if(e.getSource()==清空){
文本框.setText("0");
ch='#';
return;
}
if(act.equals("+/-")){
if(文本框.getText().charAt(0)!='-'){
文本框.setText("-"+文本框.getText());
}
else{
文本框.setText(文本框.getText().substring(1));return;
}
}
if(act.equals(".")){
文本框.setText(文本框.getText()+act);return;
}
if(act!="1/x"&&act.charAt(0)>='0'&&act.charAt(0)<='9'){
if(can){
文本框.setText(act);
can=false;
}
else{
try{
if(Float.parseFloat(文本框.getText())==0){
if(文本框.getText().equals("0.")){
文本框.setText(文本框.getText()+act);
}
else{
文本框.setText(act);
}
return;
}
else{
文本框.setText(文本框.getText()+act);
return;
}
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(null,"輸入格式錯誤!","警告!",JOptionPane.ERROR_MESSAGE);
return;
}
}
}
if(act.equals("+")||act.equals("-")||act.equals("*")||act.equals("/")||act.equals("%")){
if(ch!='#'){
try{
num1=計算(num1,ch,Float.parseFloat(文本框.getText()));
文本框.setText(String.valueOf(num1));
ch=act.charAt(0);
can=true;
return;
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(null,"輸入格式錯誤!","警告!",JOptionPane.ERROR_MESSAGE);
return;
}
}
else{
try{
num1=Float.parseFloat(文本框.getText());
ch=act.charAt(0);
can=true;
return;
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(null,"輸入格式錯誤!","警告!",JOptionPane.ERROR_MESSAGE);
return;
}
}
}
if(act.equals("sqrt")){
try{
float num=(float)Math.sqrt(Float.parseFloat(文本框.getText()));
文本框.setText(String.valueOf(num));
can=true;
return;
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(null,"輸入格式錯誤!","警告!",JOptionPane.ERROR_MESSAGE);
return;
}
}
if(act.equals("1/x")){
try{
float num=1/Float.parseFloat(文本框.getText());
文本框.setText(String.valueOf(num));
can=true;
return;
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(null,"輸入格式錯誤!","警告!",JOptionPane.ERROR_MESSAGE);
return;
}catch(ArithmeticException e1){
JOptionPane.showMessageDialog(null,"除0錯誤!","警告!",JOptionPane.ERROR_MESSAGE);
return;
}
}
if(act.equals("=")){
can=true;
try{
if(ch=='#'){
return;
}
float num=Float.parseFloat(文本框.getText());
num1=計算(num1,ch,num);
文本框.setText(String.valueOf(num1));
ch='#';
return;
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(null,"輸入格式錯誤!","警告!",JOptionPane.ERROR_MESSAGE);
return;
}
}
}
public float 計算(float a,char c,float b){
float sum;
switch(c){
case '+':sum=a+b;break;
case '-':sum=a-b;break;
case '*':sum=a*b;break;
case '/':
if(b==0){
JOptionPane.showMessageDialog(null,"除0錯誤!","警告!", JOptionPane.ERROR_MESSAGE);
return 0;
}
sum=a/b;
break;
case '%':
if(b==0){
JOptionPane.showMessageDialog(null,"除0錯誤!","警告!",JOptionPane.ERROR_MESSAGE);
return 0;
}
sum=a%b;
break;
default:return 0;
}
return sum;
}
}

8. 用java程序編寫一個計算器

給你一個參考,希望不要被網路吞了當晚餐
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.text.DecimalFormat;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Calculator {
//計算器面板
private JFrame f = new JFrame("Calculator");
//輸入面扳
private JPanel inputPanel = new JPanel();
//加減乘除面板
private JPanel operationPanel = new JPanel();
//數字面板
private JPanel buttonsPanel = new JPanel();

//輸入數據文本框
private JTextField input = new JTextField(20);

//退格鍵
private JButton backspace = new JButton("BackSpace");
//清空
private JButton CE = new JButton("CE ");
//刪除
private JButton C = new JButton("C ");

//四則運算符號鍵
private JButton add = new JButton("+");
private JButton sub = new JButton("-");
private JButton mul = new JButton("*");
private JButton div = new JButton("/");

//小數點
private JButton decimal = new JButton(".");
//等號
private JButton equal = new JButton("=");

//數字鍵
private JButton zero = new JButton("0");
private JButton one = new JButton("1");
private JButton two = new JButton("2");
private JButton three = new JButton("3");
private JButton four = new JButton("4");
private JButton five = new JButton("5");
private JButton six = new JButton("6");
private JButton seven = new JButton("7");
private JButton eight = new JButton("8");
private JButton nine = new JButton("9");

private String num1 = "";//保存第一個運算數字
private String operator = "";//保存運算符號

public static void main(String[] args) {
new Calculator();//new計算器實例
}

public Calculator(){
//添加組件,布局
inputPanel.add(input);
f.add(inputPanel, BorderLayout.NORTH);

operationPanel.add(backspace);
operationPanel.add(CE);
operationPanel.add(C);
f.add(operationPanel, BorderLayout.CENTER);

buttonsPanel.add(add);
buttonsPanel.add(sub);
buttonsPanel.add(mul);
buttonsPanel.add(div);
buttonsPanel.add(one);
buttonsPanel.add(two);
buttonsPanel.add(three);
buttonsPanel.add(zero);
buttonsPanel.add(four);
buttonsPanel.add(five);
buttonsPanel.add(six);
buttonsPanel.add(decimal);
buttonsPanel.add(seven);
buttonsPanel.add(eight);
buttonsPanel.add(nine);
buttonsPanel.add(equal);
buttonsPanel.setLayout(new GridLayout(4, 4));
f.add(buttonsPanel, BorderLayout.SOUTH);

//注冊各個組件監聽事件
backspace.addMouseListener(new OperationMouseListener());
CE.addMouseListener(new OperationMouseListener());
C.addMouseListener(new OperationMouseListener());
decimal.addMouseListener(new OperationMouseListener());
equal.addMouseListener(new OperationMouseListener());

//注冊四則運算監聽
add.addMouseListener(new CalcMouseListener());
sub.addMouseListener(new CalcMouseListener());
mul.addMouseListener(new CalcMouseListener());
div.addMouseListener(new CalcMouseListener());

//注冊數字監聽事件
zero.addMouseListener(new NumberMouseListener());
one.addMouseListener(new NumberMouseListener());
two.addMouseListener(new NumberMouseListener());
three.addMouseListener(new NumberMouseListener());
four.addMouseListener(new NumberMouseListener());
five.addMouseListener(new NumberMouseListener());
six.addMouseListener(new NumberMouseListener());
seven.addMouseListener(new NumberMouseListener());
eight.addMouseListener(new NumberMouseListener());
nine.addMouseListener(new NumberMouseListener());

f.setVisible(true);
f.pack();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private class NumberMouseListener implements MouseListener{

public void mouseClicked(MouseEvent e) {
if(input.getText().trim().equals("0")){//如果文本框已經是0,結果還是0
input.setText(((JButton)e.getSource()).getText().trim());
}else{//否則的話,把0添加到後面,譬如文本框是1,結果就為10
input.setText(input.getText().concat(((JButton)e.getSource()).getText().trim()));
}
}

public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}

private class CalcMouseListener implements MouseListener{
//如果輸入的是運算符號,保存第一個結果和運算符號
public void mouseClicked(MouseEvent e) {
num1 = input.getText().trim();input.setText("");
operator = ((JButton)e.getSource()).getText().trim();
}

public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}

private class OperationMouseListener implements MouseListener{

public void mouseClicked(MouseEvent e) {
if(e.getSource() == backspace){//退格鍵,刪除一個直到沒有字元刪除
String inputText = input.getText();
if(inputText.length() > 0){
input.setText(inputText.substring(0, inputText.length() - 1));
}
}else if(e.getSource() == C){
input.setText("0");//C,清空所有運算數字和符號
num1 = "";
}else if(e.getSource() == CE){
input.setText("0");//CE-->將文本框置為0
}else if(e.getSource() == decimal){
String text = input.getText().trim();
//如果按了小數點,如果文本框已經有小數點,不做任何操作,否則在結果後面加上小數點
if(text.indexOf(".") == -1){
input.setText(text.concat("."));
}
}else if(e.getSource() == equal){
//如果是等號
if(!operator.trim().equals("")){
if(!input.getText().trim().equals("")){
double result = 0D;
if(operator.equals("+")){//執行加法運算
result = Double.parseDouble(num1) + Double.parseDouble(input.getText().trim());
}else if(operator.equals("-")){//減法運算
result = Double.parseDouble(num1) - Double.parseDouble(input.getText().trim());
}else if(operator.equals("*")){//乘法運算
result = Double.parseDouble(num1) * Double.parseDouble(input.getText().trim());
}else if(operator.equals("/")){//除法運算
result = Double.parseDouble(num1) / Double.parseDouble(input.getText().trim());
}

//格式化最終結果,保留兩位小數點
input.setText(new DecimalFormat("0.00").format(result));
}
}

}

}

public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}

}

閱讀全文

與java實驗報告計算器相關的資料

熱點內容
蘋果手機文檔安卓上怎麼打開 瀏覽:525
如何做淘寶代理伺服器 瀏覽:662
gz壓縮文件夾 瀏覽:177
字母h從右往左跑的c語言編程 瀏覽:127
安卓手機如何擁有蘋果手機橫條 瀏覽:765
業余編程語言哪個好學 瀏覽:137
按照文件夾分個壓縮 瀏覽:104
航空工業出版社單片機原理及應用 瀏覽:758
如何在電信app上綁定親情號 瀏覽:376
安卓的怎麼用原相機拍月亮 瀏覽:805
配音秀為什麼顯示伺服器去配音了 瀏覽:755
c盤清理壓縮舊文件 瀏覽:325
app怎麼交付 瀏覽:343
圖蟲app怎麼才能轉到金幣 瀏覽:175
如何做徵文app 瀏覽:446
用什麼app管理斐訊 瀏覽:169
安卓如何下載寶可夢劍盾 瀏覽:166
編譯器開發屬於哪個方向 瀏覽:940
megawin單片機 瀏覽:687
以色列加密貨幣監督 瀏覽:909