MATLAB GUI简易计算器
matlab中gui设计计算器原理及设计方案

matlab中gui设计计算器原理及设计方案在MATLAB中设计GUI(图形用户界面)计算器的基本原理和设计方案如下:基本原理:MATLAB的GUI设计基于事件驱动模型。
这意味着当用户与界面交互(例如,点击按钮或输入文本)时,会触发一个或多个事件。
这些事件会调用相应的回调函数,执行相应的操作。
设计方案:1. 启动MATLAB并创建GUI:打开MATLAB。
使用guide命令启动GUI设计器。
2. 添加GUI组件:在GUI设计器中,添加需要的组件,如按钮(push button)、文本框(edit text)、标签(label)等。
3. 设置组件属性:为每个组件设置必要的属性,例如位置、大小、标签文本等。
4. 编写回调函数:双击每个组件,MATLAB会自动生成一个默认的回调函数。
根据需要修改这些函数,以实现所需的功能。
例如,对于按钮,当用户点击它时,可以编写代码来执行相应的计算。
5. 测试GUI:在设计过程中,经常测试GUI以确保其正常工作。
可以使用simulink中的模拟功能,或直接在MATLAB环境中测试。
6. 保存和运行:保存GUI文件。
在MATLAB命令窗口中输入文件名(不包括扩展名),然后按Enter运行GUI。
7. 调试和优化:根据测试结果,调整回调函数和组件属性,优化GUI的行为和外观。
8. 发布:一旦GUI满足所有需求,可以发布它以供其他人使用。
这通常涉及将GUI打包为一个可执行文件或应用程序包。
9. 维护和更新:随着软件的发展,可能需要定期维护和更新GUI。
这可能涉及添加新功能、修复错误或改进性能。
在整个过程中,熟悉MATLAB的GUI设计和编程技巧是非常重要的。
此外,由于GUI设计可能需要反复的测试和调整,因此耐心和细心也是必不可少的。
MATLABGUI入门简单实例加法计算器4页

本人初学GUI,针对网上版本的混乱,学得一头雾水,特重新整理如下,供大家参考。
1.首先我们新建一个GUI文件:File/New/GUI 如下图所示;选择Blank GUI(Default),点击OK。
2.进入GUI开发环境以后添加3个编辑文本框(Edit Text),2个静态文本框(Static Text),和一个Push Button按钮,布置如下图所示;EditEdit EditPush(1)第一个“Edit Text 1”的用来存储第一个加数,我们将“string”改为“0”,“tag”改为“input1”(2)第二个“Edit Text 2”的用来存储第二个加数,我们将“string”改为“0”,“tag”改为“input2”(3)第三个“Edit Text 3”的“string”改为“0”,“tag”为“answer”(4)修改Pushbutton按钮的属性,“string”改为“Add”,“tag”改为“add”(5)另外2个Static文本就是的“string”修改为“+”“=”(6)点击“保存”,名字任意取,自动弹出M文件(我的是7.0版本,不知其他版本会不会如此)。
3.我们先为第一个Edit Text文本框添加代码,即读取第一个加数;点击上图所示红色方框,选择input1_Callback,光标便立刻移到下面这段代码(程序自动生成)的位置。
function input1_Callback(hObject, eventdata, handles)% hObject handle to input1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,’String’) returns contents of input1 as text% str2double(get(hObject,’String’)) returns contents of edit1 as a double然后在上面这段代码的下面插入如下代码:%以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,则现实空白内容input=str2num(get(hObject,'String'));%检查输入是否为空. 如果为空,则默认显示为0if (isempty(input))set(hObject,'String','0')endguidata(hObject,handles);%保存handles结构体,只要在handles 结构体有改变时,才需要保存 %guidata(hObject, handles);%这里由于handles没有改变,故这里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有Callback都添加该命令。
MATLAB GUI简易计算器

设计说明书题目:基于MATLAB GUI计算器的设计与实现姓名:刘文斌学号:0904705051指导教师:俞学兰专业年级:机械设计及其自动化(机械电子工程方向)09机电2班所在学院和系:机械工程学院完成日期:2012年8月1日1 绪论用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。
如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。
图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。
用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。
2 GUI开发环境GUI开发环境(GUI Development Environment, GUIDE)是MATLAB提供了一套可视化的创建图形窗口的工具,使用用户界面开发环境可方便的创建GUI应用程序, 它可以根据用户设计的GUI布局,自动生成M文件的框架,用户使用这一框架编制自己的应用程序。
GUI开发环境界面如下图所示:3.设计目的运用MATLAB实现GUI的用户界面及程序设计。
4 题目分析4.1程序设计的基本要求●熟悉和掌握MATLAB程序设计方法●掌MATLAB GUI程序设计4.2设计内容要求利用MATLAB GUI设计实现一个图形用户界面的简易计算器程序,要求实现:具有良好的用户图形界面,实现十进制的加、减、乘、除、乘方等简易计算。
科学计算函数,包含开方、三角函数运算功能有清除键和退格键以及基本的0~9数字键和小数点4.3题目分析本题目通过MATLAB的GUI程序设计,在GUI设计中主要用到三种控件,显示框用到文本编辑框(edit text), 说明框用到静态文本框(static text),数字以及运算等按钮用到命令按钮(push button).然后在通过各个按钮的回调函数,实现简单的计算功能。
用MATL制作一简单计算器

