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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算器.docx

1、计算器程序设计综合训练设计报告题 目: 计算器专 业: 软件工程班 级: 11软件2Z学 号: 姓名: 指导教师: 常玉慧成绩: 计算机学院 2012年2月 import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator implements ActionListenerprivate double data1=0.0,data2=0.0;private String t_content;boolean number=false;/key用来标示用户所按下的按钮即加减乘除/key为0标

2、示+,为1表示-,为2表示*,为3表示/short key=-1;/pkey的取值为-15/pkey为-1表示第一次按下=按钮,为5说明不是第一次按下=按钮/pkey为其他值0,1,2,3时分别代表+,-,*,/short pkey=-1;Frame frame=new Frame(Calculator);/定义标题为Calculator的窗体TextField textfield=new TextField(30);/定义计算机/定义backspace,ce,c0按钮Button backspace=new Button(Backspace);Button ce=new Button(CE)

3、;Button c0=new Button(C);/定义面板,其中backspace,ce,c0按钮和计算机兰textfeild放在面板p1中/其余按钮放在面板p2中Panel p1=new Panel();Panel p2=new Panel();/定义界面上的按钮数组,即除去backspace,ce,c0按钮的所有按钮String names=7,8,9,/,sqrt,4,5,6,*,%,1,2,3,-,1/x,0,+/-,.,+,=;Button bb=new Buttonnames.length;public static void main(String args) Calculat

