MATLAB 计算器的设计.docx

上传人:b****1 文档编号:274038 上传时间:2023-04-28 格式:DOCX 页数:33 大小:161.89KB
下载 相关 举报
MATLAB 计算器的设计.docx_第1页
第1页 / 共33页
MATLAB 计算器的设计.docx_第2页
第2页 / 共33页
MATLAB 计算器的设计.docx_第3页
第3页 / 共33页
MATLAB 计算器的设计.docx_第4页
第4页 / 共33页
MATLAB 计算器的设计.docx_第5页
第5页 / 共33页
MATLAB 计算器的设计.docx_第6页
第6页 / 共33页
MATLAB 计算器的设计.docx_第7页
第7页 / 共33页
MATLAB 计算器的设计.docx_第8页
第8页 / 共33页
MATLAB 计算器的设计.docx_第9页
第9页 / 共33页
MATLAB 计算器的设计.docx_第10页
第10页 / 共33页
MATLAB 计算器的设计.docx_第11页
第11页 / 共33页
MATLAB 计算器的设计.docx_第12页
第12页 / 共33页
MATLAB 计算器的设计.docx_第13页
第13页 / 共33页
MATLAB 计算器的设计.docx_第14页
第14页 / 共33页
MATLAB 计算器的设计.docx_第15页
第15页 / 共33页
MATLAB 计算器的设计.docx_第16页
第16页 / 共33页
MATLAB 计算器的设计.docx_第17页
第17页 / 共33页
MATLAB 计算器的设计.docx_第18页
第18页 / 共33页
MATLAB 计算器的设计.docx_第19页
第19页 / 共33页
MATLAB 计算器的设计.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MATLAB 计算器的设计.docx

《MATLAB 计算器的设计.docx》由会员分享,可在线阅读,更多相关《MATLAB 计算器的设计.docx(33页珍藏版)》请在冰点文库上搜索。

MATLAB 计算器的设计.docx

MATLAB计算器的设计

华东交通大学

课程设计报告

 

课程:

《MATLAB》

年级:

2014级

专业:

通信工程

班级:

卓越班

学号:

**************

******

******

2.1设计思路...............................................2

2.2设计功能模块...........................................3

3.1运行结果.........................................9

3.2结果分析...............................................10

附录(源程序代码)..........................................12

第1章课程设计概要

1.1设计介绍

本课程设计是利用MATLAB的GUI用户界面所设计的普通计算器。

该计算器具有以下功能:

1、具有友好的用户图形界面,实现十进制数的加、减、乘、除等简单计算。

2、实现部分科学计算函数功能,如求正弦、余弦、平方根等。

3、能实现小数运算。

4、有清除键,能进行清除操作。

1.2基本功能要求

利用matlab强大的数值计算功能,便捷的GUI设计功能,实现一个图形用户界面的计算器程序。

 

第2章课题设计内容与步骤

2.1设计内容

该课程设计的计算器界面如图所示

利用MATLABGUI设计实现一个图形用户界面的计算器程序,可以实现:

A.具有友好的用户图形界面。

实现十进制数的加、减、乘、除、乘方、取模等简单计算。

B.科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。

C.能够保存上次历史计算的答案,先是答案存储器中得内容。

D.有清除键,能清除操作,并对不正确的表达式能指出其错误原因。

E.进行二进制数转十进制数及十进制数转二进制数。

F.直接退出。

 

2.2设计步骤

2.2.1打开GUI界面

输入Guide 回车或者在工具栏上点击图标

打开Guide 窗口:

2.2.2添加按钮

2.2.3根据按钮的作用及视觉效果做一定的修改

双击按钮(Puch Button)进入按键属性修改显示字符串大小、字体和颜色,然后对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。

2.2.4保存、对按钮添加算法

各模块算法如下:

A.数字键设计:

按键“0”:

通过get函数获得输入的字符,函数strcat获得字符'0',并用set函数进行显示输出 

textString=get(handles.edit1,'String'); 

if(strcmp(textString,'0')==1) 

   set(handles.edit1,'String','0')  

else 

textString=strcat(textString,'0'); 

set(handles.edit1,'String',textString) 

end

其他数字按键同上.

B.四则运算函数:

按键“+”:

通过get函数获得输入的字符,函数strcat获得字符'+',并用set函数进行显示输出 

textString=get(handles.edit1,'String'); 

ss=char(textString);

l=length(textString); 

if(ss(l)=='+'||ss(l)=='-'||ss(l)=='*'||ss(l)=='/'||ss(l)=='.')     textString=ss(1:

l-1); 

end 

textString=strcat(textString,'+');

set(handles.edit1,'String',textString)

按键“-”:

通过get函数获得输入的字符,函数strcat获得字符'-',并用set函数进行显示输出 

textString=get(handles.edit1,'String');

ss=char(textString); l=length(textString); 

if(ss(l)=='+'||ss(l)=='-'||ss(l)=='*'||ss(l)=='/'||ss(l)=='.')     textString=ss(1:

l-1);