这个matlab课程设计是在GUI环境下生成的.开启MATLAB 软件,在命令窗口输入guide,即可进入GUI环境.实验目的:1熟悉GUI环境,并在该环境中制作一个简单的计算器,起功能有加,减,乘,除, cos,sin, tan.2熟悉matlab软件的制作.实验内容及结果:进入GUI环境中双击Blank GUI Default出现一个窗口在该窗口中首先制作一个计算器界面如下所示:红色的是静态编辑框,其余的是按钮.下面我们来分析一下功能函数:textString = get,'String';textString = strcattextString,'1';set,'String',textString这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的内容,并存储数个“1”,然后由set,'String','textString'在text1中输出.同理,分别在function pushbuttonone~zero_CallbackhObject, eventdata, handles下给1~0数字按键下编写此类程序.function pushbuttonjia_CallbackhObject, eventdata, handlestextString = get,'String';textString =strcattextString,'+';set,'String',textStringstrcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString后添加“+”进行运算.然后执行set,'String',textString.符号键‘-’、‘’、‘/’与‘+’的运算函数类似.function cos_CallbackhObject, eventdata, handles textString=;textString=cosstr2numget,'String'pi/180;set,'String',num2strtextStringget,'String'pi/180是把角度转换为弧度,这样在编程环境中才能识别,cos才能起作用.然后执行set函数,把结果输出来.同理在sin,tan的回调函数中夜输入相应的函数,只需把textString=cosstr2numget,'String'pi/180;中的cos改为sin,tan即可.function dengyu_CallbackhObject, eventdata, handles textString = get,'String';s =evaltextString;set,'String',s“eval”的作用是将符号表达式转换成数值表达式.再由set,'String',s输出.现在就是操作了.保存界面后出现点击f找到相应的函数,然后再点击它,光标会自动跳到相应的函数,在函数的下面插入如上的相应代码.做完了以上步骤,下面我们开始运行加法:结果是:减法的运算:结果是;乘法的运算:结果是:除法的运算:结果是:Sin的运算:结果是:Cos的运算:结果是:Tan的运算:结果是:以上就是制作计算器的全过程.还要详细补充的是在GUI双击Blank GUI Default,在出现的窗口中拉动所需的用键后双击它会出现找到,可以改变字体的大小.找到可以改变框的颜色.找到可以清空框里的字,还可以输入所需相应的字符.这里可以修改相应的函数名,便于后面出入代码.。
matlab gui计算器设计总结

matlab gui计算器设计总结设计MATLAB GUI计算器是一项有趣且具有挑战性的任务。
在这个过程中,你需要考虑到用户的需求和体验,以及如何实现这些需求的技术细节。
以下是对此任务的设计总结:1. 需求分析:在设计计算器之前,首先要明确用户的需求。
一个基本的计算器应该能够进行基本的算术运算(加、减、乘、除)以及求平方和平方根等操作。
此外,设计一个友好的用户界面也非常重要,以方便用户理解和使用计算器。
2. 创建GUI界面:MATLAB的图形用户界面(GUI)工具箱可以帮助你创建计算器的用户界面。
你可以使用各种小部件(如按钮、文本框和标签)来创建界面,并通过回调函数来定义小部件的行为。
3. 实现计算器功能:在MATLAB中,你可以使用脚本或函数来实现计算器的功能。
当用户点击按钮时,回调函数将被触发,执行相应的计算,并将结果显示在界面上。
4. 优化用户体验:良好的用户体验是GUI设计的重要方面。
你可以通过调整颜色、字体和布局来改善界面外观,并通过添加错误处理和提示信息来提高程序的易用性。
5. 测试和调试:完成设计后,进行彻底的测试是非常重要的。
检查所有功能是否正常工作,是否有任何错误或异常行为。
此外,通过用户反馈来进一步优化计算器也是一个好主意。
6. 代码组织和可维护性:为了使代码易于理解和维护,应该保持良好的代码组织和注释。
此外,考虑将计算逻辑和GUI代码分离,以方便未来的修改和扩展。
7. 扩展功能:除了基本功能外,还可以考虑添加一些高级功能,如科学计算、三角函数计算等。
这将为用户提供更多选择,并增加计算器的实用价值。
8. 跨平台兼容性:虽然MATLAB主要用于学术和工程领域,但确保GUI计算器在各种操作系统上都能正常工作仍然是一个好习惯。
这可能需要一些额外的测试和调整。
9. 文档和帮助系统:提供详细的文档和帮助信息可以帮助用户更好地理解和使用计算器。
你可以创建一个帮助文件或使用MATLAB的帮助系统来提供这些信息。
matlab-GUI-设计(简易科学计算器)

MATLAB大作业班级:姓名:学号:计算器➢题目本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button)。
然后在通过各个按钮的回调函数,实现简单的计算功能。
➢1、功能介绍(1)具有友好的用户图形界面。
实现十进制数的加、减、乘、除、乘方、开方等简单计算。
(2)具有科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。
(注:三角函数计算的是弧度而不是角度)。
(3)有清除键,能清除操作。
➢2、功能实现程序由两个部分组成:MATLAB代码(.m文件)和GUI图形(.fig)。
程序使用的流程:直接利用图形界面中的按键键入所需数值、运算符等即可得出结果。
备注:软件版本:MATLAB 2011b首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及33个命令按钮,调整好各控件大小、颜色,整体布局如图所示:(附录中有相关属性修改介绍)然后通过双击各个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。
2.1 各功能界面设计GUI设计界面:注:底部边框用(Panel)工具添加,有两种设计顺序。
(1、先加底部边框,再在底部边框上画功能键。
2、先画功能键,布好局,画底框,全选功能键拖动到底框上。
)2.2 各功能模块实现(可根据需要增减功能键)算法设计:1. 数字键设计:0—9以及小数点函数都一样,只是参数不同:例如:按键‘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. 四则运算函数:‘+’功能响应: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');textString =strcat(textString,'*');set(handles.text1,'String',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.text1,'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. 清屏键函数(AC):set(handles.text1,'String','0.') ;2.3 各模块程序添加方法选中一个需添加程序的功能键,右击,View Callbacks,Callback,出现如下图所示界面。
(精品)我的简易计算器MATLAB gui程序

