版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用JAVA编写计算器程序(模拟 Windows计算器)import java.awt.*;import java.awt.event.*;public class Calculation extends WindowAdapter implements ActionListener(double dResult=0;double dNowInput=0;double dMemory;int n=0; /记载小数位数int nOperation=1; /记录运算符类型int nBitsNum=0;记录总共输入的位数boolean alreadyHaveDot=false;已经有小数点?boole
2、an keyAvailable=true;boolean alreadyClickedEqueal=false;是否按下过”=”?boolean isTempNowInput=false;是否在计算出结果后直接按运算符将结果赋给了当前输入值?Frame f;Panel p1,p2,p3,p4,p5,p6;TextField tf1,tf2;Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;Button bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative;Button bBac
3、kspace,bCE,bC,bMR,bMS,bMC,bM;public void display()(f=new Frame("计算器");f.setSize(280,213);f.setLocation(200,200);f.setBackground(Color.LIGHT_GRAY);f.setResizable(false);用于存放 backspace,ce,c 三键用于存放数字区及附近共20键,此处间隙用于存放 MC,MR,MS,M+键及显示 M状态f.setLayout(new BorderLayout(3,3);p1=new Panel(new GridLa
4、yout(1,3,5,5);p2=new Panel(new GridLayout(4,5,5,5);k置可能不合理,以后调整p3=new Panel(new GridLayout(5,1,5,5);文本框,此处间隙设置可能不合理,以后调整p4=newPanel(newFlowLayout();用于存放 p1,p2p5=newPanel(newFlowLayout();p6=newPanel(newFlowLayout();p4.add(p1);p4.add(p2);tf1=new TextField(35);存放显示区tf1.setText("0.");tfl.setEd
5、itable(false);p5.add(tf1);f.add(p5,BorderLayout.NORTH);f.add(p4,BorderLayout.CENTER);f.add(p3,BorderLayout.WEST);b1=new Button("1");b2=new Button("2");b3=new Button("3");b4=new Button("4");b5=new Button("5");b6=new Button("6");b7=new Button
6、("7");b8=new Button("8");b9=new Button("9");b0=new Button("0");bl.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addAc
7、tionListener(this);b9.addActionListener(this);b0.addActionListener(this);bDiv=new Button("/");bSqrt=new Button("sqrt");bMulti=new Button("*");bMinus=new Button("-");bPercent=new Button("%”);bPlus=new Button("+");bReciprocal=new Button("1/x&
8、quot;);bEqual=new Button("=");bDot=new Button(".");bNegative=new Button("+/-");bDiv.addActionListener(this);bSqrt.addActionListener(this);bMulti.addActionListener(this);bMinus.addActionListener(this);bPercent.addActionListener(this);bPlus.addActionListener(this);bRecipr
9、ocal.addActionListener(this);bEqual.addActionListener(this);bDot.addActionListener(this);bNegative.addActionListener(this);p2.add(b7);p2.add(b8);p2.add(b9);p2.add(bDiv);p2.add(bSqrt);p2.add(b4);p2.add(b5);p2.add(b6);p2.add(bMulti);p2.add(bPercent);p2.add(b1);p2.add(b2);p2.add(b3);p2.add(bMinus);p2.a
10、dd(bReciprocal);p2.add(b0);p2.add(bNegative);p2.add(bDot);p2.add(bPlus);p2.add(bEqual);bBackspace=new Button("Backspace");bCE=new Button("CE");bC=new Button("C");bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);p1.add(bBackspace)
11、;p1.add(bCE);p1.add(bC);tf2=new TextField(2);tf2.setEnabled(false);tf2.setBackground(Color.LIGHT_GRAY);bMC=new Button("MC");bMR=new Button("MR");bMS=new Button("MS");bM=new Button("M+");bMC.addActionListener(this);bMR.addActionListener(this);bMS.addActionListe
12、ner(this);bM.addActionListener(this);p6.add(tf2);p3.add(p6);p3.add(bMC);p3.add(bMR);p3.add(bMS);p3.add(bM);f.setVisible(true);f.addWindowListener(this);public void actionPerformed(ActionEvent e)/key 0 to 9if(this.keyAvailable && e.getActionCommand().length()=1 && e.getActionCommand()
13、.compareTo("0”)>=0&& e.getActionCommand().compareTo("9”)<=0)if(this.isTempNowInput)this.dNowInput=0;this.isTempNowInput=false;this.nBitsNum+;if(this.alreadyHaveDot=false)this.dNowInput=this.dNowInput*10+Double.parseDouble(e.getActionCommand();elsedouble temp=Double.parseDoubl
14、e(e.getActionCommand();for(int i=this.n;i<0;i+)temp*=0.1;this.dNowInput+=temp;this.n-;this.tf1.setText(Double.toString(this.dNowI nput);/ key dotif(this.keyAvailable && e.getActionCommand()=".”)if(this.alreadyHaveDot=false)this.nBitsNum+;this.alreadyHaveDot=true;this.n=-1;/key "
15、+","-","*","/”if(this.keyAvailable && e.getActionCommand()="+" | e.getActionCommand()="-"| e.getActionCommand()="*" | e.getActionCommand()="/")if(this.alreadyClickedEqueal)this.dNowInput=this.dResult;this.isTempNowInput=tr
16、ue;elseswitch(this.nOperation)case 1: this.dResult+=this.dNowInput; break;case 2: this.dResult-=this.dNowInput;break;case 3: this.dResult*=this.dNowInput;break;case 4:if(this.dNowInput=0)(tfl.setText(-除数不能为零");this.keyAvailable=false;else this.dResult=this.dResult/this.dNowInput;if(this.keyAvai
17、lable)tf1.setText(Double.toString(this.dResult);this.dNowInput=0;if(e.getActionCommand()="+")(this.nOperation=1;if(e.getActionCommand()="-")(this.nOperation=2;if(e.getActionCommand()="*")(this.nOperation=3;if(e.getActionCommand()="/")(this.nOperation=4;this.nB
18、itsNum=0;this.alreadyClickedEqueal=false;/ key "+/-"if(this.keyAvailable && e.getActionCommand()="+/-")(this.dNowInput=0-this.dNowInput;tf1.setText(Double.toString(this.dNowInput);/ key "C”if(e.getActionCommand()="C")(this.nBitsNum=0;this.dResult=0;this.dNo
19、wInput=0;this.alreadyHaveDot=false;this.n=0;this.nOperation=1;this.keyAvailable=true;this.alreadyClickedEqueal=false;tf1.setText("0.”);/ key "CE”if(e.getActionCommand()="CE")(this.nBitsNum=0;this.dNowInput=0;this.alreadyHaveDot=false;this.n=0;this.nOperation=1;this.keyAvailable=t
20、rue;tf1.setText("0.”);/ key "sqrt"if(this.keyAvailable && e.getActionCommand()="sqrt")(if(this.alreadyClickedEqueal)(if(this.dResult>=0)(this.dResult=Math.sqrt(this.dResult);tf1.setText(Double.toString(this.dResult);else(tf1.setText(”函数输入无效");this.keyAvailabl
21、e=false;else(if(this.dNowInput>=0)(this.dNowInput=Math.sqrt(this.dNowInput);tf1.setText(Double.toString(this.dNowInput);else(tf1.setText(”函数输入无效");this.keyAvailable=false;/ key "1/x"if(this.keyAvailable && e.getActionCommand()="1/x")(if(this.dNowInput=0)(tf1.setTe
22、xt("除数不能为零");this.keyAvailable=false;else(this.dNowInput=1/this.dNowInput;tf1.setText(Double.toString(this.dNowI nput);/ key "=”if(this.keyAvailable && e.getActionCommand()="=")(this.alreadyClickedEqueal=true;switch(this.nOperation)(case1:this.dResult+=this.dNowInput
23、;break;case2:this.dResult-=this.dNowInput;break;case3:this.dResult*=this.dNowInput;break;case4:(if(this.dNowInput=0)(tf1.setText("除数不能为零");this.keyAvailable=false;else this.dResult=this.dResult/this.dNowInput;if(this.keyAvailable)tf1.setText(Double.toString(this.dResult);/ key "MS”if(
24、this.keyAvailable && e.getActionCommand()="MS")(this.dMemory=this.dNowInput;if(this.dMemory!=0)tf2.setText("M");/ key "MC"if(this.keyAvailable && e.getActionCommand()="MC")(this.dMemory=0;tf2.setText("");/ key "MR"if(this.ke
25、yAvailable && e.getActionCommand()="MR")(this.dNowInput=this.dMemory;tf1.setText(Double.toString(this.dNowInput);/ key "M+"if(this.keyAvailable && e.getActionCommand()="M+")(this.dMemory+=this.dNowInput;if(this.dMemory!=0)tf2.setText("M");else tf2.setText("");/ key
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毕业物流实习报告15篇
- 2026年怀化师范高等专科学校单招职业适应性测试模拟试题及答案解析
- 2026年扎兰屯职业学院单招职业适应性考试模拟试题及答案解析
- 2026年湖北工程职业学院单招职业适应性测试模拟试题及答案解析
- 2026年株洲师范高等专科学校单招职业适应性考试模拟试题及答案解析
- 个性化医疗与精准医学研究
- 妇产科主任:妇科疾病防治策略研究
- 2026年教师资格证(小学-学科知识与教学能力-英语)自测试题及答案
- 2025山东春宇人力资源有限公司招聘医疗事业单位派遣制工作人员备考笔试题库及答案解析
- 2025甘肃张掖山丹县招聘城镇公益性岗位人员模拟笔试试题及答案解析
- 广西协美化学品有限公司年产7400吨高纯有机过氧化物项目环评报告
- 2025年嫩江市招聘农垦社区工作者(88人)笔试备考试题附答案详解
- 乳液稳定性研究-洞察及研究
- 学堂在线 雨课堂 学堂云 生活英语听说 章节测试答案
- 社保机关面试题及答案
- 家用纺织品的设计流程与项目管理
- 民法总论 课课件 (全套)
- 普通高中体育与健康课程标准(2025版)
- 钢结构安装施工记录 - 副本
- 儿童长高运动训练课件
- 国开本科《管理英语4》机考总题库及答案
评论
0/150
提交评论