matlab计算器设计说明
(word完整版)用MATLAB GUI设计简单计算器

摘要基于MATLAB GUI的计算器设计是利用GUIDE创建图形用户界面进行计算器设计。
设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。
通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。
计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。
计算器实现的功能有:数字0~9和小数点的输入显示,平方、开平方和对数的输入显示。
进行四则运算、正弦计算、余弦计算、正切计算和余切计算,可以求阶乘、求百分数和求倒数。
可以进行括号及变量x与变量y的输入,结合坐标轴编辑框和曲线颜色编辑框实现函数的曲线绘制。
最后运行调试,实现基于MATLAB GUI的计算器的设计。
MATLAB GUI介绍MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂,主要面对科学计算、可视化以及交互式程设计的高科技计算环境。
MATLAB是将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。
MATLAB的图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
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设计可能需要反复的测试和调整,因此耐心和细心也是必不可少的。
《MATLAB语言及仿真》计算器界面设计一

《MATLAB语言及仿真》计算器界面设计
一、主要工作原理(一级标题字体为小四宋)
1.1Matlab是一种高级的数学计算软件,它的原理是基于矩阵运算和数值计算的。
Matlab 的核心是一个解释器,它可以解释 Matlab语言中的命令,并将其转换为计算机可以理解的指令。
Matlab 的语言是一独高级的编程语言,它可以进行数值计算、数据分析、图形绘制等多种操作。
二、设计方案
2.1首先用MATLAB GUI 功能,在绘制一个静态文本框和一个文本编辑框,以及32个命令按钮,调整好各控件大小、颜色,整体布局如图所示:
2.2然后通过双击个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。
三、详细内容(包括图形、代码、文字描述等内容)
GUI设计界面:
1
算法设计:0——9以及小数点函数都一样,只是参数不同:
2
四则运算:
清屏键:
四、总结
通过本次的MATLAB课程设计,让我对MATLAB尤其是其GUI设计的功能有了进一步的了解,认识到了它功能的强大。
在MATLAB简单计算器的设计中,了解了关于MATLAB图形用户界面的部分控件的使用方法;利用MATLAB的GUI提供的很多实用的控件,方便用于设计属于自己的图形界面。
3。
用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提供了一套可视化的创建图形窗口的工具,使用用户界面开发环境可方便的创建GUI应用程序, 它可以根据用户设计的GUI布局,自动生成M文件的框架,用户使用这一框架编制自己的应用程序。
图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。
用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。
二、矩阵计算器介绍2.1 程序使用的控件在矩阵计算器设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button),边框(panel)。
然后在通过各个按钮的回调函数,实现简单的计算功能。
2.2 程序功能介绍(1)具有用户图形界面。
实现矩阵的加、减、乘、左除、右除等简单计算。
(2)有清空键,能清除操作。
2.3 矩阵计算器界面及主要控件功能注释:text1文本编辑框控件功能:输出要计算公式。
如[12 45;78 56]+[659 238;79 56] MatA文本编辑框功能:输入参与计算矩阵AMatB文本编辑框功能:输入参与计算矩阵BMatC静态文本框功能:输出计算结果矩阵C三、部分计算操作结果(1) 加法+MatAtext1 pushbutton22pushbutton23pushbutton24pushbutton20(2)求逆(3)转置(4)群运算.*四、部分模块功能算法的实现(1)按键’加法+’响应:a=get(handles.matA,'string');textString=strcat(a,'+');b=get(handles.matB,'string');textString=strcat(textString,b);set(handles.text1,'String',textString);(2)按键’转置’响应a=get(handles.matA,'string');textString=strcat(a,'''');set(handles.text1,'String',textString);(3)按键’计算’响应textString=get(handles.text1,'String');f=eval(textString);set(handles.matC,'string',num2str(f,'%15.5g'))(5)按键’清空’响应set(handles.text1,'String','')set(handles.matA,'String','[]')set(handles.matB,'String','[]')set(handles.matC,'String','')注释:其余模块功能算法与以上代码较为相似,不在一一举例。
电信12-1班 1206110109matlab简易计算器设计步骤与回调函数设计

简易算术计算器的设计一、算术计算器的功能:能进行简单的加、减、乘、除法,sin,cos,tan,x^2,squrt运算,输入文本框显示为常量多项式,输出文本框显示为精确到小数点后十位的数值。
计算器包含十个数字键0~9、小数点键“.”、小括号键“(”“)”、运算符号、清屏键、退格键、退出键等。
二、设计思路:每按下一个数字键或者符号键的时候,利用get(handles.edit1,'string')获取当前输入文本框edit1的string属性,并通过字符串合并函数strcat()将当前输入文本框edit1的字符型string属性与按键的字符型string属性合并成字符串,然后利用属性设置函数set(); 将合并后的字符串返回到输入文本框edit1的string属性。
当输入结束,用户按下等号的时候,采用x=get(handles.edit1,'string')获取当前输入文本框edit1的string属性,然后利用字符串执行命令y1=eval(x)计算输入文本框的表达式,得到的结果是字符型常量;然后利用字符串输出格式控制函数y=sprintf('%.10f',y1)使输出结果精确到小数点后十位;最后利用属性设置函数set(handles.edit2,'string',y)将转换后的字符串返回到输出文本框edit2的string属性。
三、设计步骤:1、运行matlab2014a,进入主界面。
2、输入guide,进入GUI开发环境。
3、创建控件:按钮包括数字0~9、运算符“+ - * /”、功能键等26个,输入和动态静态文本框,显示文字的静态文本框四个等。
4、对控件单击右键弹出菜单,选择属性检查器,设置控件属性。
5、选择工具栏上的对齐对象按键,调整控件布局。
6、选择工具栏上的Tab 顺序编辑器按键,通过和设置各控件的Tab顺序。
7、设计菜单:在GUI开发环境下,选择工具栏上的进入菜单编辑器,分别选择和创建主菜单和子菜单。
基于matlab的计算器制作

基于MATLAB的计算器制作从入门到高级项目一、建立GUI框架1,双击MATLAB图标(本实例使用的是MATLAB R2014),打开软件2,打开GUI操作界面。
有两种方式:a、在命令行窗口输入guide,然后点击回车。
b、先点击新建图标,在选择‘图形用户界面’。
得到如下窗口:左上方有两个按钮:‘新建GUI’,‘打开现有GUI’。
对于‘新建GUI’:下方的选择框内有你可以选择建立的GUI类型,对于初学者一般选择第一个。
下方是用来设置保存文件位置的。
对于‘打开现有GUI’:初学者可能会在网上下载一些GUI源程序,使用‘打开现有GUI’,再浏览到文件所在位置便可。
3、构建GUI框架:在选择新建GUI并且确定后,会弹出如下窗口:在窗口的左边会有很多选项,可以一个个拖动编辑框内;是不是发现这些选项发挥的作用刚好就是我们平常打开一个网页或者一个软件进行操作时的选择按钮。
比较常见的有:按钮、单选按钮、拖动条、弹出式菜单等。
看到这里细心地朋友就会发现,MATLAB GUI似乎可以开发出大型软件哦,只要你有足够的想象力,当你从一个小白进阶到一个高手之后,你可以做到的。
本次计算器制作只需要用到静态文本(或者是动态文本)用来做显示器,按钮(用来操作)。
也可以添加一个面板用来修饰。
在拖出的选项上双击,会得出该选项的属性栏,比如说双击一个按钮选项,你会得到:这个属性框比较复杂,没有必要一个个说清楚(有兴趣的可以自己研究,其实理解起来也挺简单的)本次计算器制作,我们只需要知道以下几个:◆a、BackgroundColor取值为颜色的预定义字符或RGB数值;缺省(就是默认的意思)值为浅灰色;◆b、ForegroundColor取值为颜色的预定义字符或RGB数值,该属性定义控件对象标题字符的颜色;缺省值为黑色;◆c、String取值为字符串矩阵或块数组,定义控件对象标题或选项内容;◆d、FontName取值为控件标题等字体的字库名;◆e、FontSize取值为数值,控制字体大小;◆f、Tag取值为字符串,定义了控件的标识值,在任何程序中都可以通过这个标识值控制该控件对象;◆g、Style取值可以是pushbutton(缺省值),radiobutton, checkbox, edit, text, slider,frame, popupmenu 或listbox;项目二、简单加法器的制作1、框架准备‘加法器’:使用静态文本,在 string 处将文本修改为(加法器),在 fontsize可修改字体大小,在BackgroundColor处可修改背景颜色。
matlab简易计算器设计步骤与回调函数设计说明

简易算术计算器的设计一、算术计算器的功能:能进行简单的加、减、乘、除法运算,输入文本框显示为常量多项式,输出文本框显示为精确到小数点后十位的数值。
计算器包含十个数字键0~9、小数点键“.”、小括号键“(”“)”、运算符号、清屏键、退格键、退出键等。
二、设计思路:每按下一个数字键或者符号键的时候,利用get(handles.edit1,'string')获取当前输入文本框edit1的string属性,并通过字符串合并函数strcat()将当前输入文本框edit1的字符型string属性与按键的字符型string属性合并成字符串,然后利用属性设置函数set(); 将合并后的字符串返回到输入文本框edit1的string属性。
当输入结束,用户按下等号的时候,采用x=get(handles.edit1,'string')获取当前输入文本框edit1的string属性,然后利用字符串执行命令y1=eval(x)计算输入文本框的表达式,得到的结果是字符型常量;然后利用字符串输出格式控制函数y=sprintf('%.10f',y1)使输出结果精确到小数点后十位;最后利用属性设置函数set(handles.edit2,'string',y)将转换后的字符串返回到输出文本框edit2的string 属性。
三、设计步骤:1、运行matlab 7.13版,进入主界面。
2、点击工具栏上的GUIDE图标进入GUI开发环境。
3、创建控件:Push Button包括数字0~9、运算符“+ - ×÷”、功能键等十九个,输入和动态静态文本框Edit Text,显示文字的静态文本框Static Text四个等。
4、对控件单击右键弹出菜单,选择Property Inspector,设置控件属性。
控件属性表text text1 制作:***16pointsboldon0.8310.8160.7840 0 1 text2 Inputtext3 Outputtext4 算术计算器200.7490.749editedit1 空白字符串10pointson 1 1 1 0 0 0 edit2 空白字符串5、选择工具栏上的Align Objects按键,调整控件布局。
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。
1.打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:2.然后双击“Blank GUI(Default)”出现GUI窗口3.添加按钮4.根据按钮的作用及视觉效果做一定的修改把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。
最终设置的静态文本框为白色,其他按钮均为分红色。
5.保存、添加功能函数把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。
以下是相应按钮的功能函数。
(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 pushbutton2~10_Callback(hObject, eventdata, handles)下给1~9数字按键下编写此类程序。
(2).符号键:function pushbutton12_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');textString =strcat(textString,'+');set(handles.text1,'String',textString)strcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString 后添加“+”进行运算。
MATLAB科学计算器设计

目录计算器的效果图.......................................................................... 错误!未定义书签。
第一章GUI设计界面 .. (3)1.1打开GUI (3)1.2.添加按钮 (3)1.3.根据按钮的作用及视觉效果做一定的修改 (4)1.4.保存、添加功能函数 (4)1.4.1 数字键编写 (4)1.4.2 符号键的编写 (4)1.4.3 运算符“=”的编写 (5)1.4.4 按键“←back”的编写 (5)1.4.5 按键“清空”的编写 (5)1.4.6 按键“退出”的编写 (5)1.4.7 按键“二进制数转十进制数”的编写................... 错误!未定义书签。
1.4.8 按键“十进制数转二进制数”的编写................... 错误!未定义书签。
第二章计算器的使用. (5)2.1 除法运算(÷) (6)2.2 平方运算(^2) (6)2.3 函数cos (∏/3)的计算 (7)2.4 函数arctan (∏/3)的计算 (7)2.5 以2为底的对数(log 2)的计算 (8)第三章各按键的程序源代码 (10)第四章问题和解决方法 (14)第五章心得体会 (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中输出。
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中的GUI接口设计这个简易计算器,通过GUI中的pushbottom设计输入数字的键和加减乘除等于等键,然后通过edit text设计显示屏。
更改回调函数实现相关的计算功能。
三.程序分析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);等号键功能的实现%根据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)清除按钮函数function pushbutton20_Callback(hObject, eventdata, handles)global locavallocaval=' ';set(handles.text1,'String','0.');guidata(hObject,handles)四.程序展示function varargout = jisuanji(varargin)% JISUANJI MATLAB code for jisuanji.fig% JISUANJI, by itself, creates a new JISUANJI or raises the existing% singleton*.%% H = JISUANJI returns the handle to a new JISUANJI or the handle to% the existing singleton*.%% JISUANJI('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in JISUANJI.M with the given input arguments.%% JISUANJI('Property','Value',...) creates a new JISUANJI or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before jisuanji_OpeningFcn gets called. An % unrecognized property name or invalid value makes propertyapplication% stop. All inputs are passed to jisuanji_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 edit1 to modify the response to help jisuanji% Last Modified by GUIDE v2.5 04-Jun-2013 16:55:11% Begin initialization code - DO NOT EDITglobal gloval1;global gloval2;global flagnum;global locaval;gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @jisuanji_OpeningFcn, ...'gui_OutputFcn', @jisuanji_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 jisuanji is made visible.function jisuanji_OpeningFcn(hObject, eventdata, handles, varargin) % 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 jisuanji (see VARARGIN)% Choose default command line output for jisuanjihandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes jisuanji wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = jisuanji_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;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 edit1 % str2double(get(hObject,'String')) returns contents of edit1 as a doubleglobal locavallocaval=str2num(locaval);locaval=1/locaval;set(handles.edit1,'String',locaval);locaval=' ';guidata(hObject,handles)% --- 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 CreateFcnscalled% 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 pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton3,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton4.function 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 locaval;a = get(handles.pushbutton4,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton5,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button 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)a = get(handles.pushbutton6,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=1;gloval1=b;guidata(hObject, handles);% --- Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton7,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- 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 locaval;a = get(handles.pushbutton8,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton9.function pushbutton9_Callback(hObject, eventdata, handles)% hObject handle 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 locaval;a = get(handles.pushbutton9,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- 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 user data (see GUIDATA)a = get(handles.pushbutton10,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=2;gloval1=b;guidata(hObject, handles);% --- Executes on button press in pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton11,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton12.function pushbutton12_Callback(hObject, 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 locaval;a = get(handles.pushbutton12,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- 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 % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton13,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton14.function pushbutton14_Callback(hObject, eventdata, handles)% hObject handle to pushbutton14 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)a = get(handles.pushbutton14,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=3;gloval1=b;guidata(hObject, handles);% --- 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)a = get(handles.pushbutton16,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=4;gloval1=b;guidata(hObject, handles);% --- Executes on button press in pushbutton17.function pushbutton17_Callback(hObject, eventdata, handles)% hObject handle to pushbutton17 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton17,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton18.function pushbutton18_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) 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.edit1,'String',case1);case 2set(handles.edit1,'String',case2);case 3set(handles.edit1,'String',case3);case 4set(handles.edit1,'String',case4);endguidata(hObject,handles)% --- 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) edit1String = get(handles.edit1,'String');if(strcmp(edit1String,'0.')==1)set(handles.edit1,'String','0.') ;elsess=char(edit1String);l=length(edit1String);edit1String=ss(1:l-1);set(handles.edit1,'String',edit1String)endguidata(hObject,handles)% --- 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) global locavallocaval=' ';set(handles.edit1,'String','0');guidata(hObject,handles)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五.结果展示。
gui计算器设计matlab代码

GUI计算器设计MATLAB代码1. 简介GUI(Graphical User Interface,图形用户界面)计算器是一种利用图形界面设计的计算器,用户可以通过鼠标点击按钮进行数字输入和运算。
MATLAB是一种功能强大的数学计算软件,拥有丰富的绘图和可视化功能,可以用于设计和实现GUI计算器。
本文将介绍如何使用MATLAB编写GUI计算器的代码。
2. 界面设计在设计GUI计算器的界面时,需要考虑用户友好性和美观性。
可以通过MATLAB提供的GUIDE工具进行界面设计,添加数字按钮、运算符按钮和显示屏等组件。
另外,还可以设置布局和颜色,使界面更加美观。
3. 代码实现需要创建一个新的MATLAB GUI应用程序,然后在GUIDE工具中设计界面。
在界面设计完成后,需要编辑回调函数来实现计算器的功能。
以下是一个简单的GUI计算器的MATLAB代码示例:```matlabfunction calculatorGUI创建整体界面figure('Name','Calculator','NumberTitle','off','Position',[100,100,4 00,600]);创建显示屏hEdit =uicontrol('Style','edit','String','','Position',[50,500,300,50]);创建数字按钮numBtns = {'7','8','9','4','5','6','1','2','3','0'};for i = 1:10hNumBtn(i) =uicontrol('Style','pushbutton','String',numBtns{i},'Position',[50+5 0*rem(i-1,3),450-50*fix((i-1)/3),50,50],'Callback',numBtn_callback);end创建运算符按钮operatorBtns = {'+','-','*','/','='};for i = 1:5hOperatorBtn(i) =uicontrol('Style','pushbutton','String',operatorBtns{i},'Position',[2 00,450-50*(i-1),50,50],'Callback', operatorBtn_callback);数字按钮回调函数function numBtn_callback(hObject,~)str = get(hEdit,'String');str = [str get(hObject,'String')];set(hEdit,'String',str);end运算符按钮回调函数function operatorBtn_callback(hObject,~) str = get(hEdit,'String');val = get(hObject,'String');if ~isempty(str)if strcmp(val,'=')tryresult = eval(str);set(hEdit,'String',num2str(result)); catchset(hEdit,'String','Error');endelseset(hEdit,'String',[str val]);endendendend```4. 运行效果运行以上代码,将会弹出一个简单的GUI计算器界面,用户可以通过点击数字按钮和运算符按钮来输入表达式并进行计算。
最新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做简易计算器

MATLAB做简易计算器1、数字键的编写:textstring=get(handles.text1,'string');textstring=strcat(textstring,'0');set(handles.text1,'string',textstring);这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的内容,并存储数个“0”,然后由set(handles.text1,'String','textString')在text1中输出。
同理,1~9也是这样实现。
2、符号键:textstring=get(handles.text1,'string');textstring=strcat(textstring,'+');set(handles.text1,'string',textstring);strcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString后添加“+”进行运算。
然后执行set(handles.text1,'String',textString)。
符号键‘-’、‘*’、‘/’与‘+’的运算函数类似。
3、等于键:textstring=get(handles.text1,'string');s=eval(textstring);set(handles.text1,'string',s);“eval”的作用是将符号表达式转换成数值表达式。
再由set(handles.text1,'String',s)输出4、清除键:set(handles.text1,'string',' ');计算器使用:‘+’‘=’后:源程序:function varargout = jisuanqi(varargin)% JISUANQI MATLAB code 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 propertyapplication% 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 04-May-2015 16:44:30% 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)% 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 pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)textstring=get(handles.text1,'string');textstring=strcat(textstring,'1');set(handles.text1,'string',textstring);% hObject handle to pushbutton1 (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 pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)textstring=get(handles.text1,'string');textstring=strcat(textstring,'2');set(handles.text1,'string',textstring);% 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)% --- Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)textstring=get(handles.text1,'string');textstring=strcat(textstring,'3');set(handles.text1,'string',textstring);% hObject handle to pushbutton3 (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 pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)textstring=get(handles.text1,'string');textstring=strcat(textstring,'+');set(handles.text1,'string',textstring);% 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)% --- Executes on button press in pushbutton9.function pushbutton9_Callback(hObject, eventdata, handles)textstring=get(handles.text1,'string');textstring=strcat(textstring,'4');set(handles.text1,'string',textstring);% hObject handle to pushbutton9 (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 pushbutton10.function pushbutton10_Callback(hObject, eventdata, handles) textstring=get(handles.text1,'string');textstring=strcat(textstring,'5');set(handles.text1,'string',textstring);% hObject handle to pushbutton10 (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 pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles) textstring=get(handles.text1,'string');textstring=strcat(textstring,'6');set(handles.text1,'string',textstring);% hObject handle to pushbutton11 (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 pushbutton12.function pushbutton12_Callback(hObject, eventdata, handles) textstring=get(handles.text1,'string');textstring=strcat(textstring,'-');set(handles.text1,'string',textstring);% 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)% --- Executes on button press in pushbutton13.function pushbutton13_Callback(hObject, eventdata, handles) textstring=get(handles.text1,'string');textstring=strcat(textstring,'7');set(handles.text1,'string',textstring);% hObject handle to pushbutton13 (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 pushbutton14.function pushbutton14_Callback(hObject, eventdata, handles) textstring=get(handles.text1,'string');textstring=strcat(textstring,'8');set(handles.text1,'string',textstring);% hObject handle to pushbutton14 (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 pushbutton15.function pushbutton15_Callback(hObject, eventdata, handles) textstring=get(handles.text1,'string');textstring=strcat(textstring,'9');set(handles.text1,'string',textstring);% hObject handle to pushbutton15 (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 pushbutton16.function pushbutton16_Callback(hObject, eventdata, handles) textstring=get(handles.text1,'string');textstring=strcat(textstring,'*');set(handles.text1,'string',textstring);% 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)% --- Executes on button press in pushbutton17.function pushbutton17_Callback(hObject, eventdata, handles);set(handles.text1,'string',' ');% hObject handle to pushbutton17 (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 pushbutton18.function pushbutton18_Callback(hObject, eventdata, handles) textstring=get(handles.text1,'string');textstring=strcat(textstring,'.');set(handles.text1,'string',textstring);% 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)% --- Executes on button press in pushbutton19.function pushbutton19_Callback(hObject, eventdata, handles) textstring=get(handles.text1,'string');s=eval(textstring);set(handles.text1,'string',s);% 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)% --- Executes on button press in pushbutton20.function pushbutton20_Callback(hObject, eventdata, handles) textstring=get(handles.text1,'string');textstring=strcat(textstring,'/');set(handles.text1,'string',textstring);% 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)。
计算器设计 MATLAB

计算器的设计【摘要】: MATLAB是一门计算机编程语言,取名来源于Matrix Laboratory,本意是专门以矩阵的方式来处理计算机数据,它把数值计算和可视化环境集成到一起,非常直观,而且提供了大量的函数,使其越来越受到人们的喜爱,工具箱越来越多,应用范围也越来越广泛。
在一学期的MATLAB的学习后,小组决定使用该语言进行计算器的设计。
该计算器不仅能进行简单的四则运算,还能进行复杂的三角函数运算以及复数加减运算。
【关键字】:MATLAB,计算器,复数一、小组设计思路过程与思路解析1.首先设计计算器应实现的功能功能1:实现简单的四则运算;功能2:实现简单的函数运算并可视化诸如sinX,cosX的图像;x=0:0.01:10;a=sym(get(handles.edit1,'string'));y=subs(a);set(handles.axes3,plot(x,y));功能3:实现较为复杂的复数运算。
function z3=f0226(z1,z2)z=z1+z2;a=real(z);b=imag(z);z3=a+b*i;2.设计计算器就要有可视化界面,利用MATALB中自带的编辑功能编辑按键(pushbutton),根据所需要的功能设计满足需求的按键与界面。
3.调用MATALB中自带的诸如eval(x)函数以及自己编写的程序,定义每一个按键使得计算器能够进行设计的功能的运行。
二、个人在该项目上的具体任务学习GUI(人机交互图形化用户界面)并且熟练掌握它的实际操作和适用。
分配好小组三人相应的工作,在共同设计好初步的用户界面后三人分别主要编写相应的功能代码。
1.前期工作在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告题 目 数学计算器的开发课 程名 称 软件设计 院 部 名 称 机电工程学院 专 业 自动化 班 级 学 生 姓 名 学 号 课程设计地点 课程设计学时 指 导 教 师金陵科技学院教务处制一、课程设计应达到的目的本课程是为自动化专业本科生开设的专业课程设计课。
通过本课程的课程设成绩计实践帮助学生巩固关于数据结构、算法、程序设计的基础知识。
通过本课程设计,学生可以初步掌握开发一个小型实用系统的基本方法,提高运用编程软件实现GUI程序设计的能力。
二、课程设计的基本要求:要求利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要现:A. 具有友好的用户图形界面。
实现十进制数的加、减、乘、除、乘方、取模等简单计算。
(必做)B. 科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。
(必做)C. 能够保存上次历史计算的答案,先是答案存储器中得容。
(必做)D. 有清除键,能清除操作,并对不正确的表达式能指出其错误原因。
(必做)E. 独立存储器功能,使之可以直接输入存储器,可与存储器中的数值相加减。
能够清除独立存储器中的容。
(选做)利用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及命令按钮,调整好各控件大小、颜色,整体布局如图所示:然后通过双击个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。
三、课题设计容与步骤3.1 各功能界面设计GUI设计界面:3.2 各功能模块实现算法设计:A. 数字键设计:0—9以及小数点函数都一样,只是参数不同:textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','1') ;elsetextString =strcat(textString,'1');set(handles.edit1,'String',textString)endB. 四则运算函数: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);endtextString =strcat(textString,'+');set(handles.edit1,'String',textString)C. 科学计算函数:textString = get(handles.edit1,'String');a = strread(textString, '%f');a=sin(a);set(handles.edit1,'String',a)D. 退格键:通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)&(jj==0)set(handles.edit1,'String','0') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.edit1,'String',textString)E. 清屏键函数:set(handles.edit1,'String','0') ;F. +/-的实现textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','0') ;elsea = strread(textString, '%f');a=0-a;set(handles.edit1,'String',a)end3.3 各模块实现结果A.数字键:B. 四则运算函数:C. 科学计算函数:Sin1的计算结果=3.4、结果分析计算(1+9)/5计算结果=2计算3*4计算结果=12arcsin1计算结果log2的报错:通过输入的数据与‘0’字符比较,若两者相等,则显示“error”进行报错,结果如下:经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。
四、课程设计源代码A.数字键设计:按键“0”:通过get函数获得输入的字符,函数strcat获得字符'0',并用set 函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','0') ;elsetextString =strcat(textString,'0');set(handles.edit1,'String',textString)end按键“1”:通过get函数获得输入的字符,函数strcat获得字符'1',并用set 函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','1') ;elsetextString =strcat(textString,'1');set(handles.edit1,'String',textString)end按键“2”:通过get函数获得输入的字符,函数strcat获得字符'2',并用set 函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','2') ;elsetextString =strcat(textString,'2');set(handles.edit1,'String',textString)End按键“3”:通过get函数获得输入的字符,函数strcat获得字符'3',并用set 函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','3') ;elsetextString =strcat(textString,'3');set(handles.edit1,'String',textString)end按键“4”:通过get函数获得输入的字符,函数strcat获得字符'4',并用set 函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','4') ;elsetextString =strcat(textString,'4');set(handles.edit1,'String',textString)end按键“5”:通过get函数获得输入的字符,函数strcat获得字符'5',并用set 函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','5') ;elsetextString =strcat(textString,'5');set(handles.edit1,'String',textString)end按键“6”:通过get函数获得输入的字符,函数strcat获得字符'6',并用set 函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','6') ;elsetextString =strcat(textString,'6');set(handles.edit1,'String',textString)end按键“7”:通过get函数获得输入的字符,函数strcat获得字符'7',并用set 函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','7') ;elsetextString =strcat(textString,'7');set(handles.edit1,'String',textString)end按键“8”:通过get函数获得输入的字符,函数strcat获得字符'8',并用set 函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','8') ;elsetextString =strcat(textString,'8');set(handles.edit1,'String',textString)end按键“9”:通过get函数获得输入的字符,函数strcat获得字符'9',并用set 函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','9') ;elsetextString =strcat(textString,'9');set(handles.edit1,'String',textString)endB.四则运算函数:按键“+”:通过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);endtextString =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);endtextString =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);endtextString =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);endtextString =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);endtextString =strcat(textString,'.');set(handles.edit1,'String',textString)按键“+/-”:通过get函数获得输入的字符,函数strcat获得字符'+/-',并用set函数进行显示输出if(strcmp(textString,'0')==1)set(handles.edit1,'String','0') ;elsea = strread(textString, '%f');a=0-a;set(handles.edit1,'String',a)endC.科学计算函数:按键“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');elsea = 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');elsea = 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') ;elsea = 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') ;elsea = 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)按键“√”:通过get函数获得输入的字符,函数strread获得输入字符,并用sqrt函数计算结果,set函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)set(handles.edit1,'String','0') ;elsea = strread(textString, '%f');a=sqrt(a);set(handles.edit1,'String',a)endD. 退格键:通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:textString = get(handles.edit1,'String');if(strcmp(textString,'0')==1)&(jj==0)set(handles.edit1,'String','0') ;elsess=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))四、问题和解决方法本次课程设计中遇到的最大问题是数据进行清零后,再输入其他的数据,清零后的字符‘0’仍会保留,会影响其他数据,解决办法是在要输入的数字比如‘1’的程序中加入判断程序:if(strcmp(textString,'0')==1)set(handles.edit1,'String','1') ;那么问题就解决了.五、心得体会本次课程设计相对比较简单,主要是对一些数字,例如1-9的代码程序的了解以及一些简单运算比如‘+’‘-’‘*’‘/’sin ,cos ,tan等等的代码程序的了解,在设计的过程中也遇到不少的问题,当遇到这些问题时,经过及时的与同学以及老师的交流,最终都能顺利地解决。