




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式计算器嵌入式计算器 详细设计说明书详细设计说明书 保密级别:机密 修改记录表修改记录表 序号序号版本版本修改日期修改日期修改内容描述修改内容描述修改人修改人 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 3.10 尚未解决的问题.12 详细设计说明书详细设计说明书 1 引言引言 1.1 编写目的编写目的 随着科学技术的发展,嵌入式系统也跟着发展起来,生活中对嵌入式的要 求也更加高了,计算也充斥着生活的每个角落,应嵌入式老师的要求,我们编 写了嵌入式计算器,该计算器属于科学计算器,适用于数字的计算。 1.2 背景背景 该项目由嵌入式系统老师施青松布置委托,由我们小组 4 名成员合作完成 (夏宇、李振中、乔彬、张默) 。 1.3 定义定义 嵌入式:Embedded 计算器:Calculate 个人数字助理:PDA (personal digital assistant) 1.4 参考资料参考资料 嵌入式系统开发原理与实践 陈文智 EVC 面向对象编程 Visual C+面向对象编程 2 总体设计总体设计 2.1 需求概述需求概述 由于嵌入式 PDA 中的计算器过于简单,不能实现进制的转换以及其他一些 复杂的三角函数运算,为了实现这些功能,我们进行了嵌入式计算机的代码编 写。 2.3 软件结构软件结构 3 程序描述程序描述 3.1 功能功能 进制之间的转换(十进制、二进制、八进制、十六进制) 各个进制的加减乘除的运算 数字的乘方 三角函数的运算 逻辑运算 数字的储存功能以及显示 3.2 性能性能 该计算器性能要求: 输入精度:可以是小数(不要超过显示的范围) ,整数,任意进制的数字 输出:根据输入和所要进行的运算产生结果 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(ScreenText1); 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 = ScreenText1 + .; 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 + 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) 对十六进制的字母进行运算的函数OnLetter(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 + .; 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) NumToString(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 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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招商流程规划手册
- 中国邮政2025淄博市秋招金融业务类岗位高频笔试题库含答案
- 2025年铂纳米颗粒行业研究报告及未来行业发展趋势预测
- 江门市烟草公司2025秋招党建文秘岗位高频笔试题库含答案
- 考研英语阅读长难句分析与翻译
- 航空航天设备2025年故障排查与解决方案报告
- 工作总结:专注责任取得成就
- 咸阳秦都区中烟工业2025秋招车间管理岗位高频笔试题库含答案
- 中国邮政集团2025威海市秋招笔试性格测试题专练及答案
- 心理问题解决方案制度实施报告总结制定设计研究
- 2025年脚手架租赁合同3篇
- 2025年下半年安徽省港航集团有限公司所属企业社会公开招聘22名考试参考试题及答案解析
- 2025年度企事业单位办公家具采购合同
- 2025福建厦门市公安局同安分局招聘警务辅助人员50人笔试备考试题及答案解析
- 巴彦淖尔教师招考试题及答案
- 2025年四川省建筑安全员A证模拟试题(及答案)
- 2025国家统计局济宁调查队城镇公益性岗位招聘3人备考题库及答案解析
- GB/T 5463.3-2025非金属矿产品词汇第3部分:石膏
- 2025至2030中国漂白粉行业发展研究与产业战略规划分析评估报告
- 农药包装废弃物培训课件
- 无人机检测与维护课件
评论
0/150
提交评论