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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

java科学计算器进制转换.docx

1、java科学计算器进制转换JAVA综合程序设计和分析一、 题目: 用java语言编写科学计算器,要求完成加、减、乘、除以及基本函数处理还有数的进制转换。二、 摘要: 本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(二进制,八进制,十进制)之间的相互转换,还有基本三角函数和平方根,对数等基本数学函数运算三、功能说明: A运用两个面板的叠加做出界面。B通过在按钮的单击事件处理方法中调用类的成员方法calculate()来进行简易计算器的各种运算,并正确实现运算功能。C调用Math包中的方法实现各函数功能。D添加菜单条,列出选项、进制转换、帮助等菜单选项,并分别实现选项

2、中退出的功能,通过调用Integer包中的方法实现二进制、八进制的转换,帮助菜单栏中用法的提示对话框。E整个程序对话框可实现最小化、最大化、关闭。四、详细设计package 计算器;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends Frame implements ActionListener, WindowListener private Container container; private GridBagLayout layout; private

3、 GridBagConstraints constraints; private JTextField displayField; /计算结果显示区 private String lastCommand; /保存+,-,*,/,=命令0 private double result; /保存计算结果 private boolean start; /判断是否为数字的开始 private JMenuBar menubar; private JMenuItem m_exit,m2_ejz,m2_bjz; private Dialog dialog; private Label label_dialog

4、; private JButton button_sqrt,button_plusminus,button_CE,button_cancel,button_1,button_2, button_3,button_4,button_5,button_6,button_7,button_8,button_9,button_0,button_plus,button_minus,button_multiply,button_divide,button_point,button_equal,button_log,button_tan,button_cos,button_sin,button_exp; p