我的简易计算器界面程序源代码function varargout = calc(varargin)% CALC M-file for calc.fig% CALC, by itself, creates a new CALC or raises the existing % singleton*.%% H = CALC returns the handle to a new CALC or the handle to % the existing singleton*.%% CALC('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in CALC.M with the given input arguments. %% CALC('Property','Value',...) creates a new CALC or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before calc_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application% stop. All inputs are passed to calc_OpeningFcn via varargin.%% *See GUI Options on GUIDE's 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 calc% Last Modified by GUIDE v2.5 30-Aug-2006 10:12:03% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @calc_OpeningFcn, ...'gui_OutputFcn', @calc_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before calc is made visible.function calc_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.。
基于MATLAB-GUI的简单计算器

基于MATLAB-GUI的简单计算器设计题目:计算器完成一个简单的计算器。
要求(但不限于):GUI上具有数字键盘输入区域,能够进行加、减、乘、除、三角函数等基础运算。
界面简洁、美观可能需要的控件:Push ButtonEdit TextPop-up Menu1 功能介绍本程序是一个简单的计算器程序,使用MATLAB软件编写完成。
主要具有加、减、乘、除、三角函数等基础运算,并通过GUI进行程序使用的交互。
程序交互界面如下:图1 程序的交互界面2 功能实现首先用MATLAB GUI功能,在绘制一个动态文本框和一个文本编辑框,以及25个命令按钮,调整好各控件大小、颜色,整体布局如图所示:备注:软件版本:MATLAB R2011b2.1 布局GUI1、打开MATLAB,在Guide中新建FIG文件2、然后双击“Blank GUI(Default)”或单击OK键出现GUI窗口3、添加按钮和动态文本框4、根据按钮的作用及视觉效果做一定的修改对按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在动态文本框下面。
最终设置的动态文本框为灰色,其他按钮均为蓝色。
5、保存、添加功能函数将做好的按钮及动态文本框保存后自动弹出Editor的M文本,然后对相应的pushbutton添加功能函数。
以下是相应按钮的功能函数。
(1)数字按键编写。
在function pushbutton1_Callback(hObject, eventdata, handles)下输入:global jja=get(handles.edit1,'String');if(strcmp(a,'0.')==1)&&(jj==0)set(handles.edit1,'String','0.')elsea=strcat(a,'0')set(handles.edit1,'String',a)endjj=0这是使用句柄handles指向对象edit1,并以字符串形式来存储数据文本框edit1的内容,并存储数个“0”,然后由set(handles.edit1,'String',a)在edit1中输出。
matlab简易计算器

电子信息工程系实验报告课程名称:MATLAB语言Array实验项目名称:MATLAB图形用户界面设计实验时间:2010-5-8 班级:姓名:学号:实验目的: 1、熟悉MATLAB的主要控件使用方法。
2、熟悉MATLAB的GUI设计流程。
实验环境:硬件配置( Pentium(R) 4 CPU 2.40GHz,1GB内存)操作系统(Windows XP)编程软件:MATLAB7.0实验内容与结果:使用MATLAB的GUI接口设计一个简单的计算器。
效果图:程序源码部分函数及相关注释:%0~9数字键及小数点按钮代码范例%全局变量locaval用于存储用户输入的多位数值%全局变量gloval2用于存储待处理的第二位数值function pushbutton1_Callback(hObject, eventdata, handles)global locaval;a = get(handles.pushbutton1,'String');locaval=strcat(locaval,a);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);%运算符按钮处理“+、-、*、\”范例%全局变量flagnum存储运算符标志%全局变量global1用于储存第一个待处理数值function pushbutton10_Callback(hObject, eventdata, handles)a = get(handles.pushbutton10,'String');b = get(handles.text1,'String');set(handles.text1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=1;gloval1=b;guidata(hObject, handles);%取相反数按钮“+\-”代码%算法实现:用零减去文本框现在的值,再赋值给文本框function pushbutton14_Callback(hObject, eventdata, handles)global locaval;locaval=str2num(locaval);locaval=0-locaval;locaval=num2str(locaval);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% 等号按钮运算实现%根据flagnum运算标志用switch决策语句实现相应计算%需注意相应数据类型的转化function pushbutton17_Callback(hObject, eventdata, handles)global flagnumglobal gloval1global gloval2global locavallocaval=' ';gloval1=str2num(gloval1);gloval2=str2num(gloval2);case1=gloval1/gloval2;case2=gloval1*gloval2;case3=gloval1-gloval2;case4=gloval1+gloval2;case1=num2str(case1);case2=num2str(case2);case3=num2str(case3);case4=num2str(case4);switch flagnum;case 1set(handles.text1,'String',case1);case 2set(handles.text1,'String',case2);case 3set(handles.text1,'String',case3);case 4set(handles.text1,'String',case4);endguidata(hObject,handles)% BackSpace按钮函数%算法实现:MA TLAB是用矩阵存储数据的,相应的可以取文本框的前N-1实现其功能function pushbutton19_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endguidata(hObject,handles)%C清除按钮函数%把全局变量locaval清零function pushbutton20_Callback(hObject, eventdata, handles)global locavallocaval=' ';set(handles.text1,'String','0.');guidata(hObject,handles)%开平方函数function pushbutton22_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');textString=str2num(textString);textString=sqrt(textString);textString=num2str(textString);set(handles.text1,'String',textString);locaval=' ';guidata(hObject,handles)%取1/x函数function pushbutton24_Callback(hObject, eventdata, handles)global locavallocaval=str2num(locaval);locaval=1/locaval;set(handles.text1,'String',locaval);locaval=' ';guidata(hObject,handles)实验心得:!、通过MATLAB简单计算器的设计,初步了解了关于MATLAB图形用户界面的部分控件的使用方法。
MATLAB简易计算器

实验二MATLAB计算器的设计一、设计任务用MATLAB GUI设计一个科学计算器,能够实现科学计算器的一般功能。
二、设计思路1)如图所示是WINDOWS10系统自带的科学型计算器的输入面板,现拟实现图中所显示的功能2)查阅相关资料发现MATLAB中有一个字符串求值函数eval(exression), 其功能是对exression进行计算并给出结果。
3)计算器功能实现输入——处理——输出三、设计内容一、GUI设计如图所示应用了按钮、静态文本框、动态文本框、坐标轴。
划分了不同的功能区、有一般科学计算区、矩阵计算区、函数求根区,绘图区。
二、函数设计1)输入处理函数功能是记录传入参数numChar的长度并储存在数组a中便于删除时删除相应长度的字符;和之前输入的字符串进行连接储存在str0中;对输入进行显示。
function dealChar(hObject,eventdata,handles,numChar)global str0;global k;global a;k=k+1;a(k)=length(numChar);str0 =strcat(str0,numChar);set(handles.disp1,'String',str0);2)一般输入的回调函数以数字0为例其他字符的回调函数都是类似的只是传入参数不同function num0_Callback(hObject, eventdata, handles)dealChar(hObject,eventdata,handles,'0');3)等于号的回调函数主要是用来处理输出结果function equal_Callback(hObject, eventdata, handles)global str0;global str1;global strT;strT = str0;str1 = num2str(eval(str0));str0=strcat(str0,'=');str0=strcat(str0,str1);set(handles.disp1,'String',str0);str0='';4)删除键的回调函数主要的思路是计算当前字符串的长度,调取上次输入字符串的长度,新字符串的长度=当前字符串的长度-上次输入字符串的长度。
matlab gui计算器工作原理

