JAVA课程设计计算器.docx
JAVA课程设计计算器 JAVA程序设计课程设计任务书 一、课程设计的目的 1、培养学生面向对象编程的思想; 2、使学生熟悉JAVA语言的使用; 3、培养学生JAVA编程的思想和方法; 4、使学生掌握JAVA编程调试的基本技能; 5、培养学生分析、解决问题的能力。 二、课程设计内容与要求 1、内容一: 1简单计算器 题目描述 使用Java的GUI图形用户界面编程设计并编写一个计算器程序,用户可以通过鼠标或者键盘操作输入参加运算的数值和运算符,要求能进行加、减、乘、除等混合运算。 基本要求 实现加、减、乘、除的双目单类别的基础运算; 实现提示 GUI编程Component的事件响应。 参考界面 JAVA程序设计课程设计 一、系统中所使用的数据对象及说明 1、Calculator类 属性 属性名称类型描述 Jmb JMenuBar 菜单栏Jm1 jm2 jm3 JMenu 菜单Jmi JMenuItem 菜单项 f JFrame 实例化对象Panel1 1 JPanel 输入面板CommandsPanel JPanel 运算符面板calckeysPanel JPanel 数字面板showline JT extField 数据输出框backspace JButton 退格键CE JButton 清空 C JButton 删除 1/X JButton 取余 dao JButton 取倒数 add JButton 数字相加 jian JButton 数字相减cheng JButton 数字相乘quzheng JButton 数字相除dian JButton 点符号 deng JButton 等于号 zero JButton 一 one JButton 二 two JButton 三 three JButton 四 four JButton 五 five JButton 六 six JButton 七 seven JButton 八 eight JButton 九 num1 String 保存第一个运算数字operator String 保存运算符号 方法 方法名称功能 Calculator 计算器布局 Add 添加组件、面板addMouseListener 添加鼠标监听事件setJMenuBar 设置菜单 二、系统功能结构及相关算法描述 1、系统功能结构 系统功能结构图2、相关算法流程图 (1)加减法流程 (2)乘除法流程 (3)乘方取余法流程 三、系统运行结果(截图) 1、主菜单 四、课程设计总结 通过此次课程设计,使我更加扎实的掌握了有关JAVA图形界面布局等方面的知识,虽然在设计过程中也遇到了很多问题,但经过一次又一次的思考,一遍又一遍检查和反复修改终于找到了原因所在,也暴露了前期我在这方面的知识欠缺。课程设计是一种实践活动,不但可以提升专业知识和专业能力,也培养了我们独立思考,动手操作的能力,使我对抽象的知识有了具体的认识。这对于我们的将来也有很大的帮助。此次课程设计也让我明白没有最完善的程序代码,只有不断地改善才能使程序变得更完美,同时也增强了我对JAVA的兴趣,相信继续保持下去对JAVA的理解一定会更上一层楼。 附录:程序源码 import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JSeparator; import javax.swing.JTextField; public class Calculator extends JFrame implements ActionListener JMenuBar jmb; JMenu jm1,jm2,jm3; JMenuItem jmi; /* 计算器上的键的显示名字*/ private final String KEYS = "7", "8", "9", "/", "sqrt", "4", "5", "6", "*", "%", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" ; /* 计算器上的功能键的显示名字*/ private final String COMMAND = "Backspace", "CE", "C" ; /* 计算器上键的按钮*/ private JButton keys = new JButtonKEYS.length; /* 计算器上的功能键的按钮*/ private JButton commands = new JButtonCOMMAND.length; /* 计算器左边的M的按钮*/ /* 计算结果文本框*/ private JTextField resultText = new JTextField("0"); / 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字private boolean firstDigit = true; / 计算的中间结果。 private double resultNum = 0.0; / 当前运算的运算符 private String operator = "=" / 操作是否合法 private boolean operateValidFlag = true; /* * 构造函数 */ super(); JMenuBar jmb=new JMenuBar(); this.setJMenuBar(jmb); JMenu jm=new JMenu("编辑(E)"); jmb.add(jm); jmi= new JMenuItem("复制(c) Ctrl+c"); jm.add(jmi); jmi= new JMenuItem("粘贴(p) Ctrl+v"); jm.add(jmi); jm2=new JMenu("查看(v)"); jmb.add(jm2); jmi= new JMenuItem("标准型(T)"); jm2.add(jmi); jmi= new JMenuItem("科学型(S)"); jm2.add(jmi); jm2.add(new JSeparator(); jmi= new JMenuItem("数学分组(I)"); jm2.add(jmi); jm3=new JMenu("帮助(H)"); jmb.add(jm3); jmi= new JMenuItem("帮助主题(H)"); jm3.add(jmi); jm3.add(new JSeparator(); jmi= new JMenuItem("关于计算器(A)"); jm3.add(jmi); / 初始化计算器 init(); / 设置计算器的背景颜色 this.setBackground(Color.LIGHT_GRAY); this.setTitle("计算器"); / 在屏幕(500, 300)坐标处显示计算器 this.setLocation(500, 300); / 不许修改计算器的大小 this.setResizable(false); / 使计算器中各组件大小合适 this.pack(); /* * 初始化计算器 */ / 文本框中的内容采用右对齐方式 resultText.setHorizontalAlignment(JTextField.RIGHT); / 不允许修改结果文本框 resultText.setEditable(false); / 设置文本框背景颜色为白色 resultText.setBackground(Color.WHITE); / 初始化计算器上键的按钮,将键放在一个面板内 JPanel calckeysPanel = new JPanel(); / 用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素 calckeysPanel.setLayout(new GridLayout(4, 5, 3, 3); for (int i = 0; i = 0) / 用户按了数字键或者小数点键 handleNumber(label); / handlezero(zero); else / 用户按了运算符键 handleOperator(label);