- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
答辩记录
开始时间
结束时间
考题:
答辩结果:
主要特点或功能
1十进制复合运算、连续运算
2 退格,清屏、重启
3 触屏、键盘混合操作
4 综合考虑了各种非正常输入报错并重启
2011年 6 月
PAGE 5
设计要求:
LCD的第一行显示运算式,第二行显示运算结果。比如要计算机12+34,在键盘上按下相应键后,LCD的第一行显示“12+34”,按下“=”号后,LCD的第二行显示“=46”。其他功能参考普通计算器。
扩展功能:负数、小数运算、复合运算。连续运算、2进制、8进制运算。
亦可直接在LCD上显示一个计算器,用触摸屏操作。
设计思路
在LCD上显示一个与键盘功能相同的计算器,可实现用键盘、触摸屏混合操作。
1、在LCD显示屏上按下某一个符号或者在键盘上某一个按键符号时,将相应字符存入数组中并显示在LCD上。
2 按下“=”就运算处理并在第二行显示计算结果。
3、按??“C”就进行退格操作。
4、按下“=”后显示结果,并且能连续运算,其中,将操作数和操作码全部显示在第一行,第二行显示当前计算结果。
5、当出现连续按两个操作符、按等号前一个字符为操作符、最开始按下的不是操作数等非法输入时,自动在LCD屏幕上报错并实现清屏重启计算器。
设计步骤
添加基本计算器的+、-、*、/ 四则运算和退格功能;
在1的基础上实现复合运算和连续操作;
在LCD上通过调用函数在下方画出计算器的按键图画并实现与键盘同等的功能;
4、综合调试并进行优化。
程序流程(含流程图及详细步骤解释)
初始化
否
有按键?
否
输入表达式
是
清屏重启
是
退格操作
非法输入
计算结果显示
连续运算?
清屏完成运算
否
是
是
退格键?
“=”?
LCD显示计算器
是
是
否
详细步骤解释
程序运行时即进行初始化,在LCD显示屏上显示计算器界面。接着判断是否有键盘按键按下或者有触屏,没有就继续扫描判断,有则将按下的键所对应的字符存入数组savedata。在此之中,也在判断键入的字符是否是退格键,如果是则将上一个字符清除掉。当检测到字符“=”时,将savedata数组中所存储的字符分离,其中,数值存在操作数数组op1中,操作符存在操作符数组op2中,然后进行运算。运算开始时,先扫描op2数组,当检测到操作符则将op1数组中对应操作符前后的两个操作数进行运算(先乘除后加减),结果放在两个操作数的前一个的位置,将op1和op2数组向前移动一个位置以覆盖已经运算过的操作数和操作符。当继续进行连续运算时,将字符继续存到savedata数组后面,否则清除op1的值,将字符存到savedata数组第一个开始的位置。
程序中考虑了各种非法输入的情况:当连续输入两个操作符时、当按“=”时检测到前一个字符是操作符时、当程序第一个字符不是操作数时,都报错,自动清屏并重启计算器。
按照实际中计算器的原则,当按下“=”后,退格键不能清除,比如1+2=3;不能将“2”、“+”、“1”退格。如果是连续运算,继续按下“-3+8/2”时,退格键有效,能清“-3+8/2”中的字符。清除后继续连续运算。
操作步骤及方法
下载完程序后:
1、普通计算:例如计算123+456,直接在显示屏上连续触发“123+456”,然后触“=” 就可以在第二行显示=579;
2、连续运算。例如先计算123+456,结果为579,此时再按下“+” “1” 先在第一行显示123+456+1,在第二行就会显示=580,再按下“-” “9” ,第一行显示123+456+1-9,在第二行就会显示=571,依次类推。
3、当输入的字符是非法输入时,在LCD第三行显示 illeagle enter!然后自动清屏重启计算器。
设计过程遇到的问题、原因及解决方法
日期时间问题和难点描述问题的原因及解决思路和方法2011-6-15 显示不了负的结果。难点在于要先对负值进行处理原因:没有判断最综计算的结果是否出现负值。解决方法:先判读结果的正负,将‘-’或‘0’存入结果数组最后一个位置,如果是负值则将负值取反,然后在将结果从结果数组第一个位置开始存入结果的各个位的,再把结果数组在LCD上逐个显示出来2011-6-16计算结果要显示在屏幕上时数值前总是有0
原因:问题在1的原因上,正负号放在数组最后一个位置,计算结果的各个位放数组的第一个开始的位置,数组中间肯定会有位置是默认存入0的。解决方法:重写显示函数ili9320_Text(),在将结果数组的内容输出到LCD上时,判读数值前是否为0,是则跳过不显示。2011-6-17计算结果如果 等于零,那总是显示不出来,其他计算结果正确.原因:问题在2的原因上,当结果为正时,我默认符合是0(就算我将正号标志符改成空格或其他也是一样),如果结果为0
文档评论(0)