《matlabGUI设计(简易科学计算器).docx》由会员分享,可在线阅读,更多相关《matlabGUI设计(简易科学计算器).docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、优质文本MATLAB大作业班级(bnj):姓名:学号:计算器 题目(tm)此题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,文本编辑框edit text,静态文本框Static text,命令按钮push button。然后在通过各个按钮的回调函数,实现简单的计算功能。 1、功能介绍(1)具有友好的用户图形界面。实现十进制数的加、减、乘、除、乘方、开方等简单计算。(2)具有科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。注:三角函数计算的是弧度而不是角度。(3)有去除键,能去除操作。 2、功能实现程序由两个局部组成:MATL
2、AB代码.m文件和GUI图形.fig。程序使用的流程:直接利用图形界面中的按键键入所需数值、运算符等即可得出结果。备注:软件版本:MATLAB 2011b首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及33个命令按钮,调整好各控件大小、颜色,整体布局如下图:附录中有相关属性修改介绍然后(rnhu)通过双击各个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。2.1 各功能界面设计GUI设计界面:注:底部边框用Panel工具添加,有两种设计顺序。1、先加底部边框,再在底部边框上画功能键。2、先画功能键,布好局,画底框,全选功能键拖动到底框上。2.2 各功能模块
3、实现(shxin)可根据需要增减功能键算法设计:1. 数字键设计:09以及小数点函数都一样,只是参数不同:例如:按键1响应:global jjtextString = get(handles.text1,String);if(strcmp(textString,0.)=1)&(jj=0) set(handles.text1,String,1) ;elsetextString =strcat(textString,1);set(handles.text1,String,textString)endjj=0;2. 四那么运算函数:+功能(gngnng)响应:textString = get(han
4、dles.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);textString =strcat(textString,*);set(handles.text1,Str
5、ing,textString)功能响应:textString = get(handles.text1,String);textString =strcat(textString,/);set(handles.text1,String,textString)3. 科学计算函数:例如:sin功能响应:textString = get(handles.text1,String);if(strcmp(textString,0.)=1)set(handles.text1,String,0.) ;elsea = strread(textString, %f);a=sin(a);set(handles.te
6、xt1,String,a)end4. 退格键(DEL):通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:global jjtextString = get(handles.text1,String);if(strcmp(textString,0.)=1)&(jj=0)set(handles.text1,String,0.) ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,String,textString)endjj=0;5. 清屏键函数(hnsh)(AC
7、):set(handles.text1,String,0.) ;2.3 各模块程序添加方法选中一个需添加程序的功能键,右击,View Callbacks,Callback,出现如下列图所示界面。红色框中为所需添加的程序其他功能键添加方法类似。2.4 各模块实现结果1数字键:2四那么(n me)运算函数:3科学计算函数:Cos0的计算结果:arctan2的计算结果:经过计算,这些(zhxi)结果均与实际结果相吻合,计算器的功能实现的较为完好。 3、程序总结:1小数点可以连续输入。解决方法是:用strfind函数查看文本框里有几个小数点,如果已经有一个了,再按小数点就保持不变。2按过运算符号后一个
8、数不等于一个数,比方:输入1,按等号,会出来一个3,经过长时间分析得知,这是由于在按运算符号时,系统记录了文本框里的数但没有清空,才会出现这种问题。解决方法是再申请一个不同于加减乘除的另一个符号,并将按过运算符后记录的数值置0。 4、心得体会:通过本次的MATLAB课程设计,让我对MATLAB尤其是其GUI设计的功能有了进一步的了解,认识到了它功能的强大。在MATLAB简单计算器的设计中,了解了关于MATLAB图形用户界面的局部控件的使用方法;利用MATLAB的GUI提供的很多实用的控件,方便用于设计属于自己的图形界面和自己所需要实现的功能。 5、附录:(1) 功能块属性修改表双击功能块可进入
9、2主要(zhyo)程序function varargout = untitled(varargin)%UNTITLED M- untitled.fig% UNTITLED, by itself, creates a new UNTITLED or raises the existing% singleton*.% H = UNTITLED returns the handle to a new UNTITLED or the handle to% the existing singleton*.% UNTITLED(Property,Value,.) creates a new UNTITLE
10、D using the% given property value pairs. Unrecognized properties are passed via% varargin to untitled_OpeningFcn. This calling syntax produces a% warning when there is an existing singleton*.% UNTITLED(CALLBACK) and UNTITLED(CALLBACK,hObject,.) call the% local function named CALLBACK in UNTITLED.M w
11、ith the given input% arguments.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help untitled % Last Modified by GUIDE v2.5 19-Dec-2013 11:25:45 % Begin initializati
12、on code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, m, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, untitled_OpeningFcn, . gui_OutputFcn, untitled_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if na
13、rgout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before untitled is made visible.function untitled_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see
14、OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin unrecognized PropertyName/PropertyValue pairs from the% command line (see VARARGIN) % Choose default command line output for un
15、titledhandles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes untitled wait for user response (see UIRESUME)% uiwait(handles.figure1);global jj ;set(handles.text1,String,0.);jj=0; % - Outputs from this function are returned to the command line.function varargout
16、 = untitled_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line outpu
17、t from handles structurevarargout1 = handles.output; % - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and
18、user data (see GUIDATA)global jjtextString = get(handles.text1,String); if(strcmp(textString,0.)=1)&(jj=0) set(handles.text1,String,1) ;elsetextString =strcat(textString,1);set(handles.text1,String,textString) endjj=0; % - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject
19、, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global jjtextString = get(handles.text1,String); if(strcmp(textString,0.)=1)&(jj=0) set(handles.text1,String,2)
20、 ;elsetextString =strcat(textString,2);set(handles.text1,String,textString) endjj=0; % - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% han
21、dles structure with handles and user data (see GUIDATA)global jjtextString = get(handles.text1,String); if(strcmp(textString,0.)=1)&(jj=0) set(handles.text1,String,3) ;elsetextString =strcat(textString,3);set(handles.text1,String,textString) endjj=0; % - Executes on button press in pushbutton4.funct
22、ion pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global jjtextString = get(handles.text1,String); if(strcmp(textString,0.)=1)&(j
23、j=0) set(handles.text1,String,4) ;elsetextString =strcat(textString,4);set(handles.text1,String,textString) endjj=0; % - Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in
24、 a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global jjtextString = get(handles.text1,String); if(strcmp(textString,0.)=1)&(jj=0) set(handles.text1,String,5) ;elsetextString =strcat(textString,5);set(handles.text1,String,textString) endjj=0; % - Executes on b
25、utton press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global jjtextString = get(handles.text1,String)
26、; if(strcmp(textString,0.)=1)&(jj=0) set(handles.text1,String,6) ;elsetextString =strcat(textString,6);set(handles.text1,String,textString) endjj=0; % - Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% event
27、data reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global jjtextString = get(handles.text1,String); if(strcmp(textString,0.)=1)&(jj=0) set(handles.text1,String,7) ;elsetextString =strcat(textString,7);set(handles.text1,String,textSt
28、ring) endjj=0; % - Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global jjtextSt
29、ring = get(handles.text1,String); if(strcmp(textString,0.)=1)&(jj=0) set(handles.text1,String,8) ;elsetextString =strcat(textString,8);set(handles.text1,String,textString) endjj=0; % - Executes on button press in pushbutton9.function pushbutton9_Callback(hObject, eventdata, handles)% hObject handle
30、to pushbutton9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global jjtextString = get(handles.text1,String); if(strcmp(textString,0.)=1)&(jj=0) set(handles.text1,String,9) ;elsetextString =strcat(textString,9)
31、;set(handles.text1,String,textString) endjj=0; % - Executes on button press in pushbutton10.function pushbutton10_Callback(hObject, eventdata, handles)% hObject handle to pushbutton10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and use
32、r data (see GUIDATA)global jjtextString = get(handles.text1,String); if(strcmp(textString,0.)=1)&(jj=0) set(handles.text1,String,0) ;elsetextString =strcat(textString,0);set(handles.text1,String,textString) endjj=0; % - Executes on button press in pushbutton12.function pushbutton12_Callback(hObject,
33、 eventdata, handles)% hObject handle to pushbutton12 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global jj textString = get(handles.text1,String);if(strcmp(textString,0.)=1) set(handles.text1,String,0.) ; jj=
34、1;elsetextString =strcat(textString,.);set(handles.text1,String,textString)end % - Executes on button press in pushbutton13.function pushbutton13_Callback(hObject, eventdata, handles)% hObject handle to pushbutton13 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handle
35、s structure with handles and user data (see GUIDATA)textString = get(handles.text1,String);textString =strcat(textString,/);set(handles.text1,String,textString) % - Executes on button press in pushbutton14.function pushbutton14_Callback(hObject, eventdata, handles)% hObject handle to pushbutton14 (s
36、ee GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,String);if(strcmp(textString,0.)=1) set(handles.text1,String,() ;elsetextString =strcat(textString,();set(handles.text1,String,textStri
37、ng)end % - Executes on button press in pushbutton16.function pushbutton16_Callback(hObject, eventdata, handles)% hObject handle to pushbutton16 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(han
38、dles.text1,String);if(strcmp(textString,0.)=1) set(handles.text1,String,) ;elsetextString =strcat(textString,);set(handles.text1,String,textString)end % - Executes on button press in pushbutton17.function pushbutton17_Callback(hObject, eventdata, handles)% hObject handle to pushbutton17 (see GCBO)%
39、eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,String);textString =strcat(textString,-);set(handles.text1,String,textString) % - Executes on button press in pushbutton18.function pushbutton18_
40、Callback(hObject, eventdata, handles)% hObject handle to pushbutton18 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,String);% if(strcmp(textString,0.)=1)% set(handles.text1,String
41、,0.) ;% else% pushbutton20 b c = strread(textString, %f %c %f);% clear ans;% % switch b% case *% ans=pushbutton20*c;% case /% if (c=0)% ans=Error Divided by zero;% else% ans=pushbutton20/c;% end% case -% ans=pushbutton20-c;% case +% ans=pushbutton20+c;% % endans =eval(textString);set(handles.text1,S
42、tring,ans) % - Executes on button press in pushbutton19.function pushbutton19_Callback(hObject, eventdata, handles)% hObject handle to pushbutton19 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get
43、(handles.text1,String);textString =strcat(textString,+);set(handles.text1,String,textString) % - Executes on button press in pushbutton20.function pushbutton20_Callback(hObject, eventdata, handles)% hObject handle to pushbutton20 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,String);%strcmp(textString,0.)if(strcmp(textString,0.)=1) set(handles.text1,String,