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