ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:19.08KB ,
资源ID:30348445      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30348445.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java简单计算器.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java简单计算器.docx

1、java简单计算器源文件一:calculation.javaimport java.util.LinkedList;public class calculation intermediary itmd=intermediary.getIntermediary(); LinkedList fomula=itmd.getFomula(); OperationFactory opf=new OperationFactory(); public void calculat() double result=0; int flag=0;/标志是否有括号,1表示有括号 /n记录最后一个正括号的位置,i记录第

2、一个反括号的位置 for(int i=0,n=0;ifomula.size();i+) System.out.print(fomula.get(i);/输出集合元素 if(fomula.get(i).equals() while(fomula.get(i).equals() i+; n=i; i+; while(!fomula.get(i).equals() i+; simpCalculat(n,i-1); fomula.remove(n+1); fomula.remove(n-1); result=Double.valueOf(fomula.get(n-1); i=-1; n=0; if(f

3、omula.size()3) if(!(fomula.get(0) instanceof String ) result=Double.valueOf(fomula.get(0); else result=Double.valueOf(fomula.get(1); itmd.setResult(result); else result=simpCalculat(0,fomula.size()-1); itmd.setResult(result); private double simpCalculat(int n,int m) double result =0; / for(int i=0,n

4、=0;ifomula.size()-1;i+) while(nm-1) / if(fomula.get(n+1) instanceof String) for(int i=n;im;i+) if(fomula.get(i).equals(*)|fomula.get(i).equals(/) Operation op=opf.creatOperate(String)fomula.get(i); op.setNumber(Double.valueOf(fomula.get(i-1) ,Double.valueOf(fomula.get(i+1); result=op.getResult(); fo

5、mula.remove(i); fomula.remove(i); fomula.set(i-1, (Double)result).toString(); m=m-2; for(int i=n;im;i+) Operation op=opf.creatOperate(String)fomula.get(n+1); op.setNumber(Double.valueOf(fomula.get(n),Double.valueOf(fomula.get(n+2); result=op.getResult(); fomula.remove(n+1); fomula.remove(n+1); fomul

6、a.set(n, (Double)result).toString(); m=m-2; return result; 源文件二:intermediary.javaimport java.util.LinkedList;/* * 中介类: * 从前台接受输入的数据,并传入后台计算 * 将后台计算好的结果传入前台 * author Administrator * */public class intermediary private static intermediary itmd=new intermediary(); private LinkedList fomula=new LinkedLi

7、st();/算式集合 private double result;/计算结果 private intermediary() static intermediary getIntermediary() return itmd; protected LinkedList getFomula() int k=0;/运算数与运算符的个数和 int begin=0,end=0; for(int i=0;ifomula.size();i+) int flag=0;/等于一时标志找到第一个数位 String s=fomula.get(i); if(s.matches(0-9.)&flag=0) begin=

8、i; flag=1; k+; if(!s.matches(0-9.)&flag=1) double d1=0,d2=0; int flag2=0;/等于一时表示遇到小数点 for(int n=begin;nend;n+) int a=0;/记录小数点的位置 if(s=.) flag2=1; if(flag2!=1) d1=d1+Integer.valueOf(fomula.get(n)*Math.pow(10, i); a=i; else d2=d2+Integer.valueOf(fomula.get(n)*Math.pow(0.1,i-a); Double d=d1+d2; fomula.

9、set(k, d.toString(); k=k+2; for(int num=k;numi;num+) fomula.remove(k); k+; i=k; return fomula; /* for(int i=0;ifomula.size();i+) try String s=fomula.get(i); if(s.matches(0-9.) if(!s.matches(0-9.) double d1=0,d2=0; int flag=0; for(int n=0;ni;n+) int a=0; if(s=.) flag=1; if(flag!=1) d1=d1+Integer.valu

10、eOf(fomula.get(n)*Math.pow(10, i); a=i; else d2=d2+Integer.valueOf(fomula.get(n)*Math.pow(0.1,i-a); Double d=d1+d2; fomula.set(k, d.toString(); k=k+2; for(int num=k;numi;num+) fomula.remove(k); else k+; i=k; catch(Exception e) */ protected void setFomula(String s) fomula.add(s); protected double get

11、Result() return result; protected void setResult(double result) this.result = result; 源文件三:Operation.javapublic abstract class Operation protected double numberA; protected double numberB; protected void setNumber(Double numberA,Double numberB) this.numberA = numberA; this.numberB = numberB; public

12、abstract double getResult();源文件四:OperationAdd.javapublic class OperationAdd extends Operation Override public double getResult() / TODO Auto-generated method stub double result=0; result=numberA+numberB; return result; 源文件五:OperationDiv.javapublic class OperationDiv extends Operation Override public

13、 double getResult() / TODO Auto-generated method stub try double result=0; result=numberA/numberB; return result; catch(ArithmeticException e) System.out.println(算术异常); return 0; 源文件六:OperationFactory.javapublic class OperationFactory public Operation creatOperate(String object) Operation oper=null;

14、 switch(object) case +:oper=new OperationAdd();break; case -:oper=new OperationSub();break; case *:oper=new OperationMul();break; case /:oper=new OperationDiv();break; default:System.out.println(该计算器不具备此种运算的能力); return oper; 源文件七:OperationMul.javapublic class OperationMul extends Operation Override

15、public double getResult() / TODO Auto-generated method stub double result=0; result=numberA*numberB; return result; 源文件八:OperationSub.javapublic class OperationSub extends Operation Override public double getResult() / TODO Auto-generated method stub double result=0; result=numberA-numberB; return r

16、esult; 源文件九:winder.javaimport java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JButton;import javax.swing.JTextField;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;imp

17、ort java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.ArrayList;import java.util.LinkedList;public class winder extends JFrame private JPanel contentPane; private JTextField textField; private String s=; /* * Launch the application. */ public

18、 static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try winder frame = new winder(); /添加键盘事件 frame.addKeyListener(new KeyListener() public void keyPressed(KeyEvent e) System.out.println(e.getKeyChar(); Override public void keyReleased(KeyEvent arg0) / TODO Auto-gen

19、erated method stub Override public void keyTyped(KeyEvent arg0) / TODO Auto-generated method stub ); frame.setVisible(true); catch (Exception e) e.printStackTrace(); ); /* * Create the frame. */ public winder() setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 276, 338); contentPan

20、e = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5); setContentPane(contentPane); contentPane.setLayout(null); JButton btnNewButton = new JButton(1); btnNewButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String i=e.getActionCommand();/得到按钮上的字符

21、 s=s+i; intermediary.getIntermediary().setFomula(i); textField.setText(s); ); btnNewButton.setBounds(70, 68, 50, 30); contentPane.add(btnNewButton); JButton button = new JButton(/); button.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String i=e.getActionCommand()

22、;/得到按钮上的字符 s=s+i; intermediary.getIntermediary().setFomula(i); textField.setText(s); ); button.setBounds(10, 188, 50, 30); contentPane.add(button); JButton button_1 = new JButton(2); button_1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String i=e.getActionComman

23、d();/得到按钮上的字符 s=s+i; intermediary.getIntermediary().setFomula(i); textField.setText(s); ); button_1.setBounds(130, 68, 50, 30); contentPane.add(button_1); JButton button_2 = new JButton(3); button_2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String i=e.getActio

24、nCommand();/得到按钮上的字符 s=s+i; intermediary.getIntermediary().setFomula(i); textField.setText(s); ); button_2.setBounds(190, 68, 50, 30); contentPane.add(button_2); JButton button_3 = new JButton(+); button_3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String i=e.g

25、etActionCommand();/得到按钮上的字符 s=s+i; intermediary.getIntermediary().setFomula(i); textField.setText(s); ); button_3.setBounds(10, 68, 50, 30); contentPane.add(button_3); JButton button_4 = new JButton(4); button_4.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String

26、 i=e.getActionCommand();/得到按钮上的字符 s=s+i; intermediary.getIntermediary().setFomula(i); textField.setText(s); ); button_4.setBounds(70, 108, 50, 30); contentPane.add(button_4); JButton button_5 = new JButton(5); button_5.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String i=e.getActionCommand();/得到按钮上的字符 s=s+i; intermediary.getIntermediary().setFomula(i); textField.setText(s); ); button_5.setBounds(130, 108, 50, 30); contentPane.add(button_5); JButton button_6 = new JBu

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1