1、计算机科学与技术专业Java实验报告 实验报告 题目:Java程序设计实验 学 院 计算机科学与技术 专 业 xxxxxxxxxxxxxxxx 学 号 xxxxxxxxxxxx 姓 名 xxxxxx 指导教师 20xx年xx月xx日摘 要 通过设计简单计算器,掌握java程序图形界面设计的基本方法。要求实现简单计算器的加减乘除功能关键词:swing;panel目 录1 需求分析12 整体设计23 详细设计33.1 界面设计33.2 详细设计34 调试与测试4参考文献6附录71 需求分析 通过设计简单计算器,掌握java程序图形界面设计的基本方法。要求实现简单计算器的加减乘除功能。 操作系统为W
2、indows 8.1 64bit,jdk版本号1.8update25 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.TextFiel
3、d生成显示结果的区域。通过setPreferredSize方法设置窗体的大小3.2 程序设计 设置double型变量number用于存放当前操作数,String类operator用于标识当前操作符。每当点击按钮时判断当前按钮功能,若为数字则向显示区域存入,若为操作符则将显示区域的字符串显示转换为操作数并设置操作符。布尔型变量isFirstDigit用于辅助实现连续运算。CE按钮用于重启计算器,点击后调用handleReset()将显示区域内容置0,并将操作符重新设置为“=”4 调试与测试 运行初始界面如图: 输入1/2,计算结果为: 顺序输入1+2*4,为:C点击CE,计算器重置:参考文献Ja
4、va程序设计基础实用教程(第3版) 叶核亚 电子工业出版社 2011年5月附录package 计算器;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class 计算器 extends JFrame implements ActionListener private static final long serialVersionUID = 1L; /关闭 private class WindowClose extends WindowAdapter public void windowClosing(W
5、indowEvent we) System.exit(0); / 数字和操作符 private final String 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 Grid
6、Layout(4, 4); /生成按钮 for (int i = 0; i str.length; i+) buttonsi = 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.ad
7、d(Center, display); panel2.add(East, reset); getContentPane().setLayout(new BorderLayout(); getContentPane().add(North, panel2); getContentPane().add(Center, panel1); for (int i = 0; i 0) handleNumber(label); else handleOperator(label); boolean isFirstDigit = true; public void handleNumber(String ke
8、y) if (isFirstDigit) display.setText(key); else if (key.equals(.) & (display.getText().indexOf(.) 0) display.setText(display.getText() + .); else if (!key.equals(.) display.setText(display.getText() + key); isFirstDigit = false; /重置计算器 public void handleReset() display.setText(0); isFirstDigit = tru
9、e; operator = =; double number = 0.0; String operator = =; public void handleOperator(String key) 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(); else if (operator.equals(/) number /= Double.valueOf(display.getText(); else if (operator.equals(=) number = Double.valueOf(display.getText(); display.setText(String.valueOf(number); operator = key; isFirstDigit = true; public static void main(String args) new 计算器();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1