MATLAB GUI计算器是一种基于MATLAB编程语言的图形用户界面应用程序,它可以像普通计算器一样执行基本数学运算并提供一些高级功能。
下面将介绍MATLAB GUI计算器的工作原理。
1. MATLAB GUI计算器的界面设计MATLAB GUI计算器的界面主要由各种按钮、文本框和其他控件组成,用户可以通过鼠标点击按钮或者输入文本框来进行计算操作。
界面设计需要考虑美观和易用性,通常可以使用MATLAB中的GUIDE工具来进行可视化设计。
2. MATLAB GUI计算器的程序逻辑MATLAB GUI计算器的程序逻辑主要由MATLAB脚本文件编写而成,这些脚本文件包括界面初始化、按钮点击事件处理、计算逻辑等。
通过编写MATLAB脚本,可以实现各种计算功能,并与界面上的控件进行交互。
3. MATLAB GUI计算器的计算功能MATLAB GUI计算器可以执行基本的加减乘除运算,同时还可以实现一些高级的数学函数计算,比如三角函数、指数函数、对数函数等。
这些功能需要通过MATLAB内置的数学函数库来实现。
4. MATLAB GUI计算器的数据输入和输出MATLAB GUI计算器的数据输入通常通过用户的按钮点击或者键盘输入来实现,而数据输出则通过界面上的文本框显示。
在实现计算逻辑时,可以将用户输入的数据和计算结果通过MATLAB脚本进行处理,并更新到界面上。
5. MATLAB GUI计算器的实时更新MATLAB GUI计算器可以在用户输入数据或者点击按钮时实时更新界面上的数据和计算结果,这需要通过MATLAB脚本中的事件处理函数来实现数据更新和界面刷新。
通过上述介绍,我们可以清晰地了解MATLAB GUI计算器的工作原理和实现方法。
通过深入学习MATLAB编程语言和GUI设计技术,我们可以设计出更加复杂和功能强大的GUI应用程序,为科学计算和工程应用提供便利和高效的计算工具。
6. MATLAB GUI计算器的错误处理在使用MATLAB GUI计算器时,用户可能会输入错误的数据或者进行非法的计算操作,因此在程序中需要考虑到错误处理的逻辑。
用MATLAB制作简单计算器

