(word完整版)用MATLAB GUI设计简单计算器
基于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 design.Design calculator, mainly considering the ease of use, function calculators calculator interface and function of the common level of design.By 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 Settings.Calculator the functions are: 0 ~ 9, according to input and decimal square root and logarithm of input.Arithmetic, sine function and cosine function, tangent function and the arcsine function,arccosine function,the calculation of the arctangent function and so on.Finally running debugging, implementation design based on Matlab GUI calculator.Keywords: Matlab GUI calculator目录摘要 (4)Abstracts (4)目录 (6)第一章绪论 (8)1.MATLAB简介: (8)2.本文安排: (8)第二章GUI设计界面 (10)2.1打开GUI (11)2.2.添加按钮 (11)2.3.根据按钮的作用及视觉效果做一定的修改 (11)2.4.保存、添加功能函数 (12)2.4.1 数字键编写 (12)2.4.2 符号键的编写 (13)2.4.3 运算符“=”的编写 (13)2.4.4 按键“←back”的编写 (13)2.4.5 按键“清空”的编写 (14)2.4.6 按键“退出”的编写 (14)第三章计算器的使用和抽样检验 (15)3.1 除法运算(÷) (15)3.2 平方运算(^2) (15)3.3 函数cos (∏/3)的计算 (17)3.4 函数arcsin(∏/3)的计算 (17)3.5 以2为底的对数(log 2)的计算 (18)3.6 总结: (18)第四章特殊函数的源代码及总结 (19)函数代码及思路: (19)总结:问题及其优化 (21)第五章心得体会 (22)参考文献 (23)第一章绪论1.MATLAB简介:MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。
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 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).然后在通过各个按钮的回调函数,实现简单的计算功能。
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简易计算器
设计说明书题目:基于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).然后在通过各个按钮的回调函数,实现简单的计算功能。
用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 后添加“+”进行运算。
(完整word版)用MATLAB实现计算器程序源代码(word文档良心出品)
function varargout = caculator(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @caculator_OpeningFcn, ...'gui_OutputFcn', @caculator_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 caculator_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;set(handles.edit1,'string','0');set(handles.edit5,'string','0');guidata(hObject, handles);function varargout = caculator_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;function edit1_Callback(hObject, eventdata, handles)function edit1_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit2_Callback(hObject, eventdata, handles)function edit2_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit3_Callback(hObject, eventdata, handles)function edit3_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction pushbutton1_Callback(hObject, eventdata, handles)handles.num1=strcat(get(handles.edit1,'string'),'+');set(handles.edit1,'string',handles.num1);guidata(hObject,handles);function pushbutton2_Callback(hObject, eventdata, handles) handles.num2=strcat(get(handles.edit1,'string'),'-');set(handles.edit1,'string',handles.num2);guidata(hObject,handles);function pushbutton3_Callback(hObject, eventdata, handles) handles.num3=strcat(get(handles.edit1,'string'),'*');set(handles.edit1,'string',handles.num3);guidata(hObject,handles);function pushbutton4_Callback(hObject, eventdata, handles) handles.num4=strcat(get(handles.edit1,'string'),'/');set(handles.edit1,'string',handles.num4);guidata(hObject,handles);function pushbutton_1_Callback(hObject, eventdata, handles) handles.shu1=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu1=strcat(handles.yuanshu,handles.shu1);if length(handles.shu1)<2;elseif (length(handles.shu1)>=2)&&(handles.shu1(end-1)==')')&& (handles.shu1(1)=='l')temp=handles.shu1(end);handles.shu1(end)=handles.shu1(end-1);handles.shu1(end-1)=temp;endset(handles.edit1,'string',handles.shu1);guidata(hObject, handles);function pushbutton_2_Callback(hObject, eventdata, handles) handles.shu2=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu2=strcat(handles.yuanshu,handles.shu2);if length(handles.shu2)<2;elseif (length(handles.shu2)>=2)&&(handles.shu2(end-1)==')')&& (handles.shu2(1)=='l')temp=handles.shu2(end);handles.shu2(end)=handles.shu2(end-1);handles.shu2(end-1)=temp;endset(handles.edit1,'string',handles.shu2);guidata(hObject, handles);function pushbutton_4_Callback(hObject, eventdata, handles) handles.shu4=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu4=strcat(handles.yuanshu,handles.shu4);if length(handles.shu4)<2;elseif (length(handles.shu4)>=2)&&(handles.shu4(end-1)==')')&& (handles.shu4(1)=='l')temp=handles.shu4(end);handles.shu4(end)=handles.shu4(end-1);handles.shu4(end-1)=temp;endset(handles.edit1,'string',handles.shu4);guidata(hObject, handles);function pushbutton_3_Callback(hObject, eventdata, handles) handles.shu3=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu3=strcat(handles.yuanshu,handles.shu3);if length(handles.shu3)<2;elseif (length(handles.shu3)>=2)&&(handles.shu3(end-1)==')')&& (handles.shu3(1)=='l')temp=handles.shu3(end);handles.shu3(end)=handles.shu3(end-1);handles.shu3(end-1)=temp;endset(handles.edit1,'string',handles.shu3);guidata(hObject, handles);function pushbutton_5_Callback(hObject, eventdata, handles) handles.shu5=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu5=strcat(handles.yuanshu,handles.shu5);if length(handles.shu5)<2;elseif (length(handles.shu5)>=2)&&(handles.shu5(end-1)==')')&& (handles.shu5(1)=='l')temp=handles.shu5(end);handles.shu5(end)=handles.shu5(end-1);handles.shu5(end-1)=temp;endset(handles.edit1,'string',handles.shu5);guidata(hObject, handles);function pushbutton_9_Callback(hObject, eventdata, handles) handles.shu9=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu9=strcat(handles.yuanshu,handles.shu9);if length(handles.shu9)<2;elseif (length(handles.shu9)>=2)&&(handles.shu9(end-1)==')')&& (handles.shu9(1)=='l')temp=handles.shu9(end);handles.shu9(end)=handles.shu9(end-1);handles.shu9(end-1)=temp;endset(handles.edit1,'string',handles.shu9);guidata(hObject, handles);function pushbutton_7_Callback(hObject, eventdata, handles) handles.shu7=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu7=strcat(handles.yuanshu,handles.shu7);if length(handles.shu7)<2;elseif (length(handles.shu7)>=2)&&(handles.shu7(end-1)==')')&& (handles.shu7(1)=='l')temp=handles.shu7(end);handles.shu7(end)=handles.shu7(end-1);handles.shu7(end-1)=temp;endset(handles.edit1,'string',handles.shu7);guidata(hObject, handles);function pushbutton_8_Callback(hObject, eventdata, handles) handles.shu8=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu8=strcat(handles.yuanshu,handles.shu8);if length(handles.shu8)<2;elseif (length(handles.shu8)>=2)&&(handles.shu8(end-1)==')')&& (handles.shu8(1)=='l')temp=handles.shu8(end);handles.shu8(end)=handles.shu8(end-1);handles.shu8(end-1)=temp;endset(handles.edit1,'string',handles.shu8);guidata(hObject, handles);function pushbutton_6_Callback(hObject, eventdata, handles) handles.shu6=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu6=strcat(handles.yuanshu,handles.shu6);if length(handles.shu6)<2;elseif (length(handles.shu6)>=2)&&(handles.shu6(end-1)==')')&& (handles.shu6(1)=='l')temp=handles.shu6(end);handles.shu6(end)=handles.shu6(end-1);handles.shu6(end-1)=temp;endset(handles.edit1,'string',handles.shu6);guidata(hObject, handles);function pushbutton18_Callback(hObject, eventdata, handles) handles.jieguo=get(handles.edit1,'string');handles.jieguo=strcat('=',handles.jieguo);eval(['handles.result''1' handles.jieguo]);set(handles.edit5,'string',num2str(handles.result1));guidata(hObject,handles);function pushbutton_0_Callback(hObject, eventdata, handles) handles.shu0=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu0=strcat(handles.yuanshu,handles.shu0);if length(handles.shu0)<2;elseif (length(handles.shu0)>=2)&&(handles.shu0(end-1)==')')&& (handles.shu0(1)=='l')temp=handles.shu0(end);handles.shu0(end)=handles.shu0(end-1);handles.shu0(end-1)=temp;endset(handles.edit1,'string',handles.shu0);guidata(hObject, handles);function pushbutton20_Callback(hObject, eventdata, handles) handles.shu10=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');handles.shu10=strcat(handles.yuanshu,handles.shu10);set(handles.edit1,'string',handles.shu10);guidata(hObject, handles);function pushbutton21_Callback(hObject, eventdata, handles) function edit5_Callback(hObject, eventdata, handles)function edit5_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction pushbutton22_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.fanhao=strcat('-(',handles.yuanshu,')');set(handles.edit1,'string',handles.fanhao);guidata(hObject, handles);function pushbutton23_Callback(hObject, eventdata, handles)set(handles.edit1,'string','0');set(handles.edit5,'string','0');guidata(hObject, handles);function pushbutton24_Callback(hObject, eventdata, handles)result=questdlg('ÕæµÄÒªÍ˳ö£¿','Í˳öÈ·ÈÏ','È·¶¨','È¡Ïû','È¡Ïû'); if result=='È·¶¨', close(gcf); endfunction pushbutton25_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.sin=strcat('sin(',handles.yuanshu,')');set(handles.edit1,'string',handles.sin);guidata(hObject, handles);function pushbutton26_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.cos=strcat('cos(',handles.yuanshu,')');set(handles.edit1,'string',handles.cos);guidata(hObject, handles);function pushbutton27_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.tan=strcat('tan(',handles.yuanshu,')');set(handles.edit1,'string',handles.tan);guidata(hObject, handles);function pushbutton28_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.ln=strcat('reallog(',handles.yuanshu,')');set(handles.edit1,'string',handles.ln);guidata(hObject, handles);function pushbutton29_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.log=strcat('log',handles.yuanshu,'()');set(handles.edit1,'string',handles.log);guidata(hObject, handles);function pushbutton30_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.daoshu=strcat('1/(',handles.yuanshu,')');set(handles.edit1,'string',handles.daoshu);guidata(hObject, handles);function pushbutton31_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.sqrt=strcat('sqrt(',handles.yuanshu,')');set(handles.edit1,'string',handles.sqrt);guidata(hObject, handles);function pushbutton32_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.pingfang=strcat('(',handles.yuanshu,')^2');set(handles.edit1,'string',handles.pingfang);guidata(hObject, handles);function pushbutton33_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.ncifang=strcat('(',handles.yuanshu,')^N');set(handles.edit1,'string',handles.ncifang);guidata(hObject, handles);function pushbutton35_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.kuohao=strcat('(',handles.yuanshu,')');set(handles.edit1,'string',handles.kuohao);guidata(hObject, handles);function pushbutton36_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.yuanshu=handles.yuanshu(1:(end-1));if length(handles.yuanshu)<1handles.yuanshu='0';endset(handles.edit1,'string',handles.yuanshu);guidata(hObject, handles);% --- Executes on button press in pushbutton37.function pushbutton37_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.exp=strcat('exp(',handles.yuanshu,')');set(handles.edit1,'string',handles.exp);guidata(hObject, handles);% --- Executes when user attempts to close figure1.function figure1_CloseRequestFcn(hObject, eventdata, handles)% hObject handle to figure1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Hint: delete(hObject) closes the figuredelete(hObject);%--------------------------------------------------------------------function Untitled_14_Callback(hObject, eventdata, handles)% hObject handle to Untitled_14 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_15_Callback(hObject, eventdata, handles)set(gcf,'color','red')% hObject handle to Untitled_15 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_16_Callback(hObject, eventdata, handles)set(gcf,'color','blue')% hObject handle to Untitled_16 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_17_Callback(hObject, eventdata, handles)set(gcf,'color','green')% hObject handle to Untitled_17 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_18_Callback(hObject, eventdata, handles)set(gcf,'color','black')% hObject handle to Untitled_18 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_19_Callback(hObject, eventdata, handles)set(gcf,'color','yellow')% hObject handle to Untitled_19 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_20_Callback(hObject, eventdata, handles)set(gcf,'color','m')% hObject handle to Untitled_20 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) function Untitled_1_Callback(hObject, eventdata, handles)function Untitled_2_Callback(hObject, eventdata, handles)function Untitled_3_Callback(hObject, eventdata, handles)function Untitled_4_Callback(hObject, eventdata, handles)function Untitled_4_CreateFcn(hObject, eventdata, handles)function Untitled_5_Callback(hObject, eventdata, handles)function Untitled_6_Callback(hObject, eventdata, handles)。
运用MatlabGUI制作四则运算的计算器
Matlab GUI 制作计算器1.在GUI界面中添加控件,效果如下:2. 在1 23.oooo 9的callback属性添加代码global curstrinput= '1';(不同的添加不同数值,2的按钮添加input= '2'disstr=strcat(curstr,i nput);curstr=disstr;set(ha ndles.edit1, 'Stri ng' ,disstr);3. 在‘ + ',‘ - ',‘ x ',‘/'的callback 属性添加代码global computetype computetype=1;global curstrglobal comstrcomstr=curstr;4.在 ='的 callback 添加global curstrglobal comstrglobalcomputetype switch computetypeend 5. 在归零callback 添加 global curstr curstr= '';set(handles.edit1,'String' ,” );6. 在退出callback 添加button=questdlg( '确定要退出?' , 'warning!' ); curstr= IIset(ha ndles.editl. 'String',屮);(不同按钮添加不同符号)case 1n=str2 num(comstr); b=str2nu m(curstr);c=n+b;set(ha ndles.editl,curstr =nu m2str(c);case 2n=str2 num(comstr); b=str2nu m(curstr); c=n-b;set(ha ndles.edit1,curstr =nu m2str(c);case 3n=str2 num(comstr); b=str2nu m(curstr); c=n*b;set(ha ndles.edit1,curstr =nu m2str(c);case 4n=str2 num(comstr); b=str2nu m(curstr); c=n/b;set(ha ndles.edit1, 'String' ,c); 'String' ,c); 'String' ,c); 'String' ,c);if (button== 'Yes')close;end7. 在openning function 中添力卩global curstr curstr= ''最后运行,得到一个能进行四则运算的计算器U I:3I後0四则运算计轉器荀单四即运算计尝器990上_l丄八出退。
最新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课程设计说明书课题:设计简易计算器开发环境:MATLAB GUIDE作者:系别:专业:时间:实验目的:1、熟悉MATLAB的主要控件使用方法。
2、熟悉MATLAB的GUI设计流程。
实验环境:编程软件:MATLAB7.0实验内容与结果:使用MATLAB的GUI接口设计一个简单的计算器。
效果图:一、布局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数字按键下编写此类程序。
基于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 design.Design calculator, mainly considering the ease of use, function calculators calculator interface and function of the common level of design.By 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 Settings.Calculator the functions are: 0 ~ 9, according to input and decimal square root and logarithm of input.Arithmetic, sine function and cosine function, tangent function and the arcsine function,arccosine function,the calculation of the arctangent function and so on.Finally running debugging, implementation design based on Matlab GUI calculator.Keywords: Matlab GUI calculator目录摘要 (4)Abstracts (4)目录 (6)第一章绪论 (8)1.MATLAB简介: (8)2.本文安排: (8)第二章GUI设计界面 (10)2.1打开GUI (11)2.2.添加按钮 (11)2.3.根据按钮的作用及视觉效果做一定的修改 (11)2.4.保存、添加功能函数 (12)2.4.1 数字键编写 (12)2.4.2 符号键的编写 (13)2.4.3 运算符“=”的编写 (13)2.4.4 按键“←back”的编写 (13)2.4.5 按键“清空”的编写 (14)2.4.6 按键“退出”的编写 (14)第三章计算器的使用和抽样检验 (15)3.1 除法运算(÷) (15)3.2 平方运算(^2) (15)3.3 函数cos (∏/3)的计算 (17)3.4 函数arcsin(∏/3)的计算 (17)3.5 以2为底的对数(log 2)的计算 (18)3.6 总结: (18)第四章特殊函数的源代码及总结 (19)函数代码及思路: (19)总结:问题及其优化 (21)第五章心得体会 (22)参考文献 (23)第一章绪论1.MATLAB简介:MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。
matlabgui计算表达式
matlabgui计算表达式创建一个简单的MATLAB GUI来计算表达式可以使用MATLAB的图形用户界面开发环境(GUIDE)或手动编写代码。
下面是使用手动编写代码创建一个简单计算器GUI的步骤:1. 打开MATLAB,并创建一个新的MATLAB脚本文件。
2. 在脚本文件中,使用`uicomponent`函数创建一个文本框,用于输入表达式。
例如:```matlabedittext1 = uicomponent('Style', 'text', 'String', '', 'Position', [100 50 100 20]);```3. 使用`uicomponent`函数创建一个命令按钮,用于计算表达式。
例如:```matlabpushbutton1 = uicomponent('Style', 'pushbutton', 'String', '计算', 'Position', [150 100 50 20]);4. 使用`addlistener`函数添加事件监听器,以便在单击按钮时触发计算。
例如:```matlabaddlistener(pushbutton1, 'ButtonPushedFcn', 'PostSet', @(s,e)calculate());```5. 在脚本中定义一个名为`calculate`的函数,该函数将获取文本框中的表达式并计算其值。
例如:```matlabfunction calculate()expression = get(edittext1, 'String');result = eval(expression);disp(result);end6. 最后,使用`start`函数启动GUI。
基于MATLABGUI的多功能计算器设计
基于MATLAB/GUI的多功能计算器设计摘要:随着信息技术的发展,数据变得越来越繁杂,针对数据的运算也越来越频繁,计算器在我们日常生活学习中扮演越来越重要角色。
本文基于MATLAB设计的GUI多功能计算器,包括三部分:简易计算器、科学计算器和程序员计算器。
其中,简易计算器包括了常用的加减乘除;科学计算器在加减乘除上,添加了正余弦、阶乘和对数等常用的数学计算;程序员计算器包括了二进制、八进制、十六进制的相互转换和二进制的与、或和异或等逻辑运算。
此多功能计算器改进了以前功能单一的计算器,具有较强的实用性。
关键词:MATLAB;GUI ;多功能计算器Design of Multi Function Calculator Based on MATLAB/GUIAbstract:With the development of information technology, the data become more and more complicated, according to data operations have become increasingly frequent, the calculator is playing a more and more important role in learning in our daily life. In this paper, MATLAB design of GUI based multi functional calculator, consists of three parts: a simple calculator, scientific calculator and programmers calculator. The simple calculator, including common add, subtract, multiply and divide; scientific calculator in add, subtract, multiply and divide, add the commonly used mathematical cosine, factorial and logarithm calculation; programmers calculator includes the conversion of binary, octal, hexadecimal and binary sixteen and, or and XOR logic operation. The multi—function calculator before improved single function has a strong practical.Key words: MATLAB;GUI; Multi Function Calculator目录第一章引言 (1)第二章总体设计 (2)2。
GUI设计的简易计算器附程序
电子信息工程系实验报告课程名称:MATLAB应用Array实验项目名称:GUI计算器设计实验时间:2012-11-22班级:测控081 姓名:学号:810707132实验目的:1.熟悉MATLAB的菜单设计方法2. 熟悉MATLAB的主要控件使用方法3. 熟悉MATLAB的GUI设计流程4.运用MATLAB的GUI设计一个简单的计算器实验环境:MATLAB7.8实验内容:function varargout = jisuanqi1(varargin)% JISUANQI1 M-file for jisuanqi1.fig% JISUANQI1, by itself, creates a new JISUANQI1 or raises the existing% singleton*.%% H = JISUANQI1 returns the handle to a new JISUANQI1 or the handle to% the existing singleton*.%% JISUANQI1('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in JISUANQI1.M with the given input arguments. %% JISUANQI1('Property','Value',...) creates a new JISUANQI1 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before jisuanqi1_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application % stop. All inputs are passed to jisuanqi1_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 jisuanqi1% Last Modified by GUIDE v2.5 05-Dec-2010 22:24:59% Begin initialization code - DO NOT EDITgui_Singleton = 1;'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @jisuanqi1_OpeningFcn, ...'gui_OutputFcn', @jisuanqi1_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 jisuanqi1 is made visible.function jisuanqi1_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 jisuanqi1 (see VARARGIN)% 以下是本实验初始化部分程序的代码:global c p t c1 f;f=0;t=0;p=2;c1=num2str(0);c= '0.';set(handles.edit1,'String',c);guidata(hObject, handles);% Choose default command line output for jisuanqi1handles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes jisuanqi1 wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = jisuanqi1_OutputFcn(hObject, eventdata, handles)% 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 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)% 以下是本实验数字‘8’的程序代码:global t f c;if f=='=';c='0';c=8+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elseif t==0;c=8+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elsec=strcat(c,'8');set(handles.edit1,'String',c);guidata(hObject, handles);t=t+1;end% --- 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)% 以下是本实验数字‘5’的程序代码:global t f c;if f=='=';c='0';c=5+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);elseif t==0;c=5+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elsec=strcat(c,'5');set(handles.edit1,'String',c);guidata(hObject, handles);t=t+1;end% --- 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)% 以下是本实验数字‘2’的程序代码:global t f c;if f=='=';c='0';c=2+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elseif t==0;c=2+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elsec=strcat(c,'2');set(handles.edit1,'String',c);guidata(hObject, handles);t=t+1;end% --- 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)% 以下是本实验‘+/-’的程序代码:global c t p;c=strcat('-',c);set(handles.edit1,'String',c);guidata(hObject, handles);p=p+1;elsec=strrep(c,'-','');set(handles.edit1,'String',c);guidata(hObject, handles);p=p+1;end% --- 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 c t;t=1;c=strcat(c,'.');set(handles.edit1,'String',c);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)% 以下是本实验数字‘3’的程序代码:global t f c;if f=='=';c='0';c=3+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elseif t==0;c=3+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elsec=strcat(c,'3');set(handles.edit1,'String',c);t=t+1;end% --- 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)% 以下是本实验数字‘6’的程序代码:global t f c;if f=='=';c='0';c=6+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elseif t==0;c=6+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elsec=strcat(c,'6');set(handles.edit1,'String',c);guidata(hObject, handles);t=t+1;end% --- 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)% 以下是本实验数字‘9’的程序代码:global t f c;if f=='=';c='0';c=9+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elseif t==0;c=9+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);elsec=strcat(c,'9');set(handles.edit1,'String',c);guidata(hObject, handles);t=t+1;end% --- 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 c c1 f t;if f=='-';c1=str2num(c1)-str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='+';elseif f=='/'&str2num(c)==0;c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject, handles);c=num2str(0);c1=num2str(0);f='=';elseif f=='/';c1=str2num(c1)/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='+';elseif f=='*';c1=str2num(c)*str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='+';elsec1=str2num(c)+str2num(c1);c1=num2str(c1);guidata(hObject, handles);c=num2str(0);f='+';endt=0;% --- 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 c c1 f t;if (c1==num2str(0)&f==0)|(c1==num2str(0)&f=='=')c1=str2num(c)-str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='-';elseif f=='+';c1=str2num(c)+str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='-';elseif f=='/'&str2num(c)==0;c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject, handles);c=num2str(0);c1=num2str(0);f='=';elseif f=='/';c1=str2num(c1)/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='-';elseif f=='*';c1=str2num(c)*str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);c=num2str(0);f='-';elsec1=str2num(c1)-str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='-';endt=0;% --- 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 c c1 f t;if f=='-';c1=str2num(c1)-str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='*';elseif f=='+';c1=str2num(c)+str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='*';elseif f=='/'&str2num(c)==0;c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject, handles);c=num2str(0);c1=num2str(0);f='=';elseif f=='/';c1=str2num(c1)/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);f='*';elseif (c1==num2str(0)&f==0)|(c1==num2str(0)&f=='=');c1=str2num(c)*(str2num(c1)+1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='*';elsec1=str2num(c)*str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='*';endt=0;% --- 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)% 以下是本实验‘/’的程序代码:global c c1 f t;if f=='-';c1=str2num(c1)-str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='/';elseif f=='+';c1=str2num(c)+str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='/';elseif f=='/'&str2num(c)==0;c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject, handles);c=num2str(0);c1=num2str(0);elseif f=='*';c1=str2num(c)*str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='/';elseif (c1==num2str(0)&f==0)|(c1==num2str(0)&f=='=');c1=str2num(c)/(str2num(c1)+1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='/';elsec1=str2num(c1)/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);f='/';endt=0;% --- Executes on button press in pushbutton15.function pushbutton15_Callback(hObject, eventdata, handles)% 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)% 以下是本实验数字‘0’的程序代码:global t f c;if f=='=';c='0';c=0+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elseif t==0;c=0+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elsec=strcat(c,'0');set(handles.edit1,'String',c);guidata(hObject, handles);t=t+1;end% --- Executes on button press in pushbutton16.function pushbutton16_Callback(hObject, eventdata, handles)% hObject handle to pushbutton16 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% 以下是本实验数字‘1’的程序代码:global t f c;if f=='=';c='0';c=1+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elseif t==0;c=1+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elsec=strcat(c,'1');set(handles.edit1,'String',c);guidata(hObject, handles);t=t+1;end% --- 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)% 以下是本实验数字‘4’的程序代码:global t f c;if f=='=';c='0';c=4+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elseif t==0;c=4+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elsec=strcat(c,'4');set(handles.edit1,'String',c);guidata(hObject, handles);t=t+1;endfunction 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');end% --- 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)% 以下是本实验数字‘7’的程序代码:global t f c;if f=='=';c='0';c=7+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elseif t==0;c=7+str2num(c)*10;c= num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);elsec=strcat(c,'7');set(handles.edit1,'String',c);guidata(hObject, handles);t=t+1;end% --- 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)% 以下是本实验‘CE’的程序代码:global c c1 f;f=0;c1=num2str(0);c=0;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject, handles);c=num2str(0);t=0;% --- 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 c c1 f t;if f=='-';c1=str2num(c1)-str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);elseif f=='/'&str2num(c)==0;c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject, handles);c=num2str(0);f=0;elseif f=='/';c1=str2num(c1)/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);elseif f=='*';c1=str2num(c)*str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);elsec1=str2num(c)+str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);endt=0;f='=';c=c1;c1=num2str(0);% --- Executes on button press in pushbutton21.function pushbutton21_Callback(hObject, eventdata, handles)% hObject handle to pushbutton21 (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 pushbutton22.function pushbutton22_Callback(hObject, eventdata, handles)% hObject handle to pushbutton22 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% 以下是本实验‘sqrt’的程序代码:global c c1 f t;c1=sqrt(str2num(c))c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);c=c1;c1=num2str(0);t=0;f='=';% --- Executes on button press in pushbutton23.function pushbutton23_Callback(hObject, eventdata, handles)% hObject handle to pushbutton23 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% 以下是本实验‘π’的程序代码:global c;c=num2str(pi);set(handles.edit1,'String','¦Ð');guidata(hObject, handles);% --- Executes on button press in pushbutton24.function pushbutton24_Callback(hObject, eventdata, handles)% hObject handle to pushbutton24 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% 以下是本实验‘Backspace’的程序代码:global c t;if t==0;c=floor(str2num(c)/10);c=num2str(c);elseif t==2;c=floor(str2num(c));c=num2str(c);c=strcat(c,'.');t=t-1;elseif t==1;c=floor(str2num(c));c=num2str(c);t=t-1;elsec=(floor(str2num(c)*10^(t-1)/10))*10^(-t+2);c=num2str(c);t=t-1;endset(handles.edit1,'String',c);guidata(hObject, handles);% --- Executes on button press in pushbutton25.function pushbutton25_Callback(hObject, eventdata, handles)% hObject handle to pushbutton25 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% 以下是本实验‘1/x’的程序代码:global c c1 f t;if c==num2str(0)|c1==num2str(0);c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject, handles);elsec1=1/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);endc=num2str(0);c=c1;c1=num2str(0);t=0;f='=';% --- Executes on button press in pushbutton26.function pushbutton26_Callback(hObject, eventdata, handles)% hObject handle to pushbutton26 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% 以下是本实验‘exp’的程序代码:global c c1 f t;c1=exp(str2num(c))c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject, handles);c=num2str(0);c=c1;c1=num2str(0);t=0;f='=';实验结果及分析:实验心得:这次实验做的是电脑附件里的计算器,通过该实验我更熟悉掌握了MA TLAB中GUI各控件使用方法及应用,最后并利用GUI设计出了计算器,这些让我对GUI页面中的各控件的功能有了进一步的了解。
根据matlab的计算器制作
基于MATLA啲计算器制作从入门到高级项目一、建立GUI框架1,双击MATLAB图标(本实例使用的是MATLAB R2014 ,打开软件H 22,打开GUI操作界面。
有两种方式:a、在命令行窗口输入guide,然后点击回车。
b、先点击新建图标,在选择‘图形用户界面’。
得到如下窗口:左上方有两个按钮:‘新建GUI',‘打开现有GUI' 对于‘新建GUI':下方的选择框内有你可以选择建立的GUI类型,对于初学者一般选择第一个。
下方是用来设置保存文件位置的。
对于‘打开现有GUI':初学者可能会在网上下载一些GUI源程序,使用‘打开现有GUI',再浏览到文件所在位置便可。
3、构建GUI框架:在选择新建GUI并且确定后,会弹出如下窗口:在窗口的左边会有很多选项,可以一个个拖动编辑框内;是不是发现这些选项发挥的作用刚好就是我们平常打开一个网页或者一个软件进行操作时的选择按钮。
比较常见的有:按钮、单选按钮、拖动条、弹出式菜单等。
看到这里细心地朋友就会发现,MATLAB GU似乎可以开发出大型软件哦,只要你有足够的想象力,当你从一个小白进阶到 一个高手之后,你可以做到的。
本次计算器制作只需要用到静态文本(或者是动态文本) 用来做显示器,按钮(用来操作)。
也可以添加一个面板 用来修饰。
这个属性框比较复杂,没有必要一个个说清楚(有兴趣的 可以自己研究,其实理解起来也挺简单的)本次计算器制作,我们只需要知道以下几个:在拖出的选项上双击,会得出该选项的属性栏,比如说 双击一个按钮选项,你会得到:劃灿I ■ ■E- Backqrowrdcolcwe 匚二1二Beir^De^eted! dt *也艺|M> doubleForTCAngl*[0 0^2 23®旬MHrruil*船5eriF> Fonduer F^nHlnit>1 Fcn^Wdi^lEiwmal4 出IForie-^rDLindCpIcr f ■HnrdlllcVr^jbpE * HlTeitE| HofiJCirl^lAl! fomentLWter■■LWirUpable3|*mbenTopL91.9匚3整 C-illbirlc□ippingi C -TMtHFcri C'EleteFcn EriacronIt RfirtwnMna 、BackgroundColor 取值为颜色的预定义字符或RGB数值;缺省(就是默认的意思)值为浅灰色;b 、 ForegroundColor 取值为颜色的预定义字符或 数值,该属性定义控件对象标题字符的颜色;缺省值 为黑色;c 、 String 取值为字符串矩阵或块数组,定义控件对 象标题或选项内容;d 、 FontName 取值为控件标题等字体的字库名; e 、 FontSize 取值为数值,控制字体大小;f 、 Tag 取值为字符串,定义了控件的标识值,在任何 程序中都可以通过这个标识值控制该控件对象;g 、 Style 取值可以是 pushbutton (缺省值), radiobutton, checkbox, edit, text, slider, frame, popupmenu 或 listbox ;项目二、简单加法器的制作1、框架准备 ‘加法器':使用静态文本,在 string 处将文本修改为 (加法器),在 fontsize 可修改字体大小,在 BackgroundColor 处可修改背景颜色。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要基于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的开发环境,有助于MATLAB程序的GUI集成。
这样可以使开发者不必理会一大堆烦杂的代码,简化程序,但是同样可以实现向决策者提供图文并茂的界面,甚至达到多媒体的效果.可以说MATLAB提供了一个简便的开发环境,可以让开发者快速上手,提高了开发者的工作效率。
MATLAB的图形界面设计是通过对各种图形对象的操作来实现的,因此用户在使用的过程需要深入了解各种图形对象的特征、属性和操作。
由此可见,图形用户界面的设计、制作是一件比较繁琐的工作。
图形用户界面的创建一般有两种常用的方式:第一是通过使用m文件直接动态添加控件;第二是使用GUIDE快速生成GUI界面。
这两种实现的方法都需要使用M语言编程,但是技术的侧重点不同.所谓的GUIDE就是图形用户界面开发环境(Graphical User Interface Development Environment),它向用户提供了一系列的创建用户图形界面的工具。
这些工具大大简化了GUI设计和生成的过程.GUIDE可以完成的任务有如下两点:第一是输出GUI,第二是GUI编程。
GUIDE实际上是一套MATLAB工具集。
打开GUIDE,新建并且保存后,会生成相应的fig文件和m文件,fig文件储存有图形用户界面的外形、菜单构架等信息;m文件则储存设计的程序部分,如主程序、回调函数(Callback)等.在Layout编辑视图,可以使用如下工具:布局编辑器(Layout Editor),对齐工具(Alignment Tool),对象属性观察器(Property Inspector),对象浏览器(Object Browser),菜单编辑器Menu Editor)。
新建一个布局,可以在新窗口中添加各种控件:静态文本(Static Text),编辑(Edit Text),列表框(List box),滚动条(Slider),按钮(Push button),开关按钮(Toggle Button),单选按钮(Radio button),按钮组(Button Group),检查框(Check Box),弹出式菜单(Popup Menu),坐标轴(Axes),面板(Panel)。
每个控件的属性中都含有多个参数,对应各个参数,可以对控件的外观,位置等各方面属性进行修改。
其实GUIDE创建图形用户界面的基础也是图形句柄对象,只不过是具有很好的封装,使用起来简便,而且还能够做到可视化的开发,对于一般的用户使用GUIDE创建图形用户界面应用程序已经足够了。
本文利用GUIDE创建图形用户界面进行计算器设计,设计GUI界面时,应使总体界面简单大方、控件布局合理,最终达到总体界面友好的效果。
本次利用GUIDE创建图形用户界面进行计算器设计。
设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。
通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。
计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置,利用strcat函数实现把两个字符串连接起来。
利用length 函数来计算字符串的长度实现后退的功能。
利用eval函数将文本框中的字符串转换成数值表达式,利用M A T L A B计算出结果返回显示.利用坐标轴axes和ezplot函数进行图形的绘制,利用factorial 函数进行求阶乘运算。
利用str2num及num2str实现数值与字符之间的转换.一、设计目的:本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button).然后在通过各个按钮的回调函数,实现简单的计算功能。
二、设计方案:利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要求实现:A.实现十进制数的加、减、乘、除、简单计算。
B。
科学计算函数,包括正弦、余弦、正切、余切、开方、指数等函数运行。
C. 能够保存上次历史计算的答案,先是答案存储器中得内容。
D。
有清除键,能清除操作。
三、方案实施:通过MATLAB的gui程序设计较为简单,在gui设计中主要用到两种控件,显示框用到文本编辑框(edit text),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。
然后在通过各个按钮的回调函数,实现简单的计算功能。
计算器程序由MATLAB代码(.m文件)和GUI图形(。
fig)两个部分组成。
程序的使用方式是直接利用图形界面中的按键键入所需数值、运算符等,再按等于号即可得出结果。
首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及24个命令按钮,调整好各控件大小、颜色,整体布局如图所示:图—11、布局GUI1).打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:图–22)。
然后双击“Blank GUI(Default)”出现GUI窗口图-33).添加按钮图—44)。
根据按钮的作用及视觉效果做一定的修改把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面.最终设置的静态文本框为白色,其他按钮均为分红色。
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后添加“+”进行运算。
然后执行set(handles。
text1,'String’,textString)。
符号键‘-’、‘*’、‘/’与‘+'的运算函数类似。
“平方运算",主要是由“^2”功能实现.(3)运算符“="的编程:textString = get(handles.text1,’String’);ans =eval(textString);“eval”的作用是将符号表达式转换成数值表达式。
再由set(handles。
text1,’String',ans)输出。
(4)按键“back"编程:即显示一个空字符:set(handles。
text1,’String’,’') ;按键“back”编程:textString = get(handles。
text1,'String’);set(handles。
text1,’String’,’’) ;ss=char(textString);n=length(textString);textString=ss(1:w—1);%将w个字符串转成w—1个,即删除了末位字符set(handles.text1,’String’,textString)(5)按键“清空”:把静态文本框的字符清空,返回一个空格set(handles.text1,'String','’)(6)三角函数的编辑function cos_Callback(hObject, eventdata, handles)textString=handles.text1;textString=cos(str2num(get(handles。