java编写的简单的计算器程序.docx
- 文档编号:12917202
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:12
- 大小:18.34KB
java编写的简单的计算器程序.docx
《java编写的简单的计算器程序.docx》由会员分享,可在线阅读,更多相关《java编写的简单的计算器程序.docx(12页珍藏版)》请在冰点文库上搜索。
java编写的简单的计算器程序
计算器
项目内容:
编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。
项目要求:
使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动;
1.Applet容器中组件的添加与设置,包括面板以及菜单的使用;
2.容器中组件的布局管理;
3.Java核心包中数组、数学计算类的使用;
4.异常的处理;
5.事件处理模型中的三类对象的使用:
1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。
2.EventSource-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。
3.Eventhandler-事件处理者,接收事件对象并对其进行处理的对象。
6.程序中事件处理的流程:
1.计算流程的细化
参考代码:
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
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=();
}
//按下'粘贴'菜单栏
if(temp==pasteItem){
(copy);
}
if(temp==sItem){
(panel,"当前是标准型计算器,\n科学型计算器有待更新。
");
}
//按下'帮助主题'菜单栏
if(temp==topHelp){
(panel,scrollHelp);
}
//按下'数字分组'菜单栏
if(temp==numberGroup){
if()pareTo(" 数字分组(I)")==0)
("√数字分组(I)");
else
(" 数字分组(I)");
}
//按下'关于'菜单栏
if(temp==aboutCal){
(panel,"计算器版\n开发者:
楼竞");
}
}
//输入中如果有操作非法,比如按下两次'+',捕获异常
catch(Exceptione){
("操作非法");
clickable=false;
}
}
//主函数
publicstaticvoidmain(Stringargs[]){
newCalculator();
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 编写 简单 计算器 程序