嵌入式--计算器--实验报告.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文档。上传文档
查看更多
嵌入式--计算器--实验报告.doc

计算器实验(1)首先构造一个运算符栈,此运算符在栈内遵循越往栈顶优先级越高的原则。   (2)读入一个中缀表示算术表达式(3)从左至右扫描该算术表达式,从第一个字符开始判断,如果该字符是数字,则分析到该数字串的结束并将该数字串直接输出。   (4)如果不是数字,该字符则是运算符,此时需比较优先关系。   : 运算符栈顶将该字符与运算符栈顶的运算符的优先关系相比较。 该字符优先关系高于运算符栈顶的运算符,则将该运算符入栈。 若该字符优先关系高于运算符栈顶的运算符,则将栈顶的运算符从栈中弹出,直栈顶运算符的优先级低于当前运算符,将该字符入栈。 运算符栈重复上述操作 五、程序实现主要函数功能说明 void Main_Task(void *Id):主任务函数; 功能:创建消息结构; 清除屏幕; 调用创建按钮控件函数; 等待消息; 判断消息; 调用消息处理函数; void myButtonall():创建按钮控件函数 功能:调用相关函数; SetRect(); CreateButton(); DrawButton(b19); 创建按钮; (3)void onKey(unsigned int nkey, int fnkey):键盘消息响应函数 功能:判断按键; 调用相关按键响应函数; (4)void myontouch(int xxx,int yyy):触摸屏消息响应函数 功能:识别触摸区域; 调用响应触摸键响应函数; (5)void str2repol():字符表达式转逆波兰表达式函数 功能:判别首位字符是否为-号,是则将字符串后移一位,首位置0; 判别有无非法字符.有则标志位err=1; 将输入字符串转成逆波兰表达式; (6)void calculate():计算函数 功能:判别标志位err。为1则输出“Syntax Error!!”并退出,否则继续- 判别逆波兰表达式内容; 判别小数点-对数字做相应加权 判别运算符-做相应运算 调用double型转字符串函数; 调用字符串结果显示函数。 (7)char *doub2str(double d, char *str):double型转字符串函数 功能:判别d是否为负数。是则字符串首位置-;d取反,继续- 判别d小数部分是否为零。是则整数转字符串,否则再继续—小数转字符串 将double型数字转换成字符串类型; 存储字符串并返回。 (8)void lcddisplay(char *str,int xx,int yy):字符串显示函数 功能:将字符串str[]显示在LCD的指定坐标(xx,yy)。 void redraw(char key):重画按钮函数 功能:响应相应函数; 重画相应按钮; 延时100ms后恢复原按钮。 char zb2key(int x,int y):坐标转按键函数 功能:将触摸点坐标(x,y)转换成相应按键字符。 void dcr(char key):退格、清屏、读文件函数 功能:响应退格键,屏幕显示去除最后一位字符,当前输入后前一次输入置\0; 响应清屏键,清楚显示区域内容; 响应读文件,调用读文件函数。 void readfile():读文件函数 功能:读取指定目录文本文件; 显示文本内容; 计算内容(表达式)并显示。 void clc():清屏函数 功能:清除显示区域内容。 六、完整【main.c】程序 #include ../ucos-ii/includes.h /* uC/OS interface */ #include ../ucos-ii/add/osaddition.h #include ../ucos-ii/add/ustring.h #include ../inc/drivers.h #includemath.h #include ../inc/sys/lib.h #include ../src/gui/gui.h #include string.h #include stdio.h char TextFilename[]=/sys/ucos/fj/2.txt; //自定义声明 //文件test: 1+2+3+4+5+6+7+8+9= //文件1: 1+2+3+4+5+6+7+8+9= //文件2: 0.7+5*((1+2)

文档评论(0)

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

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

1亿VIP精品文档

相关文档