java课程设计模拟计算器

上传人:第*** 文档编号:55637056 上传时间:2018-10-03 格式:PDF 页数:15 大小:201.03KB
返回 下载 相关 举报
java课程设计模拟计算器_第1页
第1页 / 共15页
java课程设计模拟计算器_第2页
第2页 / 共15页
java课程设计模拟计算器_第3页
第3页 / 共15页
java课程设计模拟计算器_第4页
第4页 / 共15页
java课程设计模拟计算器_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《java课程设计模拟计算器》由会员分享,可在线阅读,更多相关《java课程设计模拟计算器(15页珍藏版)》请在金锄头文库上搜索。

1、王子涛|计科 1305|0902130510|2015 年 10 月 20 日中南大学JAVA 课程设计实验报告页 1一、课设内容模拟计算器:设计实现一个模拟计算器,能进行整数的加、减、乘、除等四则运算。二、需求分析如题,要求能实现整数的加、减、乘、除等四则运算,我在这个基础上,添加了其他一些常用 的功能,如实现百分号%、进行开根号运算、进行 1/x 运算、以及最小化到托盘。三总体设计要实现该计算器,主要有两个主要模块,第一个是界面模块用于设计计算器的图形界面,第二个是 功能模块用于实现计算器的基本功能。界面模块中除了设计图形界面,还需为各数字、功能按钮及显示框实现监听事物的能力。功能模块中编

2、写事件处理函数,用于实现计算器的功能。因为我还实现了最小化到托盘的程序,所以我用了另一个类写最小化到托盘的程序。四详细设计41 JCALCULTOR 类4.1.1 成员变量:JButton buttons用于实现各数字及功能模块的定义。JButton reset用于实现“清零”功能。JTextField display定义显示框。Int I 用于循环定义各按钮。boolean isFirstDigit用于设置第一个数的输入。double number用于保存输入的数字。String operator用于保存输入的按钮。4.1.2 成员函数:public JCalculator()构造函数。页

3、2public void actionPerformed(ActionEvent e)事件处理函数。Object target = e.getSource();target 为得到点击的是什么。String label = e.getActionCommand();if (target = reset)处理各按钮的事件。handleReset();else if (“0123456789.“.indexOf(label) 0)handleNumber(label);elsehandleOperator(label);public void handleReset() 处理点击 reset 按钮

