當前位置:編程學習大全網 - 編程語言 - 求壹個java計算器編輯源代碼

求壹個java計算器編輯源代碼

這可能不容易做到。我給妳這個。看壹看。我用這個通過了Java實驗答辯。

進口?Java . awt . *;//AWT核心包

進口?Java . awt . event . *;//提供事件類和偵聽器

公共?班級?櫃臺?延伸?框架?器物?動作監聽器

{

文本字段?t =新?TextField(" ");

面板?p 1 =新建?panel();//新增壹個面板,用於存儲數字鍵和符號鍵。

面板?p2 =新?panel();//新建壹個面板,用於存儲根鍵、方鍵和清除鍵。

按鈕[]?b =新?按鈕[10];//創建對象按鈕

按鈕?bAdd=new?按鈕(“加號”);//實例化按鈕對象

按鈕?bSub=new?按鈕(“減號”);

按鈕?bMul=new?按鈕(“乘法”);

按鈕?bPoint=new?按鈕(“.”);

按鈕?bDiv=new?按鈕(“除以”);

按鈕?bEqual=new?按鈕(“等於”);

按鈕?bSqrt=new?按鈕(“處方”);

按鈕?bPow=new?按鈕(“方形”);

按鈕?bNull=new?按鈕(“清除”);

字符串?str 1 = " ";?//str1和str2存儲兩個輸入數。

字符串?str2 =

字符串?運算符= null?//存儲加、減、乘、除和平方根的符號。

布爾?first = true//檢查輸入是否是第壹個數字。

int?count oper = 0;//累加輸入符號的個數,這些符號將用於加減等運算。

雙倍?結果= 0.0;//臨時存儲結果

雙倍?num1=0.0,num2 = 0.0//兩個輸入數運算時,轉換成雙存儲。

布爾?錯誤=假;?//檢查除數是否為0。

//構造方法

公共?計數器()

{

超級(“計算器”);

t . set editable(false);

for(int?I = 0;我& lt10;I++)//使用for循環向p1添加數字鍵。

{

b[I]=新?button(string . value of(I));

p 1 . add(b[I]);

b[i]。setActionCommand(" number ");

b[i]。addActionListener(this);//調用addActionListener()方法註冊事件偵聽器。

}

p 1 . add(bPoint);

bpoint . setactioncommand(" number ");

p 1 . add(bAdd);?//數字鍵和符號鍵放在面板的p1中。

p 1 . add(bSub);

p 1 . add(bMul);

p 1 . add(bDiv);

p 1 . add(be qual);

p2 . add(bSqrt);root鍵、square鍵和clear鍵放在面板的p2。

p2 . add(bPow);

p2 . add(b null);

badd . setactioncommand(" oper ");

bsub . setactioncommand(" oper ");

bmul . setactioncommand(" oper ");

bdiv . setactioncommand(" oper ");

badd . addactionlistener(this);//調用addActionListener()方法註冊事件偵聽器。

bsub . addactionlistener(this);

bmul . addactionlistener(this);

bdiv . addactionlistener(this);

bpoint . addactionlistener(this);

be qual . addactionlistener(this);

bsqrt . addactionlistener(this);

b null . addactionlistener(this);

p1.setLayout(新?GridLayout(4,4,5,5));//網格布局管理器根據行數和列數將容器分成大小相同的單元。

//每個單元格可以容納壹個組件,這個組件會填充網格單元格,無法控制。

//控制它占據的網格大小。4,4是網格的行數和列數。5,5是編隊之間。

//間距

p2.setLayout(新?FlowLayout());//使用FlowLayout布局管理器設置默認播放布局,默認間距為5個像素。

add(t,“北”);//框架的北面放置輸入框,面板放置在中間和南面。

add(p1,"中心");//將p1加到中間。

加(p2,“南”);//向南添加p2。

setLocation(400,200);//設計按鈕大小

setSize(200,200);//設計窗口大小

setBackground(新?Color(20,200,10));//設置框架的背景,默認為白色。

set visible(true);//將框架設置為可見

addWindowListener(新?WindowAdapter(){?//關閉窗口功能

公共?作廢?窗口關閉(WindowEvent?e)

{

system . exit(0);

}

});

}

//實現接口ActionListener

公共?作廢?actionPerformed(ActionEvent?e)

{

按鈕?temp =(Button)e . getsource();

if(e.getActionCommand()。等於("數字"))

{

如果(第壹)

{

str 1 = str 1+temp . get label();

t . settext(str 1);//在文本框中顯示輸入的str1。

}

其他

{

str 2 = str 2+temp . get label();

t . settext(str 2);//在文本框中顯示輸入的str2。

}

}

不然呢?if(e.getActionCommand()。等於(" oper "))

{

If(str1=="")//如果還沒有輸入數字,點擊運算符執行If。

{

count oper = 0;//如果是,則清除計數。

first = true

}

其他

{

count oper++;//計算輸入符號的數量

if(count oper & gt;1)//如果輸入多個符號,可以計算。

{

getResult();

}

operator = temp . get label();//存儲加減乘除、開平方的符號。

first = false

}

}

不然呢?If(e.getActionCommand()。等於(“處方”))

{

雙倍?d = math . sqrt(double . parse double(str 1));

str 1 = string . value of(d);//將計算結果再次傳遞給str1,為繼續計算做準備。

t . settext(string . value of(d));//將計算結果傳遞給文本框。

first = false//設置為false,即已經輸入了第壹個數字。

}

不然呢?If(e.getActionCommand()。等於("平方"))

{

雙倍?f = math . pow(double . parse double(str 1),2);

str 1 = string . value of(f);

t . settext(string . value of(f));

first = false

}

不然呢?If(e.getActionCommand()。等於("清除"))

{

str 1 = " ";//空的

str2 =

t . settext(" ");//清空文本框。

count oper = 0;//將密鑰計數器清零。

first = true

錯誤=假;

}

不然呢?If(e.getActionCommand()。等於(“等於”))

{

if((str1=="")||(str2== " "))?//如果沒有輸入全部兩個數,單擊等號,執行if。

{

count oper = 0;//將密鑰計數器清零。

first = true

}

其他

{

getResult();

count oper = 0;

}

}

}

//計算結果的方法

公共?作廢?getResult()

{

num 1 = double . parse double(str 1);

num 2 = double . parse double(str 2);

If(operator.equals ("plus "))

{

result = num 1+num 2;

}

不然呢?If(運算符. equals("減號"))

{

result = num 1-num 2;

}

不然呢?If(operator.equals ("times "))

{

result = num 1 * num 2;

}

不然呢?If(operator.equals ("divide by "))

{

If(num2==0.0)//除數為0的處理方法

{

錯誤=真;

}

其他

{

result = num 1/num 2;

}

}

如果(錯誤)

{

t . settext(" error ");

}

其他

{

t . settext(string . value of(result));

str 1 = string . value of(result);//運算結束後,將結果放入str1,str2將被清零,為加減等運算做準備。

str2 =

}

}

//主方法

公共?靜電?作廢?main(String[]?參數)

{

新的?counter();//創建壹個對象“計算器”

}

}

  • 上一篇:清華的計算機專業考研復試難麽,都考什麽
  • 下一篇:C語言編程(用兩種不同的方法,謝謝)
  • copyright 2024編程學習大全網