版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录计算器的效果图2一、GUI设计界面:31.打开GUI32.添加按钮33.根据按钮的作用及视觉效果做一定的修改:44.保存、添加功能函数4(1)数字键编写4(2)符号键的编写4(3)运算符“=”的编写5(4)按键“back”的编写5(5)按键“清空”的编写5(6)按键“退出”的编写5(7)按键“二进制数转十进制数”的编写5(8)按键“十进制数转二进制数”的编写5二、计算器的使用6除法运算(÷)6平方运算(2)6函数cos (/3) 的计算7函数arctan (/3) 的计算7以2为底的对数的计算(log 2)8十进制数转二进制数的计算(调用dec2bin函数)8二进制数转十进制数的
2、计算(调用bin2dec函数)9三、附各按键的程序源代码10四、问题和解决方法15五、心得体会15参考文献15计算器的效果图:一、GUI设计界面:1.打开GUI输入Guide 回车或者在工具栏上点击图标打开Guide 窗口:2.添加按钮3.根据按钮的作用及视觉效果做一定的修改:双击按钮(Puch Button)进入按键属性修改显示字符串大小、字体和颜色,然后对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。4.保存、添加功能函数 把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。以下是相应按钮的功能函数。(1)数字键编写在funct
3、ion 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','textSt
4、ring'在text1中输出。同理,分别在function pushbutton210_Callback(hObject, eventdata, handles)下给19数字按键下编写此类程序。(2)符号键的编写function pushbutton12_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');textString =strcat(textString,'÷');set(handles.text1,'String'
5、,textString)strcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString后添加“÷”进行运算。然后执行set(handles.text1,'String',textString)。符号键-、*、/与÷的运算函数类似。“平方运算”,主要是由“2”功能实现。(3)运算符“=”的编写textString = get(handles.text1,'String');ans =eval(textString);“eval”的作用是将符号表达式转换成数值表达式。再由set(handles.text1,'Stri
6、ng',ans)输出。(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)(5)按键“清空”的编写set(handles.text1,'String','')(6)按键“退出”的编写close(gcf);(7)按键“二进制数转十进制数”的
7、编写 textString=get(handles.text1,'String')e = bin2dec(textString); set(handles.text1,'String',e);(8)按键“十进制数转二进制数”的编写 textString = get(handles.text1,'String');textString = strcat(textString,'dec2bin(');set(handles.text1,'String',textString)二、计算器的使用除法运算(÷) 1
8、6 / 16平方运算(2)函数cos (/3) 的计算 函数arctan (/3) 的计算 以2为底的对数的计算(log 2) 十进制数转二进制数的计算(调用dec2bin函数)二进制数转十进制数的计算(调用bin2dec函数) 经过计算,这些结果均与实际结果相吻合,计算器的功能实现的完好且能实现较大数值的运算,计算结果用科学技术法表示。三、附各按键的程序源代码按键“0-9、+、-、×、÷、.、= 、x2 ”(通过get函数获得输入的字符,函数strcat 获得相应字符,并用set函数进行显示输出):function pushbutton1_Callback(hObject
9、, 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')s
10、et(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)textSt
11、ring=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,'Strin
12、g',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,'
13、;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
14、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=st
15、rcat(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(hOb
16、ject, 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,'*
17、39;)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
18、)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
19、)按键“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,
20、'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(gc
21、f);% 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
22、') ;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',text
23、String)按键“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(han
24、dles.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)按
25、键“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',
26、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,'Str
27、ing');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,'Str
28、ing')e = bin2dec(textString); set(handles.text1,'String',e);按键“十进制数转二进制数” :textString = get(handles.text1,'String');textString = strcat(textString,'dec2bin(');set(handles.text1,'String',textString)四、问题和解决方法1.本次课程设计中开始时遇到的问题是数据进行清零后,再输入其他的数据,清零后的字符0仍会保留,会影响其他数据,解决办法是将数据用空格替换掉就实现了清空: set(handles.text1,'String','')2.在定义正弦余弦等函数的时候,需要注意其定义域,值域的问题。3开始时我的“sin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度茶楼品牌推广及广告投放合同
- 二零二五年度跨国公司员工派遣合同模板:全球人力资源配置服务协议
- 2025年度大型活动策划公司项目负责人聘用合同模板
- 2025年度火锅连锁餐馆区域代理转让合同
- 二零二五年度美甲店门面转让及加盟体系合同
- 2025年度版股东电子购销合同电子发票开具及管理服务合同
- 二零二五年度体育赛事预付款合同
- 2025年度门面转租合同(含押金退还及违约责任)
- 二零二五年度解除文化艺术交流活动合作解除合同
- 二零二五年度炊事员绿色厨房建设与聘用合同
- 2014新PEP小学英语六年级上册-Unit5-What-does-he-do复习课件
- 9.2溶解度(第1课时饱和溶液不饱和溶液)+教学设计-2024-2025学年九年级化学人教版(2024)下册
- 矿山隐蔽致灾普查治理报告
- 副总经理招聘面试题与参考回答(某大型国企)2024年
- PDCA循环提高护士培训率
- 《狮子王》电影赏析
- 河北省保定市定州市2025届高二数学第一学期期末监测试题含解析
- 中医护理人文
- 2024-2030年中国路亚用品市场销售模式与竞争前景分析报告
- 货物运输安全培训课件
- 前端年终述职报告
评论
0/150
提交评论