用MATLAB制作简单计算器安阳工学院电子信息与电气工程学院《MATLAB编程与应用》课程大作业题目:用MATLAB制作简单计算器班级:电子信息工程(专升本)教师成绩由以下评分标准累计得出1、设计和仿真结果正确,分析清晰合理。
40%2、大作业报告重点突出、阐述清晰。
30%3、陈述清晰正确、有说服力,能够正确回答问题。
30%总分(上述成绩由教师填写)大作业总成绩(该表格“姓名”和“学号”由学生填写,“成绩”由教师填1.计任务: 1、熟悉MATLAB的主要控件使用方法。
2、熟悉MATLAB的GUI设计流程。
2.设计方案利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要求实现:A.实现十进制数的加、减、乘、除、简单计算。
B. 科学计算函数,包括正弦、余弦、正切、(余切、开方、指数等函数运行。
C. 能够保存上次历史计算的答案,先是答案存储器中得内容。
D. 有清除键,能清除操作。
3.方案实施通过MATLAB的gui程序设计较为简单,在gui设计中主要用到两种控件,显示框用到文本编辑框(edit text),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。
然后在通过各个按钮的回调函数,实现简单的计算功能。
4.方案施舍首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及24个命令按钮,调整好各控件大小、颜色,整体布局如图所示:图-1一、布局GUI1.打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:图–22.然后双击“Blank GUI(Default)”出现GUI窗口图-33.添加按钮图-44.根据按钮的作用及视觉效果做一定的修改把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。
最终设置的静态文本框为白色,其他按钮均为分红色。
5.保存、添加功能函数把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。
最新matlab简易计算器

m a t l a b简易计算器电子信息工程系实验报告课程名称:MATLAB语言Array实验项目名称:MATLAB图形用户界面设计实验时间:班级:姓名:学号:实验目的: 1、熟悉MATLAB的主要控件使用方法。
2、熟悉MATLAB的GUI设计流程。
实验环境:硬件配置( Pentium(R) 4 CPU 2.40GHz,1GB内存)操作系统(Windows XP)编程软件:MATLAB7.0实验内容与结果:使用MATLAB的GUI接口设计一个简单的计算器。
效果图:程序源码部分函数及相关注释:%0~9数字键及小数点按钮代码范例%全局变量locaval用于存储用户输入的多位数值%全局变量gloval2用于存储待处理的第二位数值function pushbutton1_Callback(hObject, eventdata, handles) global locaval;a = get(handles.pushbutton1,'String');locaval=strcat(locaval,a);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);%运算符按钮处理“+、-、*、\”范例%全局变量flagnum存储运算符标志%全局变量global1用于储存第一个待处理数值function pushbutton10_Callback(hObject, eventdata, handles)a = get(handles.pushbutton10,'String');b = get(handles.text1,'String');set(handles.text1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=1;gloval1=b;guidata(hObject, handles);%取相反数按钮“+\-”代码%算法实现:用零减去文本框现在的值,再赋值给文本框function pushbutton14_Callback(hObject, eventdata, handles) global locaval;locaval=str2num(locaval);locaval=0-locaval;locaval=num2str(locaval);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% 等号按钮运算实现%根据flagnum运算标志用switch决策语句实现相应计算%需注意相应数据类型的转化function pushbutton17_Callback(hObject, eventdata, handles) global flagnumglobal gloval1global gloval2global locavallocaval=' ';gloval1=str2num(gloval1);gloval2=str2num(gloval2);case1=gloval1/gloval2;case2=gloval1*gloval2;case3=gloval1-gloval2;case4=gloval1+gloval2;case1=num2str(case1);case2=num2str(case2);case3=num2str(case3);case4=num2str(case4);switch flagnum;case 1set(handles.text1,'String',case1);case 2set(handles.text1,'String',case2);case 3set(handles.text1,'String',case3);case 4set(handles.text1,'String',case4);endguidata(hObject,handles)% BackSpace按钮函数%算法实现:MATLAB是用矩阵存储数据的,相应的可以取文本框的前N-1实现其功能function pushbutton19_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endguidata(hObject,handles)%C清除按钮函数%把全局变量locaval清零function pushbutton20_Callback(hObject, eventdata, handles)global locavallocaval=' ';set(handles.text1,'String','0.');guidata(hObject,handles)%开平方函数function pushbutton22_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');textString=str2num(textString);textString=sqrt(textString);textString=num2str(textString);set(handles.text1,'String',textString);locaval=' ';guidata(hObject,handles)%取1/x函数function pushbutton24_Callback(hObject, eventdata, handles)global locavallocaval=str2num(locaval);locaval=1/locaval;set(handles.text1,'String',locaval);locaval=' ';guidata(hObject,handles)实验心得:!、通过MATLAB简单计算器的设计,初步了解了关于MATLAB图形用户界面的部分控件的使用方法。
Matlab实现的简易计算器程序代码

function varargout = jisuanqi(varargin)% JISUANQI M-file for jisuanqi.fig% JISUANQI, by itself, creates a new JISUANQI or raises the existing % singleton*.%% H = JISUANQI returns the handle to a new JISUANQI or the handle to % the existing singleton*.%% JISUANQI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in JISUANQI.M with the given input arguments. %% JISUANQI('Property','Value',...) creates a new JISUANQI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before jisuanqi_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application % stop. All inputs are passed to jisuanqi_OpeningFcn via varargin. %% *See GUI Options on GUIDE's 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 jisuanqi% Last Modified by GUIDE v2.5 20-Jul-2011 09:45:20% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @jisuanqi_OpeningFcn, ...'gui_OutputFcn', @jisuanqi_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before jisuanqi is made visible.function jisuanqi_OpeningFcn(hObject, eventdata, handles, varargin) handles.current_str='';%´ËΪ´æ´¢µ±Ç°µÄ×Ö·û´®handles.L1_str='';handles.L2_str='';%´ËΪ´æ´¢ÉÏÒ»¸öÊý×ÖµÄ×Ö·û´®% This function has no output args, see 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 command line arguments to jisuanqi (see VARARGIN)% Choose default command line output for jisuanqihandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes jisuanqi wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = jisuanqi_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 output from handles structurevarargout{1} = handles.output;% --- Executes on button press in Number_0.function Number_0_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ0£¬Èç¹û°´ÁË0¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'0');handles.L1_str=strcat(handles.L1_str,'0');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_0 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in xiaoshudian.function xiaoshudian_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'.');guidata(hObject, handles);%СÊýµã% hObject handle to xiaoshudian (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in jia_jian.function jia_jian_Callback(hObject, eventdata, handles)% hObject handle to jia_jian (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_1.function Number_1_Callback(hObject, eventdata, handles)% hObject handle to Number_1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ1£¬Èç¹û°´ÁË1¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'1');handles.L1_str=strcat(handles.L1_str,'1');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% --- Executes on button press in Number_2.function Number_2_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ2£¬Èç¹û°´ÁË1¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'2');handles.L1_str=strcat(handles.L1_str,'2');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_3.function Number_3_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ3£¬Èç¹û°´ÁË3¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'3');handles.L1_str=strcat(handles.L1_str,'3');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_4.function Number_4_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ4£¬Èç¹û°´ÁË4¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'4');handles.L1_str=strcat(handles.L1_str,'4');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_5.function Number_5_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ5£¬Èç¹û°´ÁË5¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'5');handles.L1_str=strcat(handles.L1_str,'5');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_6.function Number_6_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ6£¬Èç¹û°´ÁË6¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'6');handles.L1_str=strcat(handles.L1_str,'6');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_7.function Number_7_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ7£¬Èç¹û°´ÁË7¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'7');handles.L1_str=strcat(handles.L1_str,'7');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_8.function Number_8_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ8£¬Èç¹û°´ÁË8¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'8');handles.L1_str=strcat(handles.L1_str,'8');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_9.function Number_9_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ9£¬Èç¹û°´ÁË9¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'9');handles.L1_str=strcat(handles.L1_str,'9');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in jiahao.function jiahao_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'+');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to jiahao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in denghao.function denghao_Callback(hObject, eventdata, handles)st = get(handles.edit1,'String');%¼ÆËã½á¹û£¬²¢´æ·Åµ½µÚ¶þ¸ö±à¼-¿òÖС£val = eval(st);s = num2str(val);set(handles.edit2,'String',s);guidata(hObject, handles);% hObject handle to denghao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in jianhao.function jianhao_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'-');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to jianhao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in X_daoshu.function X_daoshu_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'\1');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to X_daoshu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in chenghao.function chenghao_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'*');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to chenghao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in baifenhao.function baifenhao_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'/100');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);handles.L2_str=handles.L1_str;handles.L1_str = '';% hObject handle to baifenhao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in chuhao.function chuhao_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'/');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to chuhao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Sqrt.function Sqrt_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'sqrt');handles.L1_str=strcat(handles.L1_str,'sqrt');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Sqrt (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in X_lifang.function X_lifang_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'^3');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to X_lifang (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in x_pingfang.function x_pingfang_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'^2');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to x_pingfang (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in zhengqie.function zhengqie_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'tan');handles.L1_str=strcat(handles.L1_str,'tan');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to zhengqie (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in zhengxian.function zhengxian_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'sin');handles.L1_str=strcat(handles.L1_str,'sin');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to zhengxian (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in CE.function CE_Callback(hObject, eventdata, handles)% hObject handle to CE (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in C.function C_Callback(hObject, eventdata, handles)% hObject handle to C (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handles.current_str = '';set(handles.edit1,'String','0.');set(handles.edit2,'String','0.');guidata(hObject, handles);% --- Executes on button press in Backspace.function Backspace_Callback(hObject, eventdata, handles)% hObject handle to Backspace (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)s1 = handles.current_str;handles.current_str = s1(1:length(s1)-1);set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text% str2double(get(hObject,'String')) returns contents of edit1 as a double% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endif ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')) ;end% --- Executes on button press in shujujiazai.function shujujiazai_Callback(hObject, eventdata, handles)% hObject handle to shujujiazai (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global YSData;[filename,pathname,FILTERINDEX]=uigetfile({'*.xls';'*.dat';'*.*'},'Ñ¡ÔñÊý¾ÝÎļþ');if(FILTERINDEX==0)return;endstr_filename=[pathname,filename];fid=fopen(str_filename,'rt');if(fid==-1)errordlg('Open file error!','Open error');return;endYSData=xlsread(str_filename);set(handles.lujingxianshi,'String',str_filename);set(handles.tuxingxianshi,'Enable','on');function lujingxianshi_Callback(hObject, eventdata, handles)% hObject handle to lujingxianshi (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.lujingxianshi,'String',pathname);% Hints: get(hObject,'String') returns contents of lujingxianshi as text % str2double(get(hObject,'String')) returns contents of lujingxianshi as a double% --- Executes during object creation, after setting all properties. function lujingxianshi_CreateFcn(hObject, eventdata, handles)% hObject handle to lujingxianshi (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on button press in zhuxingtu.function zhuxingtu_Callback(hObject, eventdata, handles)% hObject handle to zhuxingtu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.zhuxingtu,'Value',1);set(handles.zhexiantu,'Value',0);set(handles.yuanbingtu,'Value',0);% Hint: get(hObject,'Value') returns toggle state of zhuxingtu% --- Executes on button press in zhexiantu.function zhexiantu_Callback(hObject, eventdata, handles)% hObject handle to zhexiantu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.zhuxingtu,'Value',0);set(handles.zhexiantu,'Value',1);set(handles.yuanbingtu,'Value',0);% Hint: get(hObject,'Value') returns toggle state of zhexiantu% --- Executes on button press in yuanbingtu.function yuanbingtu_Callback(hObject, eventdata, handles)% hObject handle to yuanbingtu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.zhuxingtu,'Value',0);set(handles.zhexiantu,'Value',0);set(handles.yuanbingtu,'Value',1);% Hint: get(hObject,'Value') returns toggle state of yuanbingtu% --- Executes on button press in tuxingxianshi.function tuxingxianshi_Callback(hObject, eventdata, handles)global YSData;%Åжϡ®Í¼ÏñÀàÐÍ¡¯ÏÂ×éºÏ¿òÖеĸ÷µ¥Ñ¡°´Å¥µÄÑ¡ÖÐÇé¿ö£¬²¢´æ´¢ÔÚIndex_rad iobuttonÖÐIndex_radiobutton=get([handles.zhuxingtu,handles.zhexiantu,handles.yuan bingtu],'Value');%½øÐÐͼÐÎÉú³Éif(Index_radiobutton{1}==1)bar(YSData);title('¸÷Êý¾ÝÖ±·½Í¼');endif(Index_radiobutton{2}==1)plot(YSData);title('¸÷Êý¾ÝÕÛÏßͼ');endif(Index_radiobutton{3}==1)pie(YSData);title('¸÷Êý¾ÝÔ²±ýͼ');end% hObject handle to tuxingxianshi (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% global YSData;% --- Executes during object creation, after setting all properties. function tuxingxianshi_CreateFcn(hObject, eventdata, handles)% hObject handle to tuxingxianshi (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called function edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on button press in Quit.function Quit_Callback(hObject, eventdata, handles)% hObject handle to Quit (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)close(gcf);% --- Executes during object deletion, before destroying properties. function zhengxian_DeleteFcn(hObject, eventdata, handles)% hObject handle to zhengxian (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)function edit3_Callback(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit3 as text% str2double(get(hObject,'String')) returns contents of edit3 as a double% --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end。
基于Matlab的简易计算器

工程设计报告设计题目:基于Matlab的简易计算器学院:专业:班级:学号:姓名:电子邮件:日期: 2015年12 月成绩:指导教师:西 安 电 子 科 技 大 学 电 子 工 程 学 院 工 程 设 计 任 务 书 学生姓名 指导教师 职称 学生学号 专业 题目 基于Matlab 的简易计算器 任务与要求 任务如下: 利用MATLAB GUI 设计实现一个图形用户界面的计算器程序,实现: A.实现十进制数的加、减、乘、除、简单计算。
B. 科学计算函数,包括正弦、余弦、正切、余切、开方、指数等函数运行。
C. 有清除键,能清除操作。
要求如下: A .熟练掌握Matlab GUI 界面的设计与应用 B .最终计算器能够实现预期的相关功能开始日期 2015年 11月 日 完成日期 2016年1月 日课程设计所在单位本表格由电子工程学院网络信息中心 编辑录入…………………………装………………………………订………………………………线………………………………………………………………摘要基于Matlab GUI计算器设计时利用GUI的创建图像用户界面进行计算器设计。
设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。
通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。
计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。
计算器实现的功能有:数字0~9和小数点的输入显示,平方开方和对数的输入显示。
进行四则运算、正弦函数、余弦函数、正切函数以及反正弦函数、反余弦函数、反正切函数的计算等等。
最后运行调试,实现基于Matlab GUI的计算器的设计。
关键词:Matlab GUI 计算器AbstractsBased on Matlab GUI calculator design using the user interface to create images of GUI calculator calculator, mainly considering the ease of use, function calculators calculator interface and function of the common level of adjusting the control and the layout of the text and color, make the interface simple and easy, rational layout, to achieve the effect of friendly interface.Calculator design used to get and set two main function for each attribute value transfer and control the functions are: 0 ~ 9, according to input and decimal square root and logarithm of , sine function and cosine function, tangent function and the arcsine function,arccosine function, the calculation of the arctangent function and so running debugging, implementation design based on Matlab GUI calculator.Keywords: Matlab GUI calculator目录摘要................................................ 错误!未定义书签。
matlabGUI计算器

计算器一、实习任务利用MATLAB里面的函数和GUI用户设计工具箱,制作简易计算器,实现简单的计算任务。
二、实习内容1、布局设计2、程序设计(1)数字按键textString = get(handles.text1,'String');textString = strcat(textString,'0');set(handles.text1,'string',textString)(2)符号按键textString = get(handles.text1,'String'); textString = strcat(textString,'*');set(handles.text1,'string',textString)(3)清零按键set(handles.text1,'string','')(4)返回按键textString = get(handles.text1,'String');set(handles.text1,'String','');ss=char(textString);n=length(textString);textString = ss(1:n-1);set(handles.text1,'string',textString)(5)函数按键textString = handles.text1;textString =sin(str2num(get(handles.text1,'String'))*pi/180); set(handles.text1,'string',num2str(textString)) ; (get(handles.text1,'String'))*pi/1803、效果图三、遇到的问题及解决方法1、遇到的问题在这次MATLAB简易计算器设计中,最大的问题就是不知道如何编写程序,其次就是在Command里面实现了,但在GUI用户界面不知道如何操作编写。
基于GUI的简易计算器设计ppt课件

set(handles.edit1,'string',strcat(numbers,'0'));
%同理编写其余数字键、小数点键、小括号键、运算符号键;
3.2.1运算符号的回调函数
3.2.1数字键的回调函数
function pushbutton18_Callback(hObject, eventdata, handles) %数字键0的回调函数: %get函数获取输入文本框edit1的string属性,赋值给numbers,数值类型为char;
numbers=get(handles.edit1,'string');
点击界面上的按键,输入显示在input的文本对话框,结果显示在output对 话框。例如输入3*(3.1+4.9)/2,结果显示为12.0000000000。如上图所示 可见计算器已经具备简单的基本计算功能。
谢谢观看~
13812345678
YourName
绪论
随着MATLAB的逐渐发展,其功能已经不再限于最初繁琐的数学运算了,由 于技术的精进,软件的性能也越来越好,并且由于其操作简单、兼容性好的 特性,用途也越来越广泛。本文就将介绍一种基于MATLAB制作的简易的计 算器。通过MATLAB实现计算器一般可以采用两种方式:一是纯软件编译实 现;另外一种是结合MATLAB软件与GUI界面的方式。GUI 是 Graphical User Interface 的简称,即图形用户界面,通常人机交互图形化用户界面设计经常 读做“goo-ee”,准确来说 GUI 就是屏幕产品的视觉体验和互动操作部分。由 于采用GUI的方便快捷,所以本文介绍的就是在MATLAB中基于GUI的简易计 算器设计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计说明书题目:基于MATLAB GUI计算器的设计与实现姓名:刘文斌学号:0904705051指导教师:俞学兰专业年级:机械设计及其自动化(机械电子工程方向)09机电2班所在学院和系:机械工程学院完成日期:2012年8月1日1 绪论用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。
如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。
图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。
用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。
2 GUI开发环境GUI开发环境(GUI Development Environment, GUIDE)是MATLAB提供了一套可视化的创建图形窗口的工具,使用用户界面开发环境可方便的创建GUI应用程序, 它可以根据用户设计的GUI布局,自动生成M文件的框架,用户使用这一框架编制自己的应用程序。
GUI开发环境界面如下图所示:3.设计目的运用MATLAB实现GUI的用户界面及程序设计。
4 题目分析4.1程序设计的基本要求●熟悉和掌握MATLAB程序设计方法●掌MATLAB GUI程序设计4.2设计内容要求利用MATLAB GUI设计实现一个图形用户界面的简易计算器程序,要求实现:具有良好的用户图形界面,实现十进制的加、减、乘、除、乘方等简易计算。
科学计算函数,包含开方、三角函数运算功能有清除键和退格键以及基本的0~9数字键和小数点4.3题目分析本题目通过MATLAB的GUI程序设计,在GUI设计中主要用到三种控件,显示框用到文本编辑框(edit text), 说明框用到静态文本框(static text),数字以及运算等按钮用到命令按钮(push button).然后在通过各个按钮的回调函数,实现简单的计算功能。
4.4设计思路首先用MATLAB GUI功能,设置一个静态文本框和一个文本编辑框,以及命令按钮,调整好各控件的颜色、大小。
通过双击各按钮来改写其属性,在M文件中编写其回调函数,最后再运行调试。
5 GUI程序设计5.1、设计图形界面设计步骤:(1)在布局编辑器中布置控件,(2)使用几何位置排列工具对控件的位置进行调整;(3)设计控件的属性;GUI 环境下简易计算器用户界面如下图所示:5.2设置控件的标识控件的标识(Tag)是对于各控件的识别,每个控件载创建时都会由开发环境自动产生一个标识,在程序设计中,为了编辑、记忆和维护的方便,一般为控件设置一个新的标识。
5.3各功能模块实现GUI图形界面的功能要通过一定的设计思路和计算方法由特定的程序来实现。
为了实现程序的功能,还需要在运行程序前编写一些代码,完成程序中变量的赋值、输入输出、计算及绘图等工作。
在创建 GUI 时系统已经为其自动生成了 M 文件,该文件中包含 GUI 中控件对应的响应函数,及系统函数等。
部分具体函数代码及相关注释:●数字键设计:0~9以及小数点都一样,只是参数不同:%全局变量locaval用于存储用户输入的多位数值%全局变量gloval2用于存储待处理的第二位数值function pushbutton0_Callback(hObject, eventdata, handles)global locaval;a = get(handles.pushbutton1,'String');locaval=strcat(locaval,a);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);●运算符按钮处理“+、-、*、/ ”范例%全局变量flagnum存储运算符标志%全局变量global1用于储存第一个待处理数值function pushbutton_chu_Callback(hObject, eventdata, handles)a = get(handles.pushbutton10,'String');b = get(handles.text1,'String');set(handles.text1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=1;gloval1=b;guidata(hObject, handles);●等号按钮运算实现%根据flagnum运算标志用switch决策语句实现相应计算%需注意相应数据类型的转化function pushbutton_dengyu_Callback(hObject, eventdata, handles)global flagnumglobal gloval2global locavallocaval=' ';gloval1=str2num(gloval1);gloval2=str2num(gloval2);case1=gloval1/gloval2;case2=gloval1*gloval2;case3=gloval1-gloval2;case4=gloval1+gloval2;case1=num2str(case1);case2=num2str(case2);case3=num2str(case3);case4=num2str(case4);switch flagnum;case 1set(handles.text1,'String',case1);case 2set(handles.text1,'String',case2);case 3set(handles.text1,'String',case3);case 4set(handles.text1,'String',case4);endguidata(hObject,handles)●Del按钮函数%算法实现:MATLAB是用矩阵存储数据的,相应的可以取文本框的前N-1实现其功能function pushbutton_BackSpace_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endguidata(hObject,handles)●C清除按钮函数%把全局变量locaval清零function pushbutton_qinglin_Callback(hObject, eventdata, handles)locaval=' ';set(handles.text1,'String','0.');guidata(hObject,handles)6 结果分析6.1最终显示界面效果图:上述简易计算器用户界面,能完成简单的四则运算及四则混合运算功能。
通过实际操练结果均与实际结果相吻合,能实现基本的功能。
7 心得体会通过本次的MATLAB设计,让我对MATLAN尤其是GUI可视化图形界面的设计功能有了进一步的了解,认识到其功能的强大。
在MATLAB简单计算器的设计中,了解了关于MATLAB 图形用户界面的部分空间的使用方法,利用MATLAB的GUI提供的很多实用控件,方便用于设计自己的图形界面。
1、通过MATLAB简单计算器的设计,初步了解了关于MATLAB图形用户界面的部分控件的使用方法。
2、MATLAB的GUI提供的很多实用的控件,方便用于设计属于自己的图形界面。
3、Matlab具有强大、丰富的内置函数和工具箱,界面设计时更加简洁、快捷与直观。
参考书目[1]李人厚、张平安.精通MATLAB综合辅导与指南[M].西安:西安交通大学出版社.1999[2]张智星.MATLAB程序设计与应用[M].北京:清华大学出版设.2002.4.1[3]施晓红周佳。
精通GUI图形界面教程[M].北京:北京大学出版社,2003.[4]陈子为。
基于Matlab GUI扫雷游戏的设计与实现[J].现代电子技术,2008.附录仿真一个四则混合运算界面如下:程序源代码function varargout = calculator(varargin)% 我的计算器,重要运用了文本框和按钮。
••••gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @calculator_OpeningFcn, ... 'gui_OutputFcn', @calculator_OutputFcn, ... 'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:});endfunction calculator_OpeningFcn(hObject, eventdata, handles, varargin)handles.current_str='';%此为存储当前的字符串。
% Choose default command line output for calculatorhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes calculator wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = calculator_OutputFcn(hObject, eventdata, handles)varargout{1} = handles.output;% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)%连接当前的字符串和1,如果按了1键的话。