华南农业大学理学院
(面向对象的程序设计)
课程设计
实验题目:  设计一个简单的计算器应用程序             
简易计算器应用程序的制作
         
问题陈述
  设计一个计算器应用程序,用于进行简单的加减乘除四则运算。
需求分析
1设计思想
要设计一个计算器应用程序,则计算器必须要进行简单的四则运算功能,并且可以通过人机互动来进行操作。计算器功能主要包括下面几个方面:
*计算简单的加减乘除四则运算;
*通过鼠标点击输入数字信息;
*显示计算结果;
*计算器具有返回功能:按AC键不会清除重现存储器的内容;返零功能;
2设计划分
用JAVA布局管理器来创建图形界面(包括TextField,Button),框架和面板主要分成三大块:框架、显示面板、和数字面板;具体分布如下:
             
3界面布局
按一般计算器表面布局,主要以网格的行数和列数在创建布局管器的构造方法中通过参数进行设置,另外边界布局管理器。这两种布局结合最适合计算器,大方美观。
4设计要求和步骤
第一步,设计图形界面。
采用边界布局管理器把三个面板添加到框架上,再采用网格布局管理器,把标准AWT组件添加到界面上。
第二步,根据各按钮需要,标明对象名,便于计算操作。
第三步,设定各按钮的特性。
第四步,实例化所有按钮、设置其前景并注册。
第五步,运行APPLET
*运行小应用
*测试各按钮的性能,是否满足问题要求。
5、编译环境
    编码语言:JAVA
编译环境:JDK 1.5.0_11
10种常用的程序设计语言
概要设计
1设计方案要求
整个程序分三部分,首先是确定程序交互的对象,每个组件要用有意义的标签标明,设计出一个大体的框架,再添加面板,各面板设计分布相互独立,各面板中的按钮分布也相互独立,其各自响应的事件都会由各自的监听动作事件所决定。当Jbutton被按下时会产生一个动作事件(action  event)。各编码要有适当的注释。
2面板设置
    为了美观和整齐,采用了网格布局管理器进行编排显示面板和按钮排列。为了更好看,还可以添加计算器的背景。采用边界布局管理器排面板,合理有效。
由整体界面可知,显示信息主要设置在顶部(则北面),功能键设置在左面(则西面),数字按钮和运算按钮主要设置在右面(则在东面)。各按扭均有相应的数字或字母作为标签。
3主要模块概要
(1)主框架模块
存储则是以非记忆的模式,通过读取缺省静态数据和允许用户进行动态的受限操作实现的。处理则是通过存储的数据,根据需要对参数进行修改、返回等操作。具体变量声明界面设置大小如下: 
根据数据运算需要,数据均用双精度储存。 
public class Counter extends Frame
{
        //声明三个面板的布局
GridLayout gl1,gl2,gl3;
Panel p0,p1,p2,p3;
JTextField tf1;
TextField tf2;
Button
StringBuffer str;//显示屏所显示的字符串
double x,y;//x和y都是运算数
int z;//Z表示单击了那一个运算符.0表示"+",1表示"-",2表示"*",3表示"/"
static double m;//记忆的数字.
        public Counter()
{
//实例化三个面板的布局
..
//实例化所有按钮、设置其前景并注册
  .
//构造
.
.}
setResizable(false);
setBackground(Color.pink);
setBounds(100,100,320,280);
setVisible(true);
}
(2)驱动模块
    public static void main(String args[])
{
new Counter();
}
(3)事件模块
      class Bt implements ActionListener
{
public void actionPerformed(ActionEvent e2)
{
try{
    if ( )
    .
    else if ( )
    ..
}
}
}
(4) 异常处理模块
    catch(NumberFormatException e){
tf1.setText("数字格式异常");
}
catch(StringIndexOutOfBoundsException e){
tf1.setText("字符串索引越界");
}
4事件处理
  为了响应一个事件,需要建立事件与触发事件的某个组件之间的联系,通过给组件添加一个的方式就可建立与被的组件之间的联系。如程序中各个按钮ButtonListener代表一个动作,通过按数字按钮进行输送信息,使内部储存信息并处理输出相关信息。
Jbutton button = new Jbutton( );
Button.addActionListener(new ButtonListener());
由于为了方便程序需要,并没有采用按钮数组化,每一个按钮都附带一个动作,可以灵活调用。
5功能设计
本程序的设计功能比较简单,除了加减乘除之外,还有倒数,平方和百分比的计算功能。对
于广大中小学生的学习有巨大的帮助。使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间
6对象窗口的设计
    为了使用者更好的使用本计算器,计算器的窗口化设计跟日常生活中的计算器一样。外观醒目美观。如:
调试分析
1数据调试分析
本设计主要目的就是进行简单的四则运算,因此现以随机数进行测试:
输入信息
显示结果
信息操作
从0~9数字
数字输入
输入1点5
小数点插入
输入2和-2
 
正负符号插入
输入2+5
加号、等号输入
加法运算
输入2*5
乘法运算
输入10/2
除法运算
输入16-2
减法运算
输入16
清除操作
输入16和1/X
倒数运算
输入2和%
百分数操作
输入16和sqrt
平方操作
输入16和Backspace
返回操作