4、是索要发生的事。display.setText(“0“);isFirstDigit = true;operator = “=“;public void handleOperator(String key)处理点击各操作按钮是所要发生的事处理点击各操作按钮是所要发生的事。if (operator.equals(“+“)采用采用 if 选择结构选择结构。number += Double.valueOf(display.getText();else if (operator.equals(“-“)number -= Double.valueOf(display.getText();else if (

5、operator.equals(“*“)number *= Double.valueOf(display.getText();else if (operator.equals(“/“)number /= Double.valueOf(display.getText();else if (operator.equals(“=“)number = Double.valueOf(display.getText();else if (operator.equals(“%“)页 3number = 0.01*Double.valueOf(display.getText();else if (operat

6、or.equals(“equl“)number = Math.sqrt(Double.valueOf(display.getText();else if (operator.equals(“1/x“)number = 1/ Double.valueOf(display.getText();public void handleNumber(String key)处理处理 点击各数字按钮时所要发生的事。点击各数字按钮时所要发生的事。四调试分析4.1 界面问题一开始,我只采用了一个 panel,后来发现界面容易出错,易被打乱,于是我将各数字和功能按钮 放在 panel1 上,将显示框和清零按钮放在

7、panel2 上,再将两个 panel 放在 panel3 上,最后将 panel 放在 frame 上,从而使界面简洁美观稳定。4.2 功能按钮连续按两下才能实现功能问题原来写的代码是这样,导致按钮必须连续按两下才能实现功能else if (operator.equals(“1/x“)number = Double.valueOf(display.getText();number = 1/number ;发现问题后,我将其改成number = 1/ Double.valueOf(display.getText();即两句合并成为一句。4.3 最小化到托盘问题之前自己尝试写了个源代码,用于实现

8、该功能,我当时是把它放入到 JCalcultor 类中混合写的,后 来发现问题非常多,一直没有改好,于是利用 java 的封装特点,我从一些大牛的技术博客中找到 了实现该种功能的源代码,而且是单独一个类,只需要知道实现它的函数函数即可,非常方便。页 4五运行结果5.1 模拟计算器运行界面5.2 计算 78*2 结果界面页 55.3 计算 259 开根号运行结果六课程设计总结之前对于老师上课讲的知识内容,一直停留在理解层面,通过这次课程设计上机实践操作,让 我对所学习的知识有了一些新的认识和体会;在课程设计的过程中,通过自己亲自动手编写代码,我不仅巩固了知识还加深了这些知识理解。 编程过程中,总

9、体设计主要是窗口与组件的应用,具体执行则是利用 Java 语言设计算法,而难点 也在算法的设计上。虽然程序大体上符合要求,但由于第一次编写这么复杂的程序,程序仍然存在 一些漏洞,譬如由于未进行异常处理,当连续输入运算符是程序会出错,还有若一直按小数点的话 会得到一连串的小数点。我觉得在编程时应该注意排版对齐,这样不论是自己检查程序还是别人阅 读程序都会更加方便。如果能添加备注的话以后阅读程序会更容易些。通过这次课程设计,我更加确信理论和实践相结合的重要性。当然,在实验上机过程中遇到了 许多困难,但是通过询问老师同学,这些问题都得到了很好的解决,三人行必有我师。在解决问题 的过程中,也提高了自己

10、的解决问题的能力,修正了一些之前关于知识内容的错误理解,可谓收益 颇丰。在这几次实验中得到的宝贵经验,将为我的将来铺路,我也一定会再接再厉,刻苦努力,不 断汲取新的知识,永不放弃!六附录JCalcultor.javapackage counter;import java.awt.*;import java.awt.event.*;页 6import javax.swing.*;import java.awt.SystemTray;import java.awt.TrayIcon;import java.awt.Color;/class c extends JFrame /pubpublic c

11、lass JCalculator extends JFrame implements ActionListener /* Serial Version UID*/ private static final long serialVersionUID = -169068472193786457L;/*private class WindowCloser extends WindowAdapter public void windowClosing(WindowEvent we) System.exit(0); /*将 java 虚拟机里的内容都停掉,正常退出页 7*/int i;/String

12、用来创建数字和操作键。private final String str = “%“,“7“, “8“, “9“, “+“,“equl“, “4“, “5“, “6“, “-“,“1/x“, “1“,“2“, “3“, “*“, “hello“,“.“, “0“, “=“, “/“ ;/ 创建按钮。JButton buttons = new JButtonstr.length;/ reset。JButton reset = new JButton(“CE“);/ 输入框和显示框。JTextField display = new JTextField(“0“);/构造函数。public JCalc

13、ulator() super(“模拟计算器“);/ 面板。JPanel panel1 = new JPanel(new GridLayout(4, 5); /网格布局for (i = 0; i 0)handleNumber(label);elsehandleOperator(label);boolean isFirstDigit = true; /第一个数字是否被输入public void handleNumber(String key) if (isFirstDigit)display.setText(key);else if (key.equals(“.“) else if (!key.e

14、quals(“.“)页 10display.setText(display.getText() + key);isFirstDigit = false;public void handleReset() display.setText(“0“);isFirstDigit = true;operator = “=“;double number = 0.0;String operator = “=“;public void handleOperator(String key) if (operator.equals(“+“)number += Double.valueOf(display.getT

15、ext();else if (operator.equals(“-“)number -= Double.valueOf(display.getText();else if (operator.equals(“*“)number *= Double.valueOf(display.getText();else if (operator.equals(“/“)number /= Double.valueOf(display.getText();页 11else if (operator.equals(“=“)number = Double.valueOf(display.getText();els

16、e if (operator.equals(“%“)number = 0.01*Double.valueOf(display.getText();else if (operator.equals(“equl“)number = Math.sqrt(Double.valueOf(display.getText();else if (operator.equals(“1/x“)number = 1/ Double.valueOf(display.getText();else if (operator.equals(“hello“)display.setText(String.valueOf(number);operator = key;isFirstDigit = true;public static void main(String args) JCalculato

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号