通信技术综合训练实训报告
院 系 信息工程学院 专 业 通信工程 年 级 2010级 学 号
姓 名
1
通信技术综合训练
目 录
(目录自动生成)
2
1. 项目需求分析
日常生活中经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在Applet中实现一个精巧的计算器,可以让用户的操作也更方便和快捷。本项目需要实现一个具有四则运算的计算器,能够实现基本的加、减、乘、除运算,以及其他辅助功能;界面操作简捷适用;要提供主要的设计思路、类的设计。
1.1设计要求
课程设计要求:
(1)使用图形用户界面;一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;
(2)完成整数、实数的四则运算(加、减、乘、除) (3)通过按钮点击实现数据的复位(清零); (4)实数运算中小数位的精度一致。
1.2设计思路
(1) 根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个 文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel中,完成界面设计。 (2) 设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当 中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之 前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到 点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量
3
中,然后重置文本框内容,将运算符号显示到文本框中,随后输入 第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运算符先将字符串数据转化成双精度类型,然后计算出结果并显示到 文本框当中。
(3) 基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、 清零、退格等功能的实现,清零直接重置文本框内容,退格功能则 采用substring函数截取字符串长度。
1.3关键技术
监视器和计算内核
2设计与实现
2.1项目概要设计 显示窗口:
主窗口:继承自JFrame;面板:继承自JPanel;按钮:继承自JButton。
类:MyFrame:
需要一个窗口函数Window();
监视器函数 addActionListener(this)
运算内核和监视 actionperform(ActionEvent e) 启动函数main();
2.2项目详细设计
1数据分析
计算器的程序设计必然有数据的输入,当中就包含运算符和数字,都需要通过计算器上的button按钮选项按键输入进去,里面录入的为字符型的数据,若要进行运算,要将输入的字符转换成double型,以防运算错误。
2功能设计
①数字键按钮,输入所需计算的数字 ②算数符按钮,输入所需的算数符号 ③等号按钮,输出运算结果 ④C按钮,执行清零
3程序代码
4
import java.awt.*;
import java.awt.event.*;
import java.math.BigDecimal;
import javax.swing.*; //java的图形界面库
//创建计算器Calculator类,实现ActionListener接口 public class Calculator implements ActionListener { //定义变量和按钮数组 private String[] names = {\ \ private JButton[] buttonArray = new JButton[names.length]; //JBhtton实现查询功能 private boolean append = false;//默认追加为false private String operator = \默认运算符为“+” private String s1 = \默认字符为0 private String ss = \默认字符为0 //创建可以显示20个字符的文本框 JTextField jtf = new JTextField(20); //构造方法 public Calculator(){} public Calculator(String title) { //创建窗口、面板,并设置面板布局为网格布局 JFrame jf = new JFrame(title); JPanel jp = new JPanel(); jp.setLayout(new GridLayout(5,4)); //依次添加按钮到面板中,并为按钮注册监听器 for (int i = 0; i < buttonArray.length; i++) { buttonArray[i] = new JButton(names[i]); buttonArray[i].addActionListener(this); jp.add(buttonArray[i]); } //添加文本框到窗体中 jf.add(jtf,BorderLayout.NORTH); jf.add(jp);//添加面板到窗体中 jtf.setHorizontalAlignment(JTextField.RIGHT);//设置文本框的水平方向为右 jtf.setText(\设置初始文本为0 jtf.setEditable(false);//设置文本框为不可编辑状态 //设置窗体属性 jf.pack();//系统自动设置大小和位置 jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
5