java設(shè)計(jì)計(jì)算器,主要是使用java swing,對(duì)每個(gè)按鈕進(jìn)行監(jiān)聽(tīng),實(shí)現(xiàn)相關(guān)功能,如下代碼:
創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶(hù)提供滿(mǎn)意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的10年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶(hù),如成都濕噴機(jī)等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶(hù)的一致贊譽(yù)。
package?com.qiu.lin.he;
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.ImageIcon;
import?javax.swing.JButton;
import?javax.swing.JFrame;
import?javax.swing.JPanel;
import?javax.swing.JTextField;
import?javax.swing.SwingConstants;
public?class?Jisuanqi?extends?JFrame?implements?ActionListener?{
/**
*
*/
private?static?final?long?serialVersionUID?=?1L;
Result?result?=?new?Result();?//?定義text的面板
Number_Key?number_key?=?new?Number_Key();?//?定義按鈕面板
//?當(dāng)點(diǎn)擊按鈕+、-、*、/時(shí),com?=?true
boolean?com?=?false;
//?當(dāng)i=0時(shí)說(shuō)明是我們第一次輸入,字符串text不會(huì)累加
int?i?=?0;
//?存放text的內(nèi)容
String?text?=?"";
//?存放點(diǎn)擊按鈕+、-、*、/之前的數(shù)值
double?defbutton?=?0;
//?+、-、*、/的代號(hào)分別為1,2,3,4
int?symbol?=?0;
//?構(gòu)造函數(shù)
Jisuanqi()?{
super("WangJiao");?//?設(shè)定標(biāo)題
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);?//?設(shè)定關(guān)閉窗體時(shí)退出程序
JPanel?pane?=?new?JPanel();?//?定義主面板
pane.setLayout(new?BorderLayout());
setBounds(380,?220,?30,?80);?//?前兩個(gè)參數(shù)是在屏幕上顯示的坐標(biāo),后兩個(gè)是大小
//?替換圖標(biāo)
ImageIcon?icon?=?new?ImageIcon("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);?//?對(duì)1按鈕添加監(jiān)聽(tīng)事件
number_key.two.addActionListener(this);?//?對(duì)2按鈕添加監(jiān)聽(tīng)事件
number_key.three.addActionListener(this);?//?對(duì)3按鈕添加監(jiān)聽(tīng)事件
number_key.four.addActionListener(this);?//?對(duì)4按鈕添加監(jiān)聽(tīng)事件
number_key.five.addActionListener(this);?//?對(duì)5按鈕添加監(jiān)聽(tīng)事件
number_key.six.addActionListener(this);?//?對(duì)6按鈕添加監(jiān)聽(tīng)事件
number_key.seven.addActionListener(this);?//?對(duì)7按鈕添加監(jiān)聽(tīng)事件
number_key.eight.addActionListener(this);?//?對(duì)8按鈕添加監(jiān)聽(tīng)事件
number_key.nine.addActionListener(this);?//?對(duì)9按鈕添加監(jiān)聽(tīng)事件
number_key.zero.addActionListener(this);?//?對(duì)0按鈕添加監(jiān)聽(tīng)事件
number_key.ce.addActionListener(this);?//?對(duì)置零按鈕添加監(jiān)聽(tīng)事件
number_key.plus.addActionListener(this);?//?對(duì)+按鈕添加監(jiān)聽(tīng)事件
number_key.equal.addActionListener(this);?//?對(duì)=按鈕添加監(jiān)聽(tīng)事件
number_key.sub.addActionListener(this);?//?對(duì)-按鈕添加監(jiān)聽(tīng)事件
number_key.mul.addActionListener(this);?//?對(duì)*按鈕添加監(jiān)聽(tīng)事件
number_key.div.addActionListener(this);?//?對(duì)/按鈕添加監(jiān)聽(tīng)事件
number_key.point.addActionListener(this);?//?對(duì).按鈕添加監(jiān)聽(tīng)事件
setContentPane(pane);
pack();?//?初始化窗體大小為正好盛放所有按鈕
}
//?各個(gè)按鈕觸發(fā)的事件
public?void?actionPerformed(ActionEvent?e)?{
/*
*?如果是點(diǎn)擊數(shù)字按鈕那么先要判斷是否在此之前點(diǎn)擊了+、-、*、/、=,如果是那么com=true?如果沒(méi)有com=
*?false;或者是否點(diǎn)擊數(shù)字鍵,如果是i?=?1,如果沒(méi)有?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");
}
}?else?if?(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");
}
}?else?if?(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");
}
}?else?if?(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");
}
}?else?if?(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");
}
}?else?if?(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");
}
}?else?if?(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");
}
}?else?if?(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");
}
}?else?if?(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");
}
}
/*
*?對(duì)于0這個(gè)按鈕有一定的說(shuō)法,在我的程序里不會(huì)出現(xiàn)如00000這樣的情況,我加了判斷條件就是
*?如果text中的數(shù)值=0就要判斷在這個(gè)數(shù)值中是否有.存在?如果有那么就在原來(lái)數(shù)值基礎(chǔ)之上添?加0;否則保持原來(lái)的數(shù)值不變
*/
else?if?(e.getSource()?==?number_key.zero)?{?//?result.text.getText()是得到text里內(nèi)容的意思
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)就是類(lèi)型轉(zhuǎn)換了,下面都是一樣
result.text.setText(text?+?"0");
}?else?{
if?(text.trim().indexOf(".")?==?-1)?{
result.text.setText(text);
}?else?{
result.text.setText(text?+?"0");
}
}
}
}?else?if?(e.getSource()?==?number_key.ce)?{
result.text.setText("0");
i?=?0;
com?=?true;
//?text?=?"";
defbutton?=?0;
}
/*
*?本程序不會(huì)讓一個(gè)數(shù)值中出現(xiàn)2個(gè)以上的小數(shù)點(diǎn).具體做法是:判斷是否已經(jīng)存在.存在就不添加,?不存在就添加.
*/
else?if?(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);
}
}
}?//?獲得點(diǎn)擊+之前的數(shù)值
else?if?(e.getSource()?==?number_key.plus)?{
com?=?true;
i?=?0;
defbutton?=?Double.parseDouble(result.text.getText());
symbol?=?1;
}?//?獲得點(diǎn)擊-之前的數(shù)值
else?if?(e.getSource()?==?number_key.sub)?{
com?=?true;
i?=?0;
defbutton?=?Double.parseDouble(result.text.getText());
symbol?=?2;
}?//?獲得點(diǎn)擊*之前的數(shù)值
else?if?(e.getSource()?==?number_key.mul)?{
com?=?true;
i?=?0;
defbutton?=?Double.parseDouble(result.text.getText());
System.out.println(defbutton);
symbol?=?3;
}?//?獲得點(diǎn)擊/之前的數(shù)值
else?if?(e.getSource()?==?number_key.div)?{
com?=?true;
i?=?0;
defbutton?=?Double.parseDouble(result.text.getText());
symbol?=?4;
}?else?if?(e.getSource()?==?number_key.equal)?{
switch?(symbol)?{
Math.pow(x,2)就是平方。Math.pow(x,3)就是立方。
Math.pow(底數(shù),幾次方),如:double a=2.0,double b=3.0,double c=Math.pow(a,b),就是2的三次方是多少;c最終為8。
擴(kuò)展資料:
Math.pow()?函數(shù)返回基數(shù)(base)的指數(shù)(exponent)次冪,即?base的exponent次冪。Java是一種簡(jiǎn)單的,跨平臺(tái)的,面向?qū)ο蟮?,分布式的,解釋的,健壯的安全的,結(jié)構(gòu)的中立的,可移植的,性能很優(yōu)異的多線(xiàn)程的,動(dòng)態(tài)的語(yǔ)言。
Java編程工具如下:
1、Eclipse:一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái) 。
2、NetBeans:開(kāi)放源碼的Java集成開(kāi)發(fā)環(huán)境,適用于各種客戶(hù)機(jī)和Web應(yīng)用。
3、IntelliJ IDEA:在代碼自動(dòng)提示、代碼分析等方面的具有很好的功能。
4、MyEclipse:由Genuitec公司開(kāi)發(fā)的一款商業(yè)化軟件,是應(yīng)用比較廣泛的Java應(yīng)用程序集成開(kāi)發(fā)環(huán)境 。
5、EditPlus:如果正確配置Java的編譯器“Javac”以及解釋器“Java”后,可直接使用EditPlus編譯執(zhí)行Java程序 。
參考資料:百度百科——java
這是我應(yīng)聘時(shí)寫(xiě)的算法代碼,運(yùn)行成功:
//這是用java編寫(xiě)的一個(gè)求2的平方根的程序,精確度可通過(guò)修改weishu參數(shù)來(lái)改變
public class app
{ //用二分法求2的平方根
public static void main(String args[])
{
int a[],b[],s[],d[],c[],ss[];
int i,j,k;
a=new int[1000];
b=new int[1000];
s=new int[1000];
d=new int[1000];
c=new int[1000];
ss=new int[1000];
boolean jingque;
jingque=true;
a[0]=b[0]=2;
a[2]=b[2]=1;
a[1]=4;
b[1]=5;
int weishu=200;//定義循環(huán)次數(shù)
for(i=0;i1000;i++)
s[i]=0;
for(k=0;kweishu;k++)
{
hanshucheng.cheng(b,b,s);
j=s[0];
while (s[j]=2)
{
hanshuadd.add(a,b,c);
hanshuchu.chu(d,c);
hanshucopy.copy(ss,b);
hanshucopy.copy(b,d);
hanshucheng.cheng(b,b,s);
j=s[0];
// for(i=0;i=s[0];i++)
//System.out.println("s["+i+"]="+s[i]);
}
hanshucopy.copy(a,b);
hanshucopy.copy(b,ss);
}
for(i=a[0];i=1;i--)
System.out.print(a[i]);
System.out.print("左邊計(jì)算到"+a[0]+"位\n");
for(i=b[0];i=1;i--)
System.out.print(b[i]);
System.out.print("右邊計(jì)算到"+b[0]+"位\n");
for(i=a[0],j=b[0];jingque==true;i--,j--)
if(a[i]==b[j])
System.out.print(a[i]);
else
jingque=false;
System.out.print("精確到"+(a[0]-i-1)+"位\n");
}
}
class hanshucheng
{
public static void cheng( int a[],int b[],int s[])//定義兩數(shù)相乘的函數(shù)
{
int flag=0,flag1=0;
int number=b[0];
int c[]=new int[1000];
int i,j,k,u;
for(int i1=0;i11000;i1++)
s[i1]=0;
for(i=1;i=number;i++)
{
for(int i1=0;i11000;i1++)
c[i1]=0;
for(j=i,k=1;jnumber+i;j++,k++)
{
c[j]=(a[k]*b[i]+flag)%10;
flag=(a[k]*b[i]+flag)/10;
}
if (flag!=0)
{
c[j]=flag;
flag=0;
j=j+1;
}
c[0]=j-1;
//for(k=1;k=c[0];k++)
//System.out.println("c="+c[k]);
for(k=1;k=c[0];k++)
{ u=s[k];
s[k]=(u+c[k]+flag1)%10;
flag1=(u+c[k]+flag1)/10;
}
if(flag1!=0)
{
s[k]=flag1;
k=k+1;
flag1=0;
}
s[0]=k-1;
// for(k=0;k=s[0];k++)
//System.out.println(s[k]);
}
}
}
class hanshuadd
{
public static void add(int a[],int b[],int c[])//定義兩數(shù)相加的函數(shù)
{
int flag=0;int i,j,k;
int a1[]=new int[1000];
for(i=1;i=b[0];i++)
a1[i]=0;
for(j=b[0]-a[0]+1,k=1;j=b[0];j++,k++)
a1[j]=a[k];
//for(k=0;k=j;k++)
//System.out.println("a1="+a1[k]);
for(i=1;i=b[0];i++)
{
c[i]=(a1[i]+b[i]+flag)%10;
flag=(a1[i]+b[i]+flag)/10;
}
if(flag!=0)
{
c[i]=flag;
i=i+1;
flag=0;
}
c[0]=i-1;
}
}
class hanshuchu
{
public static void chu(int d[],int a[])//定義任一數(shù)除以2的函數(shù)
{
int flag=0,i;
for(i=a[0];i=1;i--)
{
d[i+1]=(flag*10+a[i])/2;
flag=(flag*10+a[i])%2;
}
if(flag!=0)
d[1]=5;
if(d[1]==0)
for(i=1;i=a[0]+1;i++)
d[i]=d[i+1];
d[i]=0;
d[0]=a[0]+1;
}
}
class hanshucopy
{
public static void copy(int a[],int b[])//定義
{
int i;
for(i=0;i=b[0];i++)
a[i]=b[i];
while (i1000)
a[i++]=0;
}
}