1、Java计算器实验报告题目:Java程序设计实验学院计算机科学与技术专业xxxxxxxxxxxxxxxx学号xxxxxxxxxxx姓名xxxxxx指导教师x20xx年xx月xx日摘要通过设计简单计算器,掌握java程序图形界面设计的基本方法。要求实现简单计算器的加减乘除功能关键词:swing;panel目录1 需求分析12 整体设计23 详细设计33.1 界面设计33.2 详细设计34 调试与测试4参考文献6附录71需求分析通过设计简单计算器,掌握java程序图形界面设计的基本方法。要求实现简单计算器的加减乘除功能。操作系统为Windows 8.1 64bit,jdk版本号1.8update2
2、5 64bit,开发软件为Eclipse Java EE IDE 4.4.1。2整体设计采用java的swing模块生成窗口及按钮,窗口包含可点击的数字键及操作符按钮,当点击按钮时屏幕显示相应的操作结果。3详细设计3.1界面设计利用java.awt.Panel类生成两个panel,panel1分别放置数字键及操作按钮,panel2放置显示结果区域及重置计算器的按钮。点击按钮时屏幕显示对应操作。在panel1中,利用java.awt.Button类生成按钮并添加;在panel2中,利用java.awt.TextField生成显示结果的区域。通过setPreferredSize方法设置窗体的大小3
3、.2程序设计设置double型变量number用于存放当前操作数,String类operator用于标识当前操作符。每当点击按钮时判断当前按钮功能,若为数字则向显示区域存入,若为操作符则将显示区域的字符串显示转换为操作数并设置操作符。布尔型变量isFirstDigit用于辅助实现连续运算。CE按钮用于重启计算器,点击后调用handleReset()将显示区域内容置0,并将操作符重新设置为“=”4调试与测试运行初始界面如图:输入1/2,计算结果为:顺序输入1+2*4,为:C点击CE,计算器重置:参考文献Java程序设计基础实用教程(第3版)叶核亚电子工业出版社 2011年5月附录package计
4、算器;import java.awt.*;import java.awt.event.*;import javax.swing.*;publicclass计算器extends JFrame implements ActionListener privatestaticfinallongserialVersionUID = 1L; /关闭 privateclass WindowClose extends WindowAdapter publicvoid windowClosing(WindowEvent we) System.exit(0); / 数字和操作符 privatefinal Stri
5、ng str = 7,8,9,/,4,5,6,*,1, 2 ,3,-,0,.,=,+; / 生成按钮 Button buttons = new Buttonstr.length; / 取消或重置 Button reset = new Button(CE); /生成结果显示区域 TextField display = new TextField(0); public计算器() super(计算器); / 添加面板 Panel panel1 = new Panel(new GridLayout(4, 4); /生成按钮 for (inti = 0; istr.length; i+) buttons
6、i = new Button(stri); panel1.add(buttonsi); Panel panel2 = new Panel(new BorderLayout(); Dimension dimp=new Dimension(220,40); panel2.setPreferredSize(dimp); Font fontp=new Font(微软雅黑,Font.TRUETYPE_FONT,11); panel2.setFont(fontp); panel2.add(Center, display); panel2.add(East, reset); getContentPane()
7、.setLayout(new BorderLayout(); getContentPane().add(North, panel2); getContentPane().add(Center, panel1); for (inti = 0; i 0) handleNumber(label); else handleOperator(label); booleanisFirstDigit = true; publicvoid handleNumber(String key) if (isFirstDigit) display.setText(key); elseif (key.equals(.)
8、 & (display.getText().indexOf(.) 0) display.setText(display.getText() + .); elseif (!key.equals(.) display.setText(display.getText() + key); isFirstDigit = false; /重置计算器 publicvoid handleReset() display.setText(0); isFirstDigit = true; operator = =; doublenumber = 0.0; String operator = =; publicvoi
9、d handleOperator(String key) if (operator.equals(+) number += Double.valueOf(display.getText(); elseif (operator.equals(-) number -= Double.valueOf(display.getText(); elseif (operator.equals(*) number *= Double.valueOf(display.getText(); elseif (operator.equals(/) number /= Double.valueOf(display.getText(); elseif (operator.equals(=) number = Double.valueOf(display.getText(); display.setText(String.valueOf(number); operator = key; isFirstDigit = true; publicstaticvoid main(String args) new计算器();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1