




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录计算器的效果图2第一章 GUI设计界面31.1打开GUI31.2.添加按钮31.3.根据按钮的作用及视觉效果做一定的修改41.4.保存、添加功能函数41.4.1 数字键编写41.4.2 符号键的编写41.4.3 运算符“=”的编写51.4.4 按键“back”的编写51.4.5 按键“清空”的编写51.4.6 按键“退出”的编写51.4.7 按键“二进制数转十进制数”的编写51.4.8 按键“十进制数转二进制数”的编写5第二章 计算器的使用62.1 除法运算()62.2 平方运算(2)62.3 函数cos (/3) 的计算72.4 函数arctan (/3) 的计算72.5 以2为底的对数(log 2)的计算82.6 十进制数转二进制数的计算82.7 二进制数转十进制数的计算9第三章 各按键的程序源代码10第四章 问题和解决方法15第五章 心得体会16参考文献17计算器的效果图:第一章 GUI设计界面:1.1打开GUI输入Guide 回车或者在工具栏上点击图标打开Guide 窗口:图 11.2.添加按钮图 21.3.根据按钮的作用及视觉效果做一定的修改双击按钮(Puch Button)进入按键属性修改显示字符串大小、字体和颜色,然后对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。1.4.保存、添加功能函数 把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。以下是相应按钮的功能函数。1.4.1 数字键编写在function pushbutton1_Callback(hObject, eventdata, handles)下输入:textString = get(handles.text1,String);textString =strcat(textString,0);set(handles.text1,String,textString)这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的内容,并存储数个“0”,然后由set(handles.text1,String,textString在text1中输出。同理,分别在function pushbutton210_Callback(hObject, eventdata, handles)下给19数字按键下编写此类程序。1.4.2 符号键的编写function pushbutton12_Callback(hObject, eventdata, handles)textString = get(handles.text1,String);textString =strcat(textString,);set(handles.text1,String,textString)strcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString后添加“”进行运算。然后执行set(handles.text1,String,textString)。符号键-、*、/与的运算函数类似。“平方运算”,主要是由“2”功能实现。1.4.3 运算符“=”的编写textString = get(handles.text1,String);ans =eval(textString);“eval”的作用是将符号表达式转换成数值表达式。再由set(handles.text1,String,ans)输出。1.4.4 按键“back”的编写textString=get(handles.text1, String)w=length(textString)t=char(textString)textString=t(1:w-1) %将w个字符串转成w-1个,即删除了末位字符set(handles.text1,String,textString)1.4.5 按键“清空”的编写set(handles.text1,String,)1.4.6 按键“退出”的编写close(gcf);1.4.7 按键“二进制数转十进制数”的编写 textString=get(handles.text1,String)e = bin2dec(textString); set(handles.text1,String,e);1.4.8 按键“十进制数转二进制数”的编写 textString = get(handles.text1,String);textString = strcat(textString,dec2bin();set(handles.text1,String,textString)第二章 计算器的使用2.1 除法运算() 18 / 18图 3图 42.2 平方运算(2)图 5图 62.3 函数cos (/3) 的计算 图 7图 82.4 函数arctan (/3) 的计算 图 9图 102.5 以2为底的对数(log 2)的计算图 11 图 122.6 十进制数转二进制数的计算(调用dec2bin函数)图 13图 142.7 二进制数转十进制数的计算(调用bin2dec函数)图 15 图 16经过计算,这些结果均与实际结果相吻合,计算器的功能实现的完好且能实现较大数值的运算,计算结果用科学技术法表示。第三章 各按键的程序源代码按键“0-9、+、-、.、= 、x2 ”(通过get函数获得输入的字符,函数strcat 获得相应字符,并用set函数进行显示输出):function pushbutton1_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,0)set(handles.text1,String,textString)function pushbutton2_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,1)set(handles.text1,String,textString)function pushbutton3_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,2)set(handles.text1,String,textString)function pushbutton4_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,3)set(handles.text1,String,textString)function pushbutton5_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,4)set(handles.text1,String,textString)function pushbutton6_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,5)set(handles.text1,String,textString)function pushbutton7_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,6)set(handles.text1,String,textString)function pushbutton8_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,7)set(handles.text1,String,textString)function pushbutton9_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,8)set(handles.text1,String,textString)function pushbutton10_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,9)set(handles.text1,String,textString)function pushbutton11_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,+)set(handles.text1,String,textString)function pushbutton12_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,-)set(handles.text1,String,textString)function pushbutton13_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,*)set(handles.text1,String,textString)function pushbutton14_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,/)set(handles.text1,String,textString)function pushbutton15_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,.)set(handles.text1,String,textString)按键“=” :function pushbutton16_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)s=eval(textString)set(handles.text1,String,s)按键“x2” : function pushbutton17_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,2)set(handles.text1,String,textString)退位键“back”:function pushbutton18_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)w=length(textString)t=char(textString)textString=t(1:w-1)set(handles.text1,String,textString)清空键:function pushbutton19_Callback(hObject, eventdata, handles)set(handles.text1,String,)退出键:function pushbutton20_Callback(hObject, eventdata, handles)close(gcf);% hObject handle to pushbutton20 (see GCBO)% handles structure with handles and user data (see GUIDATA)科学计算函数:按键“”:通过get函数获得输入的字符,函数strread获得输入字符,并用sqrt函数计算结果,set函数进行显示输出textString = get(handles.text1,String);if(strcmp(textString,0)=1) set(handles.text1,String,0) ;elsea = strread(textString, %f);a=sqrt(a);set(handles.text1,String,a)end按键“sin” (通过get函数获得输入的字符,函数strread获得输入字符,并用sin函数计算结果,set函数进行显示输出):textString = get(handles.text1,String);textString = strcat(textString,sin();set(handles.text1,String,textString)按键“cos” :textString = get(handles.text1,String);textString = strcat(textString,();set(handles.text1,String,textString)按键“tan” : textString = get(handles.text1,String);if(strcmp(textString,1.57)=1)|(strcmp(textString,-1.57)=1) set(handles.edit1,String,inf);elsetextString = strcat(textString,tan();set(handles.text1,String,textString)end按键“arcsin” : textString = get(handles.text1,String);textString = strcat(textString,asin();set(handles.text1,String,textString)按键“arccos” : textString = get(handles.text1,String);textString = strcat(textString,acos();set(handles.text1,String,textString)按键“arctan” : textString = get(handles.text1,String);textString = strcat(textString,atan();set(handles.text1,String,textString)按键“log2” : textString = get(handles.text1,String);if(strcmp(textString,0)=1) set(handles.text1,String,error) ;elsea = strread(textString, %f);a=log2(a);set(handles.text1,String,a)end按键“(” : textString = get(handles.text1,String);textString = strcat(textString, ();set(handles.text1,String,textString)按键“)” : textString = get(handles.text1,String);textString = strcat(textString,);set(handles.text1,String,textString)按键“二进制数转十进制数” :textString=get(handles.text1,String)e = bin2dec(textString); set(handles.text1,String,e);按键“十进制数转二进制数” :textString = get(handles.text1,String);textString = strcat(textString,dec2bin();set(handles.text1,String,textString)第四章 问题和解决方法41.本次课程设计中开始时遇到的问题是数据进行清零后,再输入其他的数据,清零后的字符0仍会保留,会影响其他数据,解决办法是将数据用空格替换掉就实现了清空: set(handles.text1,String,)42.在定义正弦余弦等函数的时候,需要注意其定义域,值域的问题。43开始时我的“sin” 函数编程如下:textString = get(handles.text1,String);a =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025公务员重庆面试题及答案
- 个性化定制型个人门面租赁合同
- 全球科研资源整合模式-洞察及研究
- 护士面试题目及答案专业
- 专业写作面试题及答案
- 科协年度工作总结报告
- 2025至2030推土机行业市场发展分析及区域市场与投资报告
- 偏头痛的护理查房
- 2025年智能可穿戴设备跌倒检测技术在老年人生活照料中的技术创新
- 离婚子女房产权益保护与监护抚养责任合同
- 秋分故昼夜均而寒暑平
- 人教版(2024)七年级英语上册Starter Unit 2 Section A (2a~2e) 课件
- 数字图像处理教案
- 初一信息技术-七年级全册-科学出版社-课件
- 民办非企业单位年度调查报告书
- GJB9001C质量保证大纲
- 挑战64 新疆卷(新疆近四年共30题)(解析版)-2022年中考物理真题《压轴挑战》分类汇编
- 消化道出血护理新进展
- 【浅析机械自动化技术的发展现状及发展趋势8900字(论文)】
- 新材料引领创新创造的新驱动器
- 蛋白质分离纯化及鉴定
评论
0/150
提交评论