嵌入式计算器详细设计说明书

上传人:shaoy****1971 文档编号:108164820 上传时间:2019-10-22 格式:DOC 页数:14 大小:105KB
返回 下载 相关 举报
嵌入式计算器详细设计说明书_第1页
第1页 / 共14页
嵌入式计算器详细设计说明书_第2页
第2页 / 共14页
嵌入式计算器详细设计说明书_第3页
第3页 / 共14页
嵌入式计算器详细设计说明书_第4页
第4页 / 共14页
嵌入式计算器详细设计说明书_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《嵌入式计算器详细设计说明书》由会员分享,可在线阅读,更多相关《嵌入式计算器详细设计说明书(14页珍藏版)》请在金锄头文库上搜索。

1、嵌入式计算器嵌入式计算器 详细设计说明书详细设计说明书 保密级别:机密 修改记录表修改记录表 序号序号版本版本修改日期修改日期修改内容描述修改内容描述修改人修改人 11.0 设计说明书 21.1 设计说明书 目目 录录 1 引言引言4 1.1 编写目的.4 1.2 背景.4 1.3 定义.4 1.4 参考资料.4 2 总体设计总体设计4 2.1 需求概述.4 2.3 软件结构.5 3 程序描述程序描述5 3.1 功能.5 3.2 性能.6 3.3 输入项目.6 3.4 输出项目.6 3.5 算法.6 3.6 程序逻辑.12 3.7 存储分配.12 3.8 限制条件.12 3.9 测试计划.12

2、 3.10 尚未解决的问题.12 详细设计说明书详细设计说明书 1 引言引言 1.1 编写目的编写目的 随着科学技术的发展,嵌入式系统也跟着发展起来,生活中对嵌入式的要 求也更加高了,计算也充斥着生活的每个角落,应嵌入式老师的要求,我们编 写了嵌入式计算器,该计算器属于科学计算器,适用于数字的计算。 1.2 背景背景 该项目由嵌入式系统老师施青松布置委托,由我们小组 4 名成员合作完成 (夏宇、李振中、乔彬、张默) 。 1.3 定义定义 嵌入式:Embedded 计算器:Calculate 个人数字助理:PDA (personal digital assistant) 1.4 参考资料参考资料

3、 嵌入式系统开发原理与实践 陈文智 EVC 面向对象编程 Visual C+面向对象编程 2 总体设计总体设计 2.1 需求概述需求概述 由于嵌入式 PDA 中的计算器过于简单,不能实现进制的转换以及其他一些 复杂的三角函数运算,为了实现这些功能,我们进行了嵌入式计算机的代码编 写。 2.3 软件结构软件结构 3 程序描述程序描述 3.1 功能功能 进制之间的转换(十进制、二进制、八进制、十六进制) 各个进制的加减乘除的运算 数字的乘方 三角函数的运算 逻辑运算 数字的储存功能以及显示 3.2 性能性能 该计算器性能要求: 输入精度:可以是小数(不要超过显示的范围) ,整数,任意进制的数字 输

4、出:根据输入和所要进行的运算产生结果 3.3 输入项目输入项目 计算器键盘上的任意键都可以作为输入,但是有一定的格式,必须符合计 算格式,例如:2+3 的输入, sin /3 的输入先输入,然后/,再输入 3 得出 结果再进行 sin 运算。 3.4 输出项目输出项目 根据你的输入可以在计算器的显示框中得到输出的结果。 3.5 算法算法 1) 对数字进行运算的函数OnNum(int i) void CCalculatorDlg:OnNum(int i) ScreenLen = Screen.GetWindowTextLength(); Screen.GetWindowText(ScreenTe

5、xt1); if (Flag = 1) / 有操作符按下有操作符按下 if (Fpoint = 1) / 输输入的入的数数含有小含有小数数点点 ScreenNum += i * pow(10,Get_Char(ScreenText1,.) - ScreenLen); ScreenText1 = ScreenText1 + char(48 + i); else Flag = 0; ScreenNum = i; ScreenText1 = ; char chtmp = 48 + i; ScreenText1 = ScreenText1 + chtmp; ScreenText1 = ScreenTe

