高级计算器设计与开发.docx

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

C++程序设计设计性实验

C++程序设计设计性实验报告

实验项目名称:高级计算器设计与开发

专业班级: 信息072 ;姓名:范高华;学号200712030213

实验起止日期:起于2009 年12 月14 日止于2009 年12 月27 日实验目的:

学会用C++语言和数据结构知识实现表达式的解析与计算;学会使用动态链接库技术进行编程;学会编辑、编译、运行MFC应用程序的基本过程.学会MFC可视化编程技术。

实验要求:

能处理双精度型数值的加、减、乘、除的表达式计算。

编程中使用了动态连接库技术。

技术文档要求:

按照软件工程技术文档编写要求进行。要求流程图绘制规范,模块功能描述清晰,数据字典齐全。

实验内容:

C++语言的顺序结构,分支结构,循环结构,函数,结构体,指针。

数据结构中的堆栈存贮结构及其操作的实现。

实验具体方案:

按照系统设计要求,用VisualC++设计和开发一个MFC应用程序---高级计算器,提交由需求分析;系统设计说明(包括主菜单、子菜单、模块功能简介、数据字典、系统结构图);系统技术文档(包括系统各模块主要流程图,软件总体测试方案与测试记录、局部测试方案与测试记录、软件调试和修改记录、测试结论、运行情况记录),系统使用说明书,源程序代码为附录构成的实验报告。

需求分析:

普通的功能简单的仅能进行四则运算的计算工具已经不能满足需要,需要一种能进行多种计算工具。而windows自带的计算器不能处理表达式这是一个缺陷,为此开发一个能处理表达式运算的高级计算器是十分必要的,这为计算提高了更大的方便,可以大幅度提高计算效率。

系统设计说明:(包括主菜单、子菜单、模块功能简介、数据字典、系统结构图)

1

高级计算器设计与开发

主菜单主要包含: 操作说明、相关主题、退出。

整个程序的模块组成:

Windows基于对话框的资源文件模块。

动态链接库模块,主要提供了表达式的解析与计算。

其他功能模块如开平方,取平方,进制转换等。

数据字典

m_edit1 //编辑框变量,用于显示输入输出CStringstr1,str2,str3; //中间临时字符串变量

chars[70],s2[70],buffer[20]; //用于CString字符串的转换以及将double型数据转

换为CString型字符串。

stack //结构体类型

ElemType*stack; //存栈元素

Inttop //存栈顶元素的下标位置intMaxSiz //存stack数组长度。voidInitiatestack(StackS) //堆栈的初始化

voidPush(StackS,ElemTypeitem)//进入堆栈

ElemTypePop(StackS) //删除栈顶元素并以函数值返回ElemTypePeek(StackS) //返回当前栈顶元素

intPrecedence(charop) //运算符优先级的判别

intchange(char*str1,char*str2) //将str1的中缀表达式转换为str2中的后缀表达doublecompute(char*str) //计算后缀表达式

double*tranfrom(doublenum,intr) //进制转换的子函数MessageBox(CString) //用于弹出对话框,用于警告非法输入

_T() //用于清空CString字符串

Str,Right(intn) //用于从右截取长为n的字符串并赋给strStrtod(char*,char**) //用于将CString型字符串转化为double型数据

2

C++程序设计设计性实验

计算

控 面

示框

字键

三角函数

进制转换

Delete

系统技术文档(包括系统各模块主要流程图,软件总体测试方案与测试记录、局部测试方案与测试

记录、软件调试和修改记录、测试结论):

进制转换流程图:

用要转换的数字x除以基数

r,所得余数yi并压入栈中

商为零

依次弹出栈中的元素即为转换好的

r进制数。算法结束

把商赋给当前数值x

3

高级计算器设计与开发

中缀表达式转化为后缀表达式算法流程图:

开始

从左到右扫描中缀表达式str1,读取字符

是数或小数点 是 将其写入用于存储后缀表达

式的字符数组str2中

是左括号 是

将其压入运算符栈中,待以它开始的括号表达式结束后出栈

运 否

继续扫描中缀表达式字符串,直

算 到遇见第一个右括号

该运算

文档评论(0)

hao187 + 关注
官方认证
内容提供者

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

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档