/*初学JAVA,老师布置的一道作业题目,做一个简单功能的计算器
*就做来试试````` 由于学的东西不多,有功能强大的方法还没学到
*所以就用一些自己懂的方法做的,
* 呵呵``` 个人练习````
*高手别骂人啊!
*/
import java.applet.Applet;
import java.awt.*;
public class Calc extends Applet{
private Button button0,button1,button2,button3,button4,button5,button6,button7,button8,button9,jia,jian,deng,cheng,chu,clear;
TextField show,result;
String s1="",s2,s4,s5,s6;
char s3,ch1;
double num1,num2,num3;
int s11_length,num4;
//*************初始化*****************
public void init()
{
show=new TextField(10);result=new TextField(10);button0=new Button("0"); button1=new Button("1");button2=new Button("2");
button3=new Button("3");button4=new Button("4");button5=new Button("5");button6=new Button("6");button7=new Button("7");
button8=new Button("8");button9=new Button("9");jia=new Button("+");jian=new Button("-");cheng=new Button("×");
chu=new Button("÷");deng=new Button("=");clear=new Button("清除");
add(show);
add(result);
setLayout(null);
add(button0);add(button1);add(button2);add(button3);add(button4);add(button5);add(button6);add(button7);add(button8);
add(button9);add(jia);add(jian);add(cheng);add(chu);add(deng);add(clear);
show.reshape(10,10,130,25);result.reshape(150,10,130,25);
button0.reshape(10,50,45,20);button1.reshape(65,50,45,20);button2.reshape(120,50,45,20);button3.reshape(175,50,45,20);
button4.reshape(10,90,45,20);button5.reshape(65,90,45,20);button6.reshape(120,90,45,20);button7.reshape(175,90,45,20);
button8.reshape(10,130,45,20);button9.reshape(65,130,45,20);jia.reshape(120,130,45,20);jian.reshape(175,130,45,20);
cheng.reshape(10,170,45,20);chu.reshape(65,170,45,20);deng.reshape(120,170,100,20);clear.reshape(230,130,55,60);
}
//************判断事件****************
public boolean action(Event e,Object o)
{
if(e.target instanceof Button)
{
s2=o.toString();
s3=s2.charAt(0);
switch(s3){
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
s1=s1.concat(s2);
show.setText(s1);
break;
case '+': case '-': case '×': case '÷':
s11_length=s1.length();
ch1=s3;
num1=zhuanhua(s1);
s1=s1.concat(s2);
show.setText(s1);
break;
case '=':
s5=s1.substring(s11_length+1);
num2=zhuanhua(s5);
switch(ch1)
{case '+':
num3=num1+num2; break;
case '-':
num3=num1-num2; break;
case '×':
num3=num1*num2;break;
case '÷':
num3=(double)num1/(double)num2; break;
}
num4=(int)num3;
s1=Integer.toString(num4);
result.setText(""+num3);
break;
case '清':
result.setText("");
show.setText("");
num3=0;
s1="";
break;
}
}
return true;
}
//********************字符串转化成数字****************
public int zhuanhua(String s)
{
int num=0,i,element;
char ch;
for(i=0;i<s.length();i++)
{
ch=s.charAt(i);
element=ch-'0';
num+=element*(Math.pow(10,s.length()-i-1));
}
return num;
}
}