
设计费计算器
-
2023年3月3日发(作者:海宁论坛百姓话题)1/8
计算器
概要设计说明书
1、引言
1.1编写目的
在程序设计中,通过设计、编制、调试一个模拟计算器的程序,
加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。
在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设
计方法,二是更先进的面向对象程序设计方法。而在面向对象程序设
计中关键是如何将问题域中的实体(即日常所见的概念)抽取出来,
作为JAVA程序中的类,而属性与行为作为类的两类要素通常是必不
可少的,甚至还应考虑类必须满足的约束。
1.2项目背景
计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、
除、开方、求倒数等简单运算的工具。要实现计算功能,可以用JAVA
的知识编写程序来解决此问题。该计算器大大的降低了数字计算的难
度及提高了计算的准确度和精确度。该计算器使用非常简单和方便,
对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮
助作用。
在课程设计中,系统开发平台为Windows7,程序设计设计语言
采用JAVA,在程序设计中,采用了结构化与面向对象两种解决问题
的方法。
1.3定义
2/8
事务流:数据进入模块后可能有多种路径进行处理。
系统:若未特别指出,统指本系统。
1.4参考资料
[1]钱银中,眭碧霞.Java程序设计案例教程
[2]道客巴巴:
2、运行环境
操作系统:Windows2000﹑WindowsXPProfessional、Windows2000
Server或者window7.0操作系统.
3、总体设计
3.1系统设计流程
系统设计主要有五部分组成:需求分析、概要设计、详细设计、编写代码和
系统测试。如下图所示:
⑴需求分析
这次课程设计的题目是实现简单计算器的功能。实现功能:加,减,乘,除,
可加其它运算功能;还要实现数据的输入,输出,计算,显示及清除等功能。
⑵概要设计
计算器包含的功能有:加、减、乘、除、清除。计算器的屏显为JFrame控件,
左侧的数字、操作符按键、右侧的功能为BUTTON控件。输入的原始数据、运算
中间数据和结果在顶部的TEXTBOX控件显示。每种计算功能均为独立设计算
法。
⑶详细设计
详细设计部分则是在概要设计的基础上对计算器的功能实现作出更为详细
需求分析
概要设计
详细设计
编写代码系统测试
3/8
的介绍。主要对各设计块中的各个类作出说明,包括对每个类如何在以后的程序
设计中的定义作出介绍,并作出相应的说明,并对各参数作出介绍。
⑷编写代码
这一部分主要根据前面的详细设计内容用具体语言实现计算器系统,主要采
用Java语言实现,这一部分主要是代码实现,将前一阶段的设计思想实现,因
为前面已经对该系统的整体设计思路和整体框架作出了说明,并且在详细设计部
分对每个设计块中的类如何实现也已给出,所以在这一部分工作量也不是太大。
⑸系统测试
系统测试部分主要对前面已经实现的系统作出测试,看该系统是否符合系统
设计要求。并对一些特殊的数据进行测试,比如一些数的取值,看是否符合要求,
在测试的基础上,对发现的错误进行改正,使系统逐步得到完善。测试不是一朝
一夕就能完成的,必须在今后的使用过程中逐渐完善,并得到用户的反馈后对系
统作出修改。
计算器系统主要采用了软件工程的设计思路,从需求分析、概要设计、详细
设计、编写代码直到系统测试都遵从软件工程的设计要求。
3.2功能设计
(1)计算器包含的功能有:加、减、乘、除、清除。
(2)每种计算功能均为独立设计算法。
4、主程序的设计
系统选用Java程序设计语言来完成整个系统应用程序的编写。
4.1按键的设计
(1)本计算器按键均使用BUTTON控件。例:“1”运算功能按键代码如下
[1]
……
JButtonjb0,jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8,jb9,
jb10,jb11,jb12,jb13,jb14,jb15,jb16,jb17,jb18,jb19;
GridLayoutDemo(){
JPaneljp=newJPanel();
out(newGridLayout(5,4));
……
(jb1=newJButton("1"));
4/8
……
add(jp);
//注释监听器
…
ionListener(this);
……
add(jt1=newJTextField(10),);}
[2]
bNumber=newJButton("1");
eground();
ionListener(this);
gin(newInsets(5,4,5,3));
(bNumber);
(2)计算器操作按键以加法为例,代码如下:
[1]
......
if(rce()==jb12)
{
com=true;
total1=ouble(t());
t(total1+"+");
total=total1;
}
if(rce()==jb11)
{
t1=ouble(t());
if(total==total1){
Doublead=total1+t1;
t(ng(ad));
i=0;
}
if(total==total2){
Doublead=total2-t1;
t(ng(ad));
i=0;
}
......
}
[2]
elseif(("+")){
gth(0);
5/8
if(currentOp==0){
preOp=currentOp=1;
op2=0;
t(""+op1);
}else{
currentOp=preOp;
preOp=1;
t((t()));
}
4.2界面设计
5.设计目标
5.1系统功能简述
本程序主要有加、减、乘、除、清除几个模块。
加、减、乘、除、清除是根据用户需求分别实现两个数的加、减、乘、除、
清除并将计算结果显示在显示文本框中。
下图为程序运行时界面
6/8
5.2系统设计用例图
5.3控件说明
程序用到的控件有TEXTBOX表(文本框)、GroupBox表(容器)、Button
表(按钮)。
用户
加乘减除清除
7/8
TEXTBOX文本框表
Button按钮表
控件名TEXT属性显示所属控件备注
jb00Button数字0按钮
jb11Button1按钮
jb2
2Button2按钮
jb3
3Button3按钮
jb4
4Button4按钮
jb5
5Button5按钮
jb66Button6按钮
jb77Button7按钮
jb88Button8按钮
jb99Button9按钮
jb10=Button等号按钮
小数点按钮
jb12+Button加号按钮
jb13-Button减号按钮
jb14*Button乘号按钮
jb15/Button除号按钮
jb16空白建Button死按钮
jb17空白建Button死按钮
jb18空白建Button死按钮
6.系统设计思想
一个系统设计的根本目的就是真正满足用户的实际需求,并采用先进、安全、
成熟、可靠的技术来实现。鉴于当今技术发展的趋势,结合本程序的实现难易程
度和工作量,我们采用了Java技术开发。本着既要保证系统的安全性、稳定性、
高效性,又要为用户提供实用、方便、高效的操作环境的设计思想,来进行分析
设计的。
控件名TEXT属性显示所属控件备注
jt10TextBox结果显示框
8/8
程序尽可能的方便使用者的使用,操纵简单。程序的安全性是指程序中所有
数据的安全性,它包括数据完整性、可用性、可控性等。数据完整性就是防止数
据的丢失或者精度的损失,对此本程序对数据尽可能的使用精度高的数据包括数
据类型之间的转换。数据可用性就是保证存在数据在不同的操作之间的连续使
用。
7.关键问题及解决
实现该系统的关键是对操作数的取得,相关数学运算的实现,等号的实现。
因为程序是简单的计算器,是对数字进行相关的操作的。而如何从按键上去的我
们想要的操作数就直接制约了程序的实现。当成功取得了我们想要的数之后,相
关的操作的实现(如阶乘、开平方、取对数等)也成为了一个问题。
另外对涉及到两个操作数等号的实现(这里主要是加、减、乘、除、清除),
单个操作数相关操作的实现在解决了取数的问题之后就可以迎刃而解,而涉及到
两个操作数等号的实现就有成为了一个问题,以及该计算器的功能不全,没有一
些简单的菜单。只有确定了编程语言、编程技术才能具体的实现以上功能,所以
采用的编程技术和编程语言对实现本系统非常关键。
对于操作数的取得声明了一个string_number,当点击一个按钮式就让
_number等于按钮text的方法并用showbox.text来接收,这样得到的字符串
就要取得的数并且在显示文本框中显示出来,只是类型是string,当点击数学
操作符时将showbox.Text上字符串强制类型转换为double型并赋值给num1,
这样就得到了我们要的double类型的数;相关数学运算的实现采用math类中的
方法或者写一个函数并在相对应的运算操作调用这个函数,这样就数学运算就成
功实现了;至于等号的实现首先声明了一个int类型的_sign当点击相应的数学
运算符时就给_sign赋一个对应的整型的值,当点击等号时根据_sign值的不同
选择相对应的计算方法。