课程设计任务书
学院
信息工程学院
班级
通信二班
姓名
王晓东
设计起止日期
-
设计题目: 计算器
设计任务:
(1)设计的计算器可以完成加法、减法、乘法、除法的简单运算。
(2)实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。
(3)添加小数点功能,用以实现浮点型数据的计算。
(4)使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算。
指导教师评语:
成绩: 签字:
年月日
计算器
根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力
功能需求分析
(1)设计的计算器可以完成加法、减法、乘法、除法的简单运算。
(2)实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。
(3)添加小数点功能,用以实现浮点型数据的计算。
(4)使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算。
设计思路
(1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel中,完成界面设计。
(2)设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量中,然后重置文本框内容,将运算符号显示到文本框中,随后输入第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运算符先将字符串数据转化成双精度类型,然后计算出结果并显示到文本框当中。
(3)基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、退格等功能的实现,清零直接重置文本框内容,退格功能则采用substring函数截取字符串长度。
功能模块设计
以下为标准计算器的基本功能:
(1)加法
两个数据进行加操作,可以为小数。
(2)减法
两个数据进行减操作,可以为负数相减。
(3)乘法
两个数相乘操作。
(4)除法
两个数相除操作。
(5)倒数
对任意一个数进行倒数运算
(6)退格
用于删除某个数据
(7)正负号运算
实现某一个数据的正负号转换
程序采用继承windowadapter类,新建Jframe窗体,利用数组来定义JBotton按钮,同时利用数组注册监听,采用4行5列网格布局,完成计算器界面的基本设置,在窗体的正常关闭方面,采用匿名类实现窗体的正常关闭。最后对按钮进行计算分析,分别设定输入数据的A类、运算符控制的Opertion类,退格功能的BackSpace类、计算结果的Result类等等,一步步实现计算器的基本功能。
界面设计
简单的页面设计如图1所示:
图1 页面设计显示
程序流程图
程序设计的流程图如图2所示:
图2 程序流程图
主要部分功能解释
(1)类A的设计,类A的设计主要实现了数据的输入功能。
class A implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String a = ();
String s = ();
if(("0.")||("+")||("-")||("*")||("/"))
(s);
else
{
if(flag2)
{
(s);
flag2=false;
}
else
(a+s);
}
}
}
功能解释:程序开始时,程序初始化文本框的内容为“0.”,点击数字按钮,则调用类A,首先用a来获取当前文本框内容,s来获取按钮数值,然后进行判断,若a的值为上述代码的值则输出s的值,再次点击数字按钮时,再次调用A类,此时a的值为上次输入的s值,第一个if语句不满足,执行下个if语句if(flag2),flag2初始值为false,该语句的功能是在执行了“=”号按钮时,防止新的数字按
java 来自淘豆网m.daumloan.com转载请标明出处.