5、ublic Calculator() /构造方法设置布局、为按钮注册事件监听器 super(Calculator); this.setLocation(240,200); this.setSize(350,300); this.setResizable(true); this.setLayout(new GridLayout(7,1); this.addmyMenu(); /调用成员方法添加菜单 displayField=new JTextField(30); this.add(displayField); displayField.setEditable(true); start=true;

6、 result=0; lastCommand = =; JPanel panel0=new JPanel(); panel0.setLayout(new GridLayout(1,4,4,4); JPanel panel1=new JPanel(); panel1.setLayout(new GridLayout(1,5,4,4); this.add(panel1); button_sqrt=new JButton(sqrt); button_plusminus=new JButton(+/-); button_exp=new JButton(exp); button_CE=new JButt

7、on(退格); button_cancel=new JButton(C); JPanel panel2=new JPanel(); panel2.setLayout(new GridLayout(1,5,4,4); this.add(panel2); button_7=new JButton(7); button_8=new JButton(8); button_9=new JButton(9); button_log=new JButton(log); button_divide=new JButton(/); JPanel panel3=new JPanel(); panel3.setLa

8、yout(new GridLayout(1,5,4,4); this.add(panel3); button_4=new JButton(4); button_5=new JButton(5); button_6=new JButton(6); button_tan=new JButton(tan); button_multiply=new JButton(*); JPanel panel4=new JPanel(); panel4.setLayout(new GridLayout(1,5,4,4); this.add(panel4); button_1=new JButton(1); but

9、ton_2=new JButton(2); button_3=new JButton(3); button_cos=new JButton(cos); button_minus=new JButton(-); JPanel panel5=new JPanel(); panel5.setLayout(new GridLayout(1,5,4,4); this.add(panel5); button_0=new JButton(0); button_point=new JButton(.); button_equal=new JButton(=); button_sin=new JButton(s

10、in); button_plus=new JButton(+); panel1.add(button_sqrt); panel1.add(button_plusminus); panel1.add(button_exp); panel1.add(button_CE); panel1.add(button_cancel); panel2.add(button_7); panel2.add(button_8); panel2.add(button_9); panel2.add(button_log); panel2.add(button_divide); panel3.add(button_4);

11、 panel3.add(button_5); panel3.add(button_6); panel3.add(button_tan); panel3.add(button_multiply); panel4.add(button_1); panel4.add(button_2); panel4.add(button_3); panel4.add(button_cos); panel4.add(button_minus); panel5.add(button_0); panel5.add(button_point); panel5.add(button_equal); panel5.add(b

12、utton_sin); panel5.add(button_plus); button_sqrt.addActionListener(this); button_plusminus.addActionListener(this); button_exp.addActionListener(this); button_CE.addActionListener(this); button_cancel.addActionListener(this); button_7.addActionListener(this); button_8.addActionListener(this); button

13、_9.addActionListener(this); button_log.addActionListener(this); button_divide.addActionListener(this); button_4.addActionListener(this); button_5.addActionListener(this); button_6.addActionListener(this); button_tan.addActionListener(this); button_multiply.addActionListener(this); button_1.addAction

14、Listener(this); button_2.addActionListener(this); button_3.addActionListener(this); button_cos.addActionListener(this); button_minus.addActionListener(this); button_0.addActionListener(this); button_point.addActionListener(this); button_equal.addActionListener(this); button_sin.addActionListener(thi

15、s); button_plus.addActionListener(this); this.addWindowListener(new WinClose(); /注册窗口监听器 this.setVisible(true); private void addmyMenu() /菜单的添加 JMenuBar menubar=new JMenuBar(); this.add(menubar); JMenu m1=new JMenu(选项); JMenu m2=new JMenu(进制转换); JMenuItem m1_exit=new JMenuItem(退出); m1_exit.addAction

16、Listener(this); JMenuItem m2_ejz=new JMenuItem(二进制); m2_ejz.addActionListener(this); JMenuItem m2_bjz=new JMenuItem(八进制); m2_bjz.addActionListener(this); JMenu m3 = new JMenu( 帮助); JMenuItem m3_Help = new JMenuItem(用法); m3_Help.addActionListener(this); dialog = new Dialog(this,提示,true); /模式窗口 dialog

17、.setSize(240,80); label_dialog = new Label(,Label.CENTER); /标签的字符串为空,居中对齐 dialog.add(label_dialog); dialog.addWindowListener(this); /为对话框注册窗口事件监听器 m1.add(m1_exit); menubar.add(m1); m2.add(m2_ejz); m2.add(m2_bjz); menubar.add(m2); m3.add(m3_Help); menubar.add(m3); public void actionPerformed(ActionEv

18、ent e) /按钮的单击事件处理方法 if(e.getSource().equals(button_1)|e.getSource().equals(button_2)| e.getSource().equals(button_3)|e.getSource().equals(button_4)|e.getSource().equals(button_5)| e.getSource().equals(button_6)|e.getSource().equals(button_7)| e.getSource().equals(button_8)|e.getSource().equals(butto

19、n_9) |e.getSource().equals(button_0)|e.getSource().equals(button_point)|e.getSource().equals(button_plusminus)| e.getSource().equals(button_cancel)|e.getSource().equals(button_CE) /非运算符的处理方法 String input=e.getActionCommand(); if (start) displayField.setText(); start=false; if(input.equals(+/-) displ

20、ayField.setText(displayField.getText()+-); if(!input.equals(+/-) String str=displayField.getText(); if(input.equals(退格) /退格键的实现方法 if(str.length()0) displayField.setText(str.substring(0,str.length()-1); else if(input.equals(C) /清零键的实现方法 displayField.setText(0); start=true; else displayField.setText(d

21、isplayField.getText()+input); else if (e.getActionCommand()=二进制) /二进制的转换 int n=Integer.parseInt(displayField.getText(); displayField.setText(Integer.toBinaryString(n); else if (e.getActionCommand()=八进制) /八进制的转换 int n=Integer.parseInt(displayField.getText(); displayField.setText(Integer.toOctalString

22、(n); else if (e.getActionCommand()=退出) /选项中退出的处理方法 System.exit(0); else if (e.getActionCommand()=用法) /按下帮助菜单栏中用法的处理方法 label_dialog.setText(sqrt,exp等键是先输运算符再输数字n); dialog.setLocation(400,250); dialog.setVisible(true); else /各运算符的识别 String command=e.getActionCommand(); if(start) lastCommand=command; e

23、lse calculate(Double.parseDouble(displayField.getText(); lastCommand=command; start=true; public void calculate(double x) /各运算符的具体运算方法 double d=0; if (lastCommand.equals(+) result+= x; else if (lastCommand.equals(-) result-=x; else if (lastCommand.equals(*) result*=x; else if (lastCommand.equals(/)

24、result/=x; else if (lastCommand.equals(=) result=x; else if (lastCommand.equals(sqrt) d=Math.sqrt(x); result=d; else if (lastCommand.equals(exp) d=Math.exp(x); result=d; else if (lastCommand.equals(log) d=Math.log(x); result=d; else if (lastCommand.equals(tan) d=Math.tan(x); result=d; else if (lastC

25、ommand.equals(cos) d=Math.cos(x); result=d; else if (lastCommand.equals(sin) d=Math.sin(x); result=d; displayField.setText(+ result); public void windowClosing(WindowEvent e) if(e.getSource()=dialog) dialog.setVisible(false); /隐藏对话框 else System.exit(0); public void windowOpened(WindowEvent e) public

26、 void windowActivated(WindowEvent e) public void windowDeactivated(WindowEvent e) public void windowClosed(WindowEvent e) public void windowIconified(WindowEvent e) public void windowDeiconified(WindowEvent e) public static void main(String args) Calculator calculator=new Calculator(); class WinClos

27、e implements WindowListener public void windowClosing(WindowEvent e) /单击窗口关闭按钮时触发并执行实现窗口监听器接口中的方法 System.exit(0); /结束程序运行 public void windowOpened(WindowEvent e) public void windowActivated(WindowEvent e) public void windowDeactivated(WindowEvent e) public void windowClosed(WindowEvent e) public voi

28、d windowIconified(WindowEvent e) public void windowDeiconified(WindowEvent e)五、程序运行结果1.界面2.基本运算,如54 -12 =42: 3.数学函数运算,如9的开平方为3:六、总结和体会总结:(1)通过编写这个相对复杂的程序,让我认识解决实际问题前应现建立模型,再通过建立的模型使问题简单化,从而解决问题。(2)这次编写的程序大部分是通过调用各包中的方法来实现的,这也让我充分理解了包和类调用的关系。(3)由于这次编写的程序相对比较复杂,所以不能一次性编写、调试,也由此让我学会把程序分块,逐个编写、调试。体会: 在此次的课程设计实践中,我学到了教科书上没有的东西。这次课程设计,我按照课程设计的要求,分块实现程序的功能。在实践中我遇到许多的问题,但我都克服,最终我成功的完成了这次课程设计。从中我充分理解了Java面对对象的特性,并体会到Java和C语言的不同之处在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧和方法,为今后的其他计算机语言的学习奠定了一定的基础。

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

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