欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    用JAVA编写计算器程序.docx

    • 资源ID:3658342       资源大小:38.77KB        全文页数:11页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用JAVA编写计算器程序.docx

    用JAVA编写计算器程序用JAVA编写计算器程序 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; /已经有小数点? boolean 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 bBackspace,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); f.setLayout(new BorderLayout(3,3); p1=new Panel(new GridLayout(1,3,5,5); /用于存放backspace,ce,c三键 p2=new Panel(new GridLayout(4,5,5,5); /用于存放数字区及附近共20键, 此处间隙设置可能不合理,以后调整 p3=new Panel(new GridLayout(5,1,5,5); /用于存放MC,MR,MS,M+键及显示M状态文本框,此处间隙设置可能不合理,以后调整 p4=new Panel(new FlowLayout); /用于存放p1,p2 p5=new Panel(new FlowLayout); p6=new Panel(new FlowLayout); p4.add(p1); p4.add(p2); tf1=new TextField(35); /存放显示区 tf1.setText("0."); tf1.setEditable(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("7"); b8=new Button("8"); b9=new Button("9"); b0=new Button("0"); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(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"); 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); bReciprocal.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.add(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); 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.addActionListener(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 9 if(this.keyAvailable && e.getActionCommand.length=1 && e.getActionCpareTo("0")>=0 && e.getActionCpareTo("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); else double temp=Double.parseDouble(e.getActionCommand); for(int i=this.n;i<0;i+) temp*=0.1; this.dNowInput+=temp; this.n-; this.tf1.setText(Double.toString(this.dNowInput); / key dot if(this.keyAvailable && e.getActionCommand=".") if(this.alreadyHaveDot=false) this.nBitsNum+; this.alreadyHaveDot=true; this.n=-1; /key "+","-","*","/" if(this.keyAvailable && e.getActionCommand="+" | e.getActionCommand="-" | e.getActionCommand="*" | e.getActionCommand="/") if(this.alreadyClickedEqueal) this.dNowInput=this.dResult; this.isTempNowInput=true; else switch(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) tf1.setText("除数不能为零"); this.keyAvailable=false; else this.dResult=this.dResult/this.dNowInput; if(this.keyAvailable)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.nBitsNum=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.dNowInput=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=true; 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.keyAvailable=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.setText("除数不能为零"); this.keyAvailable=false; else this.dNowInput=1/this.dNowInput; tf1.setText(Double.toString(this.dNowInput); / key "=" if(this.keyAvailable && e.getActionCommand="=") this.alreadyClickedEqueal=true; switch(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) tf1.setText("除数不能为零"); this.keyAvailable=false; else this.dResult=this.dResult/this.dNowInput; if(this.keyAvailable)tf1.setText(Double.toString(this.dResult); / key "MS" if(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.keyAvailable && 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 "%" if(this.keyAvailable && e.getActionCommand="%") this.dNowInput=(this.dResult*this.dNowInput)/100; tf1.setText(Double.toString(this.dNowInput); / key "Backspace" if(this.keyAvailable && e.getActionCommand="Backspace") if(!this.alreadyClickedEqueal) if(this.dNowInput!=0) if(this.alreadyHaveDot) if(this.n=-1) this.alreadyHaveDot=false; this.n=0; else String str,str1; str=tf1.getText; str1=str.substring(0,this.nBitsNum-1); this.nBitsNum-; this.n+; this.dNowInput=Double.parseDouble(str1); tf1.setText(Double.toString(this.dNowInput); else int temp; temp=(int)(this.dNowInput/10); this.dNowInput=(double)temp; tf1.setText(Double.toString(this.dNowInput); public static void main(String args) Calculation cal=new Calculation; cal.display; public void windowClosing(WindowEvent e) System.exit(0);

    注意事项

    本文(用JAVA编写计算器程序.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开