java编写的简单的计算器程序_第1页
java编写的简单的计算器程序_第2页
java编写的简单的计算器程序_第3页
java编写的简单的计算器程序_第4页
java编写的简单的计算器程序_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java编写的简单的计算器程序java编写的简单的计算器程序java编写的简单的计算器程序java编写的简单的计算器程序编制仅供参考审核批准生效日期地址:电话:传真:邮编:计算器项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动;Applet容器中组件的添加与设置,包括面板以及菜单的使用;容器中组件的布局管理;Java核心包中数组、数学计算类的使用;异常的处理;事件处理模型中的三类对象的使用:Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。EventSource-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。Eventhandler-事件处理者,接收事件对象并对其进行处理的对象。程序中事件处理的流程:计算流程的细化参考代码:import.*;

import.*;

import.*;

import

import

import

publicclassCalculator

implementsActionListener{#############");dd(panel);

panel1=newJPanel();

panel2=newJPanel();

(newBorderLayout());

键入计算的第一个数字。\n");

("2.

单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n");

("3.

键入计算的下一个数字。\n");

("4.

输入所有剩余的运算符和数字。\n");

("5.

单击“=”。\n");

aboutCal=newJMenuItem("

关于计算器(A)");

(this);

(topHelp);

(aboutCal);

(editMenu);

(viewMenu);

(helpMenu);

(mainMenu,;

(textAnswer,;

(panel1,;

(newBorderLayout());

textMemory=newJTextField(3);

(false);

(newColor(217,217,217));

labelMemSpace=newJLabel("

");

buttonBk=newJButton("Backspace");

(newColor(255,0,0));

buttonCe=newJButton("CE");

(newColor(255,0,0));

buttonC=newJButton("C");

(newColor(255,0,0));

(this);

(this);

(this);

(panel2,;

(newFlowLayout);

(textMemory);

(labelMemSpace);

(buttonBk);

(buttonCe);

(buttonC);

panel3=newJPanel();

(panel3,;

button=newJButton[10];

for(inti=0;i<;i++){

button[i]=newJButton(i));

button[i].setForeground(newColor(0,0,255));

}

buttonMC=newJButton("MC");

(newColor(255,0,0));

buttonMR=newJButton("MR");

(newColor(255,0,0));

buttonMS=newJButton("MS");

(newColor(255,0,0));

buttonMAdd=newJButton("M+");

(newColor(255,0,0));

buttonDot=newJButton(".");

(newColor(0,0,255));

buttonAddAndSub=newJButton("+/-");

(newColor(0,0,255));

buttonAdd=newJButton("+");

(newColor(255,0,0));

buttonSub=newJButton("-");

(newColor(255,0,0));

buttonMul=newJButton("*");

(newColor(255,0,0));

buttonDiv=newJButton("/");

(newColor(255,0,0));

buttonMod=newJButton("%");

(newColor(0,0,255));

buttonSqrt=newJButton("sqrt");

(newColor(0,0,255));

buttonDao=newJButton("1/x");

(newColor(0,0,255));

buttonEqual=newJButton("=");

(newColor(255,0,0));

ddActionListener(this);

(button[8]);

button[8].addActionListener(this);

(button[9]);

button[9].addActionListener(this);

(buttonDiv);

(this);

(buttonSqrt);

(this);

(buttonMR);

(this);

(button[4]);

button[4].addActionListener(this);

(button[5]);

button[5].addActionListener(this);

(button[6]);

button[6].addActionListener(this);

(buttonMul);

(this);

(buttonMod);

(this);

(buttonMS);

(this);

(button[1]);

button[1].addActionListener(this);

(button[2]);

button[2].addActionListener(this);

(button[3]);

button[3].addActionListener(this);

(buttonSub);

(this);

(buttonDao);

(this);

(buttonMAdd);

(this);

(button[0]);

button[0].addActionListener(this);

(buttonAddAndSub);

(this);

(buttonDot);

(this);

(buttonAdd);

(this);

(buttonEqual);

(this);

;

();

();

}

按钮时,判断当前文本框内字符串中含不含'.',如果已含,则不允许再插入'.'

if(temp==buttonDot&&clickable==true){

booleanisDot=false;

if().length()==0)

isDot=true;

for(inti=0;i<().length();i++)

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

isDot=true;

break;

}

if(isDot==false)

()+".");

}

if((temp==buttonAdd||temp==buttonSub||temp==buttonMul||

temp==buttonDiv)&&clickable==true){

ength();i++)

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

isDot=true;

break;

}

harAt(0)=='0'&&

().length()==1){

("零不能求倒数");

clickable=false;

}

else{

booleanisDec=true;

inti,j,k;

Strings=(1/()));

for(i=0;i<();i++)

if(i)=='.')

break;

for(j=i+1;j<();j++)

if(j)!='0'){

isDec=false;

break;

}

if(isDec==true){

Stringstemp="";

for(k=0;k<i;k++)

stemp+=(k);

(stemp);

}

else

(s);

}

}

||

(i)=='-')){

isNumber=false;

break;

}

if(isNumber==true){

ength();i++)

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

isDot=true;

break;

}

ength();i++)

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

isDot=true;

break;

}

if(memoryi!=0){//存储中是一个int型数

if(isDot==false)//被加数是一个int型数

memoryi+=());

else{//被加数是一个double型数,则将int存储器中数传入double存储器与当前数相加,int存储器清零

memoryd=memoryi+());

memoryi=0;

}

}

else

memoryd+=());

}

//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除

if(temp==buttonBk&&clickable==true){

Strings=();

("");

for(inti=0;i<()-1;i++){

chara=(i);

()+a);

}

}

//按下'CE'按钮,将当前文本框内数据清除

if(temp==buttonCe){

("");

clickable=true;

}

//按下'C'按钮,文本框内数据清除,同时var,answer清0

if(temp==buttonC){

vard=answerd=0;

("");

clickable=true;

}

//按下'复制'菜单栏

if(temp==copyItem){

copy=();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论