《计算器——概要设计说明书.doc》由会员分享,可在线阅读,更多相关《计算器——概要设计说明书.doc(8页珍藏版)》请在三一办公上搜索。
1、计算器概要设计说明书1、引言1.1编写目的在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法。而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概念)抽取出来,作为JAVA程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至还应考虑类必须满足的约束。 1.2项目背景 计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用JAVA的知识编写程序来解决此问
2、题。该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。在课程设计中,系统开发平台为Windows 7,程序设计设计语言采用JAVA,在程序设计中,采用了结构化与面向对象两种解决问题的方法。1.3定义事务流:数据进入模块后可能有多种路径进行处理。系统:若未特别指出,统指本系统。1.4参考资料1钱银中,眭碧霞.Java程序设计案例教程2道客巴巴:2、运行环境操作系统:Windows 2000Windows XP Professional、Windows 2000 Server或者windo
3、w 7.0操作系统. 3、总体设计 3.1 系统设计流程系统设计主要有五部分组成:需求分析、概要设计、详细设计、编写代码和系统测试。如下图所示: 需求分析概要设计详细设计编写代码系统测试 需求分析这次课程设计的题目是实现简单计算器的功能。实现功能:加,减,乘,除,可加其它运算功能;还要实现数据的输入,输出,计算,显示及清除等功能。 概要设计计算器包含的功能有:加、减、乘、除、清除。计算器的屏显为JFrame控件,左侧的数字、操作符按键、右侧的功能为BUTTON控件。 输入的原始数据、运算中间数据和结果在顶部的TEXTBOX控件显示。每种计算功能均为独立设计算法。 详细设计详细设计部分则是在概要
4、设计的基础上对计算器的功能实现作出更为详细的介绍。主要对各设计块中的各个类作出说明,包括对每个类如何在以后的程序设计中的定义作出介绍,并作出相应的说明,并对各参数作出介绍。 编写代码这一部分主要根据前面的详细设计内容用具体语言实现计算器系统,主要采用Java语言实现,这一部分主要是代码实现,将前一阶段的设计思想实现,因为前面已经对该系统的整体设计思路和整体框架作出了说明,并且在详细设计部分对每个设计块中的类如何实现也已给出,所以在这一部分工作量也不是太大。 系统测试系统测试部分主要对前面已经实现的系统作出测试,看该系统是否符合系统设计要求。并对一些特殊的数据进行测试,比如一些数的取值,看是否符
5、合要求,在测试的基础上,对发现的错误进行改正,使系统逐步得到完善。测试不是一朝一夕就能完成的,必须在今后的使用过程中逐渐完善,并得到用户的反馈后对系统作出修改。 计算器系统主要采用了软件工程的设计思路,从需求分析、概要设计、详细设计、编写代码直到系统测试都遵从软件工程的设计要求。3.2功能设计(1)计算器包含的功能有:加、减、乘、除、清除。(2)每种计算功能均为独立设计算法。4 、主程序的设计系统选用Java程序设计语言来完成整个系统应用程序的编写。4.1 按键的设计(1)本计算器按键均使用BUTTON控件。例:“1”运算功能按键代码如下 1 JButton jb0,jb1,jb2,jb3,j
6、b4,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); jp.add(jb1=new JButton(1); add(jp);/注释监听器 jb1.addActionListener(this); add(jt1=new JTextField(10),BorderLayout.NORTH);2bNumber = new JButton(1);bNumber.
7、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+); total=total1; if(e.getSource()=jb11) t1=Double.parseDouble(jt1.ge
8、tText(); 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( + op1); else currentOp = preOp;
9、preOp = 1;tResult.setText(cal.opAdd(tResult.getText(); 4.2界面设计 5. 设计目标5.1 系统功能简述本程序主要有加、减、乘、除、清除几个模块。加、减、乘、除、清除是根据用户需求分别实现两个数的加、减、乘、除、清除并将计算结果显示在显示文本框中。下图为程序运行时界面 5.2系统设计用例图 用户 加 乘 减 除 清除5.3控件说明程序用到的控件有TEXTBOX表(文本框)、GroupBox表(容器)、 Button表(按钮)。TEXTBOX文本框表控件名TEXT属性显示所属控件备注jt10TextBox结果显示框Button 按钮表控件名
10、TEXT属性显示所属控件备注jb00Button数字0按钮jb11Button1按钮jb22Button2按钮jb33Button3按钮jb44Button4按钮jb55Button5按钮jb66Button6按钮jb77Button7按钮jb88Button8按钮jb99Button9按钮jb10=Button等号按钮jb11.Button小数点按钮jb12+Button加号按钮jb13-Button减号按钮jb14*Button乘号按钮jb15/Button除号按钮jb16空白建Button死按钮jb17空白建Button死按钮jb18空白建Button死按钮6.系统设计思想一个系统设计的
11、根本目的就是真正满足用户的实际需求,并采用先进、安全、成熟、可靠的技术来实现。鉴于当今技术发展的趋势,结合本程序的实现难易程度和工作量,我们采用了Java技术开发。本着既要保证系统的安全性、稳定性、高效性,又要为用户提供实用、方便、高效的操作环境的设计思想,来进行分析设计的。程序尽可能的方便使用者的使用,操纵简单。程序的安全性是指程序中所有数据的安全性,它包括数据完整性、可用性、可控性等。数据完整性就是防止数据的丢失或者精度的损失,对此本程序对数据尽可能的使用精度高的数据包括数据类型之间的转换。数据可用性就是保证存在数据在不同的操作之间的连续使用。7. 关键问题及解决实现该系统的关键是对操作数
12、的取得,相关数学运算的实现,等号的实现。因为程序是简单的计算器,是对数字进行相关的操作的。而如何从按键上去的我们想要的操作数就直接制约了程序的实现。当成功取得了我们想要的数之后,相关的操作的实现(如阶乘、开平方、取对数等)也成为了一个问题。另外对涉及到两个操作数等号的实现(这里主要是加、减、乘、除、清除),单个操作数相关操作的实现在解决了取数的问题之后就可以迎刃而解,而涉及到两个操作数等号的实现就有成为了一个问题,以及该计算器的功能不全,没有一些简单的菜单。只有确定了编程语言、编程技术才能具体的实现以上功能,所以采用的编程技术和编程语言对实现本系统非常关键。对于操作数的取得声明了一个strin
13、g _number,当点击一个按钮式就让_number等于按钮text的方法 并用showboxtext来接收,这样得到的字符串就要取得的数并且在显示文本框中显示出来,只是类型是string,当点击数学操作符时将showboxText上字符串强制类型转换为double型并赋值给num1,这样就得到了我们要的double类型的数;相关数学运算的实现采用math类中的方法或者写一个函数并在相对应的运算操作调用这个函数,这样就数学运算就成功实现了;至于等号的实现首先声明了一个int类型的_sign当点击相应的数学运算符时就给_sign赋一个对应的整型的值 ,当点击等号时根据_sign值的不同选择相对应的计算方法。-