end 

textString=strcat(textString,'-'); 

set(handles.edit1,'String',textString)

按键“*”:

通过get函数获得输入的字符,函数strcat获得字符'*',并用set函数进行显示输出 

textString=get(handles.edit1,'String'); 

ss=char(textString); 

l=length(textString); 

if(ss(l)=='+'||ss(l)=='-'||ss(l)=='*'||ss(l)=='/'||ss(l)=='.')     textString=ss(1:

l-1); 

end 

textString=strcat(textString,'*'); 

set(handles.edit1,'String',textString)

按键“/”:

通过get函数获得输入的字符,函数strcat获得字符'/',并用set函数进行显示输出 

textString=get(handles.edit1,'String'); 

ss=char(textString); l=length(textString); 

if(ss(l)=='+'||ss(l)=='-'||ss(l)=='*'||ss(l)=='/'||ss(l)=='.')     textString=ss(1:

l-1); 

end 

textString=strcat(textString,'/'); 

set(handles.edit1,'String',textString)

按键“.”:

通过get函数获得输入的字符,函数strcat获得字符'.',并用set函数进行显示输出 

textString=get(handles.edit1,'String'); 

ss=char(textString); l=length(textString); 

if(ss(l)=='+'||ss(l)=='-'||ss(l)=='*'||ss(l)=='/'||ss(l)=='.')     textString=ss(1:

l-1); 

end 

textString=strcat(textString,'.'); 

set(handles.edit1,'String',textString)

按键“+/-”:

通过get函数获得输入的字符,函数strcat获得字符'+/-',并用set函数进行显示输出 

if(strcmp(textString,'0')==1) 

   set(handles.edit1,'String','0')  

else 

a=strread(textString,'%f'); 

a=0-a; 

set(handles.edit1,'String',a) 

end 

C.科学计算函数:

按键“sin”:

通过get函数获得输入的字符,函数strread获得输入字符,并用sin函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

a=strread(textString,'%f'); 

a=sin(a); 

set(handles.edit1,'String',a)

按键“cos”:

通过get函数获得输入的字符,函数strread获得输入字符,并用cos函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

a=strread(textString,'%f'); 

a=cos(a); 

set(handles.edit1,'String',a)

按键“tan”:

通过get函数获得输入的字符,函数strread获得输入字符,并用tan函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

if((strcmp(textString,'1.57')==1)||(strcmp(textString,'-1.57')==1))    set(handles.edit1,'String','inf'); else 

a=strread(textString,'%f'); 

a=tan(a); 

set(handles.edit1,'String',a) 

end

按键“cot” :

通过get函数获得输入的字符,函数strread获得输入字符,并用cot函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

if((strcmp(textString,'3.14')==1)||(strcmp(textString,'0')==1)

||(strcmp(textString,'-3.14')==1));    

set(handles.edit1,'String','inf'); 

else 

a=strread(textString,'%f');

a=cot(a); 

set(handles.edit1,'String',a) 

end

按键“arcsin”:

通过get函数获得输入的字符,函数strread获得输入字符,并用arcsin函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

a=strread(textString,'%f'); 

a=arcsin(a); 

set(handles.edit1,'String',a)

按键“arccos”:

通过get函数获得输入的字符,函数strread获得输入字符,并用arccos函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

a=strread(textString,'%f');

a=arccos(a); 

set(handles.edit1,'String',a)

按键“arctan”:

通过get函数获得输入的字符,函数strread获得输入字符,并用arctan函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

a=strread(textString,'%f'); 

a=arctan(a); 

set(handles.edit1,'String',a)

按键“arccot”:

通过get函数获得输入的字符,函数strread获得输入字符,并用arccot函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

a=strread(textString,'%f');

a=arccot(a); 

set(handles.edit1,'String',a)

按键“log2”:

通过get函数获得输入的字符,函数strread获得输入字符,并用log2函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

if(strcmp(textString,'0')==1) 

   set(handles.edit1,'String','error') 

else 

a=strread(textString,'%f');

a=log2(a); 

set(handles.edit1,'String',a) 

end

按键“log10”:

通过get函数获得输入的字符,函数strread获得输入字符,并用log10函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String');

if(strcmp(textString,'0')==1) 

   set(handles.edit1,'String','error')  

else 

a=strread(textString,'%f'); 

a=sin(a); 

set(handles.edit1,'String',a) 

end

按键“x^2”:

通过get函数获得输入的字符,函数strread获得输入字符,并用语句a=a*a计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

a=strread(textString,'%f'); 

a=a*a; 

set(handles.edit1,'String',a)

按键“sqrt”:

通过get函数获得输入的字符,函数strread获得输入字符,并用sqrt函数计算结果,set函数进行显示输出textString=get(handles.edit1,'String'); 

if(strcmp(textString,'0')==1) 

   set(handles.edit1,'String','0')  

else 

a=strread(textString,'%f'); 

a=sqrt(a); 

set(handles.edit1,'String',a) 

end

