版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-江西-江西兽医防治员四级(中级工)历年参考题库含答案详解3套试卷
- 2026年道德与法治新教材八年级上册第一单元《走进社会生活》教案设计
- 儿童康复进修报告
- 斑的分类及治疗
- 医院药房个人工作总结(2篇)
- 检验科思想整顿自查报告(3篇)
- 嗜铬细胞瘤诊疗指南(2024 版)
- 产房健康指导手册-1
- 年产10亿克拉高品质金刚石超硬材料项目可行性研究报告模板立项申批备案
- 2026及未来5年中国塑料内膜袋数据监测研究报告
- 2025-2026学年第二学期人教部编版语文五年级期末质量检测题(有答案)
- 2026年种子法知识竞赛题库及答案
- 2026年河北公路养护高级技师试题及答案
- 2024-2025学年山东省泰安市肥城市八年级(下)期末物理试卷(含答案)
- 2026中国资源循环集团电池有限公司招聘4人备考题库及完整答案详解一套
- 培训课件膜拜
- 术中高血压危象调控策略PBL教学设计
- 脑机接口在小学科学教育中的应用与实验效果评价教学研究课题报告
- 2025年国家烟草专卖局、中国烟草总公司招录(申论)复习题库及答案
- TCNAS53-2025抗肿瘤药物静脉给药技术学习解读课件附送标准全文可编辑版
- 常用中药与中成药课件
评论
0/150
提交评论