计算器详细及设计说明书.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算器详细及设计说明书

计算器 详细设计说明书 版本1.0 作者: 完成日期:2009-10-3 1 引言 1.1 编写目的 该软件详细设计说明书主要是为设计“计算器程序”而编写的详细设计分析,主要给出该软件总体设计架构、包含的模块、设计的思想、每个模块的详细设计原理等信息,从而正确实现软件的编写,并且方便了以后的测试、管理和改进。 1.2 背景 待开发软件系统的名称是“计算器程序”。该软件将完成一般的计算操作:加减乘除四则运算、开方、求倒数、百分数,以及数据的存储操作。对于更高级的科学运算,如sin、cos等暂不实现。 由于程序较小,开发将由本人独立完成,暂时没有期望的用户群体。 2 程序系统的结构 程序结构从整体上可以大致分为3个部分,如表1所示。 表1 程序整体模块划分 模块 标示符 说明 输入数值 NumberInput 通过数字、小数点按键输入一个数值 输入双目操作符 DoubleOptInput 输入+ - * / %等双目运算符进行运算 输入单目操作符 SingleOptInput 输入sqrt、1/x等单目运算符进行运算,包括MR、MS存储相关的运算 3 输入数值设计说明 3.1 状态图 这部分的状态图表示如图1所示。 图1 输入数值状态图 3.2 流程图 输入数值根据状态图可以得出流程图如图2所示。 图2 输入数据流程图 3.3 说明 在这种情况下,可以有三种输入数据格式: ①整数:如45,123,1000等。 ②纯小数:如0.15,0.33,0.0001,0.12000等。 ③含有整数部分的小数:如100.000,10.0002,13.2150等。 在以上情况下,对于数字0要有正确的处理方式,如果在输入整数的情况下,00123这样的整数是不能存在的,12000这样的整数是正确存在的。在输入小数的情况下,0.12000要能够显示后面的3个0。 程序需要能正确处理这三种数据,这也是测试的依据。 4 输入双目操作符设计说明 4.1 状态图 输入双目运算符的状态图如图3所示。主要运算是加减乘除、百分号运算。 图3 双目运算符的状态图 4.2 说明 程序实现完全按照图3所示的状态变迁实现。双目运算的根本形式是:N1 opt N2 = Result。N1、N2是两个操作数,opt是双目运算符。其中详细的情况如下。 程序初始状态S0时,双目运算的两个操作数N1=N2=0。 状态变迁路径1:S0 - S(Num1) – S(双opt) – S(Num2) - S(=)。这是一般的计算过程,即25+3= 28,0.3*9= 2.7,36.5-80= -43.5,12/8= 1.5。 状态变迁路径2:S0 - S(Num1) – S(双opt) - S(=)。该情况下,相当于Num2=Num1。即25+= 50,3*= 9,14-= 0,5/= 1。 状态变迁路径3:S0 - S(Num1) – S(双opt) – S(Num2) - S(=)- S(=)- S(=)….。如12+3 = = = = 24,就是12连续加了3四次。2*3 = =18,就是2连续乘了3两次。 状态变迁路径4:S0 - S(Num1) – S(双opt) – S(Num2) - S(双opt) – S(Num3) - S(=)。这是一般的连续运算,即12+3*2= 30。在这里计算顺序是按照输入的顺序计算的,与操作符自身的优先级无关。 状态变迁路径5:S0 - S(Num1) – S(双opt) – S(Num2) - S(=) – S(双opt) – S(Num3) - S(=)。这也是连续运算的一种。如 12+3= *7=105。 状态变迁路径6:在S(=)的状态下,输入一个数值,则重新开始了新一轮的运算。 状态变迁路径7:S(Num2) – S(%)。这是百分数运算。下面给出百分数运算的规则。输入顺序:40 + 10 %(此时显示40*10/100的结果4) = 44(此时显示40+4的结果)。 输入顺序:40 + 10 %(此时显示40*10/100的结果4) %(此时显示40*4/100的结果1.6) %(此时显示40*1.6/100的结果0.64) = 40.64(此时显示40+0.64的结果)。 异常状况处理:除法运算除数为0,提示用户除数为0,并重新输入。 5 输入单目操作符设计说明 相对来讲,单目运算符比较简单,它只是对当前的操作数进行计算,基本上不会改变程序的状态,因此没有必要画出单目运算符的状态图。但是,某些按键的顺序可能跟单目操作符共同影响了后续的计算方式,如 1 + 3 = sqrt * 7 =的结果是14(sqrt开方运算的结果赋给了操作数1),1 + 3 = sqrt =的结果是6(sqrt开方运算的结果赋给

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档