D.”DEL”键:

通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实

现退格:

 

textString=get(handles.edit1,'String');

if(strcmp(textString,'0')==1)&(jj==0)    

set(handles.edit1,'String','0')  

else 

ss=char(textString);     

l=length(textString);     

textString=ss(1:

l-1); 

set(handles.edit1,'String',textString)

E.清屏“C”键函数:

将所有的字符置为'0' 

set(handles.edit1,'String','0')

F.“=”的实现:

通过get函数获得输入的字符,并用eval函数计算结果,set

函数进行显示输出 

a=get(handles.edit1,'string') 

b=eval(a) 

set(handles.edit1,'string',num2str(b))

 

第3章运行结果及分析

3.1运行结果

A. 数字键:

B.四则运算函数:

 

C. 科学计算函数:

Sin1的计算结果= 

3.2结果分析

计算(1+9)/5

计算结果=2

arcsin1的计算结果

log2的报错:

通过输入的数据与‘0’字符比较,若两者相等,则显示“error”进行报错,结果如下:

经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。

第4章心得体会

本次课程设计用MATLAB的GUI接口设计一个简单的计算器,主要对数字及运算“0-9、+、-、×、÷、.、= 、x^2 、sqrt、sin、arcsin、log2”等的代码程序的了解,在设计的过程中也遇到不少的问题,通过和同学的讨论,和老师的交流,让我知道了自己的错误和不足,最终顺利地解决了这些问题。

这次课程设计,使我进一步加深了对课本知识的了解和掌握,巩固了所学的基本知识,更加体会到了MATLAB功能的丰富,更加深刻的认识了MATLAB,熟练了编程设计。

 

其中对计算器按键的颜色、大小和排版,使我的思维更加的缜密,让我在以后的工作生活中,得到了思维的锻炼。

在以后学习中,我会更加刻苦,以锻炼自己的能力。

参考文献

【1】刘卫国.MATLAB程序设计与应用[M].北京:

高等教育出版 

【2】郑阿奇.MATLAB实用教程[M].北京:

电子工业出版社 

【3】罗华飞.MATLAB GUI设计学习手记[M].北京:

北京航空航天大学出版社  

【4】张威.MATLAB基础与编程入门[M].西安:

西安电子科技大学出版社 

【5】孙屹.MATLAB通信仿真开发手册[M].北京:

国防工业出版社

 

附录

functionvarargout=untitled1(varargin)

%UNTITLED1MATLABcodeforuntitled1.fig

%UNTITLED1,byitself,createsanewUNTITLED1orraisestheexisting

%singleton*.

%

%H=UNTITLED1returnsthehandletoanewUNTITLED1orthehandleto

%theexistingsingleton*.

%

%UNTITLED1('CALLBACK',hObject,eventData,handles,...)callsthelocal

%functionnamedCALLBACKinUNTITLED1.Mwiththegiveninputarguments.

%

%UNTITLED1('Property','Value',...)createsanewUNTITLED1orraisesthe

%existingsingleton*.Startingfromtheleft,propertyvaluepairsare

%appliedtotheGUIbeforeuntitled1_OpeningFcngetscalled.An

%unrecognizedpropertynameorinvalidvaluemakespropertyapplication

%stop.Allinputsarepassedtountitled1_OpeningFcnviavarargin.

%

%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone

%instancetorun(singleton)".

%

%Seealso:

GUIDE,GUIDATA,GUIHANDLES

%Edittheabovetexttomodifytheresponsetohelpuntitled1

%LastModifiedbyGUIDEv2.528-Dec-201515:

21:

34

%Begininitializationcode-DONOTEDIT

gui_Singleton=1;

gui_State=struct('gui_Name',mfilename,...

'gui_Singleton',gui_Singleton,...

'gui_OpeningFcn',@untitled1_OpeningFcn,...

'gui_OutputFcn',@untitled1_OutputFcn,...

'gui_LayoutFcn',[],...

'gui_Callback',[]);

ifnargin&&ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

});

end

%Endinitializationcode-DONOTEDIT

%---Executesjustbeforeuntitled1ismadevisible.

functionuntitled1_OpeningFcn(hObject,eventdata,handles,varargin)

%Thisfunctionhasnooutputargs,seeOutputFcn.

%hObjecthandletofigure

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%varargincommandlineargumentstountitled1(seeVARARGIN)

%Choosedefaultcommandlineoutputforuntitled1

handles.output=hObject;

%Updatehandlesstructure

guidata(hObject,handles);

%UIWAITmakesuntitled1waitforuserresponse(seeUIRESUME)

%uiwait(handles.figure1);

%---Outputsfromthisfunctionarereturnedtothecommandline.

functionvarargout=untitled1_OutputFcn(hObject,eventdata,handles)

%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);

%hObjecthandletofigure

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%Getdefaultcommandlineoutputfromhandlesstructure

varargout{1}=handles.output;

functionedit1_Callback(hObject,eventdata,handles)

%hObjecthandletoedit1(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesand

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2