用JAVA编写计算器程序.docx

上传人:小飞机 文档编号:3658342 上传时间:2023-03-14 格式:DOCX 页数:11 大小:38.77KB
返回 下载 相关 举报
用JAVA编写计算器程序.docx_第1页
第1页 / 共11页
用JAVA编写计算器程序.docx_第2页
第2页 / 共11页
用JAVA编写计算器程序.docx_第3页
第3页 / 共11页
用JAVA编写计算器程序.docx_第4页
第4页 / 共11页
用JAVA编写计算器程序.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《用JAVA编写计算器程序.docx》由会员分享,可在线阅读,更多相关《用JAVA编写计算器程序.docx(11页珍藏版)》请在三一办公上搜索。

1、用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; /已

2、经有小数点? 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,

3、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(

4、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.

5、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)

6、; 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);

7、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.a

8、ddActionListener(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(bD

9、iv); 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

10、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 Bu

11、tton(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

12、 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

13、double temp=Double.parseDouble(e.getActionCommand); for(int i=this.n;i=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.toStrin

14、g(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.keyAvai

15、lable & 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

16、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

17、.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.ke

18、yAvailable & 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.alrea

19、dyHaveDot=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);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号