6、xt1 + .; else if (Fpoint = 1) / 输输入的入的数数含有小含有小数数点点 ScreenNum += i * pow(10,Get_Char(ScreenText1,.) - ScreenLen); ScreenText1 = ScreenText1 + char(48 + i); else / 无小无小数数点,点,连续输连续输入入 if (ScreenNum != 0) ScreenText1.SetAt(ScreenLen-1, 48 + i); ScreenText1 = ScreenText1 + .; else ScreenText1.SetAt(1, 48

7、 + i); switch (FNum) case FNUM16: ScreenNum = ScreenNum * 16 + i; break; case FNUM10: ScreenNum = ScreenNum * 10 + i; break; case FNUM8: ScreenNum = ScreenNum * 8 + i; break; case FNUM2: ScreenNum = ScreenNum * 2 + i; break; default: break; Screen.SetWindowText(ScreenText1); 2) 对十六进制的字母进行运算的函数OnLett

8、er(int i) void CCalculatorDlg:OnLetter(int i) ScreenLen=Screen.GetWindowTextLength(); Screen.GetWindowText(ScreenText1);/(unsigned short*)ScreenText,ScreenLen+1); if(Flag) Flag = 0; ScreenNum= 10 + i; ScreenText1 = ; char chtmp = 65 + i; ScreenText1 = ScreenText1 + chtmp; ScreenText1 = ScreenText1 +

9、 .; else if (ScreenLen 30) if (ScreenNum) ScreenText1.SetAt(ScreenLen-1, 65 + i); ScreenText1 = ScreenText1 + .; else ScreenText1.SetAt(1, 65 + i); ScreenNum = ScreenNum * 16 + 10 + i; Screen.SetWindowText(ScreenText1);/ Screen.SetWindowText(out); 3) 其他函数的实现 Get_Char(const char *str,char ch) NumToSt

10、ring(double num,char str) 等函数都在类 CCalculatorDlg 中 4)自定义的数据类型 char ScreenText40; / 保存屏幕中显示的结果以输出 char ScreenCopy40; / 复制一份屏幕中显示的结果,用 于复制和粘贴的操作 int ScreenLen; / 屏幕中显示字符串的长度 int Sign; / 记录操作符的种类,如+,-,*,/等。 int Fpoint; / 记录小数点的状态 ,1 为有小数点,0 为无. int FNum; / 记录当前数制状态 int Flag; / 记录操作符是否按下,按下为 1,反之为 0; int

11、 Ffe; / 记录 FE 状态,科学计数时为 1,反之为 0; CFont Font; / 定义计算器屏幕显示结果的字体 double ScreenNum; / 屏幕中显示的数字的十进制 double NumCopy;/ 复制一份屏幕中显示的结果的数据, 用于复制和粘贴的操作 double Screen_Num; / 按下操作符后,保存以前输入的 那个数据 double MADD_Num; / 用来保存 M+操作的数 3.6 程序逻辑程序逻辑 1)运算的优先级 3.7 存储分配存储分配 输入的数字以及运算符号还有输出的结果都存在内存中 3.8 限制条件限制条件 无限制条件 3.9 测试计划测试计划 1)按键测试 测试 0-9 键的显示 ,显示成功 2)简单计算测试 1+2 结果 3 3*5 结果 15 56-4 结果 52 6/2 结果 3 3)三角函数等科学计算 测试 sin Pi/6 结果 0.5 4)进制转换测试 5)存储测试 3.10 尚未解决的问题尚未解决的问题 没有尚未解决的问题 审批记录表审批记录表 序号序号版本版本评审日期评审日期评审人评审人评审意见评审意见 1 2 3 4 5 批准人意见: 批准人: 批准日期:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号