4、or cal=new Calculator(); cal.go();public void go()frame.setSize(300,200);frame.setLayout(new BorderLayout();Font fonts=new Font(楷体,Font.PLAIN,12); / 第一页/设置面板p1的字体和布局管理类型,将textfeild对象添加到面板中p1.setFont(fonts);p1.setLayout(new GridLayout(2,1,5,10);textfield.setFont(fonts);p1.add(textfield,null);/backspa

5、ce,ce,c0按钮注册addActionListener方法backspace.addActionListener(this);ce.addActionListener(this);c0.addActionListener(this);/将backspace,ce,c0按钮添加到p1面板中p1.add(backspace,null);p1.add(ce,null);p1.add(c0,null);/设置面板p2的布局管理器类型为GridLayoutp2.setLayout(new GridLayout(4,5,5,5);/为按钮组中的按钮注册addActionListener方法for(in

6、t i=0;inames.length;i+)bbi=new Button(namesi);p2.add(bbi);bbi.addActionListener(this);/设置面板p1和面板p2在窗体中的位置/面板p1在窗体的North方向,面板p2在窗体的South方向frame.add(p1,BorderLayout.NORTH);frame.add(p2,BorderLayout.SOUTH);frame.setVisible(true);/当单击关闭按钮时退出系统frame.addWindowListener(new WindowAdapter() public void windo

7、wClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent ae) String s; /通过ActionEvent类的getActionCommand()方法,得出动作是由哪个按钮触发的。 /第二页 s=ae.getActionCommand();/用户单击一次,计算栏里便去掉一个字符/先将计算栏里的字符清空,再添加除最好一个字符的字符串 if(s.equals(Backspace)&number) t_content=textfield.getText(); textfield.set

8、Text(); for(int i=0;it_content.length()-1;i+) char c=t_content.charAt(i); textfield.setText(textfield.getText()+c); /用户单击的是CE按钮,计算栏清空if(s.equals(CE) textfield.setText();number=false;/用户单击的是C按钮if(s.equals(C) textfield.setText();data1=data2=0.0;number=false;/用户单击的是sqrt按钮,其中负数不能被开方if(s.equals(sqrt)&num

9、ber) t_content=textfield.getText(); if(t_content.charAt(0)=-) textfield.setText(负数不能被开方); number=false; else textfield.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(t_content); /用户单击的是1/x求倒数按钮,求倒数时分母不能为0if(s.equals(1/x) & number) t_content=textfield.getText();if(t_content.equals(0)

10、/第三页 textfield.setText(零不能求倒数); number=false;else textfield.setText(Double.toString(1/Double.parseDouble(t_content); /用户单击的是%按钮if(s.equals(%)&number) if(data2=0) t_content=textfield.getText(); textfield.setText(t_content);else boolean g=false; for(int i=0;itextfield.getText().length();i+) if(.=textf

11、ield.getText().charAt(i) g=true; break;/如果是Double 数,除100if(g=true) double dtemp=Double.parseDouble(textfield.getText(); dtemp=dtemp/100.0; textfield.setText(Double.toString(dtemp); /如果是int数但能被100整除,则去掉末尾两个0else if(Integer.parseInt(textfield.getText()%100=0) int itemp=Integer.parseInt(textfield.getTe

12、xt(); itemp/=100; textfield.setText(Integer.toString(itemp); /如果是int数,但不能被100整除,则按Double数处理else double dtemp=Double.parseDouble(textfield.getText(); dtemp=dtemp/100.0; textfield.setText(Double.toString(dtemp); /第四页 /对正负数字的处理 if(s.equals(+/-) t_content=textfield.getText(); if(t_content.charAt(0)=-) t

13、extfield.setText(); String content; for(int i=1;it_content.length();i+) textfield.setText(textfield.getText()+t_content.charAt(i); else textfield.setText(-+t_content); /所按下的按钮为+按钮if(s.equals(+) switch(pkey) case 0: data2+=Double.parseDouble(textfield.getText(); break; case 1: data2+=Double.parseDoub

14、le(textfield.getText(); break; case 2: data2+=Double.parseDouble(textfield.getText(); break; case 3: if(textfield.getText().equals(0) textfield.setText(除数不能为零); number=false; else key=-1; data2/=data1; textfield.setText(Double.toString(data2); break; default: data2=Double.parseDouble(textfield.getTe

15、xt(); pkey=key=0; textfield.setText(); /第五页 /所按下的按钮为-按钮if(s.equals(-) switch(pkey) case 0: data2+=Double.parseDouble(textfield.getText(); break; case 1: data2+=Double.parseDouble(textfield.getText(); break; case 2: data2+=Double.parseDouble(textfield.getText(); break; case 3: if(textfield.getText().

16、equals(0) textfield.setText(除数不能为零); number=false; else key=-1; data2/=data1; textfield.setText(Double.toString(data2); break; default: data2=Double.parseDouble(textfield.getText(); pkey=key=1; textfield.setText(); /所按下的按钮为*按钮 if(s.equals(*) switch(pkey) case 0: data2+=Double.parseDouble(textfield.g

17、etText(); break; case 1: data2+=Double.parseDouble(textfield.getText(); break; case 2: data2+=Double.parseDouble(textfield.getText(); break; case 3: if(textfield.getText().equals(0) / 第六页 textfield.setText(除数不能为零); number=false; else key=-1; data2/=data1; textfield.setText(Double.toString(data2); br

18、eak; default: data2=Double.parseDouble(textfield.getText(); pkey=key=2; textfield.setText(); /所按下的按钮为/按钮 if(s.equals(/) switch(pkey) case 0: data2+=Double.parseDouble(textfield.getText(); break; case 1: data2+=Double.parseDouble(textfield.getText(); break; case 2: data2+=Double.parseDouble(textfield

19、.getText(); break; case 3: if(textfield.getText().equals(0) textfield.setText(除数不能为零); number=false; else key=-1; data2/=data1; textfield.setText(Double.toString(data2); break; default: data2=Double.parseDouble(textfield.getText(); pkey=key=3; textfield.setText(); /第七页 /所按下的按钮为=,求结果 if(s.equals(=)&n

20、umber) /如果不是第一次按下=按钮 if(pkey=5) switch(pkey) case 0: data2+=data1; textfield.setText(Double.toString(data2); break; case 1: data2-=data1; textfield.setText(Double.toString(data2); break; case 2: data2*=data1; textfield.setText(Double.toString(data2); break; case 3: if(textfield.getText().equals(0) t

21、extfield.setText(除数不能为零); number=false; else data2/=data1; textfield.setText(Double.toString(data2); break; /如果是第一次按下=按钮 else data1=Double.parseDouble(textfield.getText(); switch(key) case 0: key=-1; data2+=Double.parseDouble(textfield.getText(); textfield.setText(Double.toString(data2); break; case

22、 1: key=-1; data2-=Double.parseDouble(textfield.getText(); textfield.setText(Double.toString(data2); /第八页 break; case 2: key=-1; data2*=Double.parseDouble(textfield.getText(); textfield.setText(Double.toString(data2); break; case 3: if(textfield.getText().equals(0) textfield.setText(除数不能为零); number=

23、false; else key=-1; data2/=Double.parseDouble(textfield.getText(); textfield.setText(Double.toString(data2); break; pkey=5; /按下的按钮时数字按钮 else switch(s.charAt(0) case0: case1: case2: case3: case4: case5: case6: case7: case8: case9: number=true; textfield.setText(textfield.getText()+s); break; /对.的处理 c

24、ase.: t_content=textfield.getText(); boolean g=false; /第九页 /对计算机栏中的数据进行检验 /如果其中有小数点,则用户单击该按钮时不在添加小数点 for(int i=0;it_content.length();i+) if(t_content.charAt(i)=.) g=true; break; /数据中已经有小数点 if(g=true) break; / 数据中没有小数点,当用户单击小数点时添加小数点 if(g=false) textfield.setText(t_content+.); private String Integer(String string) / TODO Auto-generated method stub return null;

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

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