您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于GUI的简易计算器设计
MATLAB课程设计基于GUI的简易计算器设计绪论随着MATLAB的逐渐发展,其功能已经不再限于最初繁琐的数学运算了,由于技术的精进,软件的性能也越来越好,并且由于其操作简单、兼容性好的特性,用途也越来越广泛。本文就将介绍一种基于MATLAB制作的简易的计算器。通过MATLAB实现计算器一般可以采用两种方式:一是纯软件编译实现;另外一种是结合MATLAB软件与GUI界面的方式。GUI是GraphicalUserInterface的简称,即图形用户界面,通常人机交互图形化用户界面设计经常读做“goo-ee”,准确来说GUI就是屏幕产品的视觉体验和互动操作部分。由于采用GUI的方便快捷,所以本文介绍的就是在MATLAB中基于GUI的简易计算器设计。一、计算器的预期功能我们希望可以设计一种简单的计算器,能进行加、减、乘、除法运算,输入文本框显示为常量多项式,输出文本框显示为精确到小数点后十位的数值。计算器包含十个数字键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属性。三、设计步骤3.1计算器界面基本设计3.2编写回调函数3.3调试运行程序3.1.1进入GUI开发环境打开MATLAB2014b,在工作空间输入GUIDE,进入GUI开发环境。点击确定,新建GUI文件。3.1.2创建计算器控件我们需要0~9数字键、基本运算键“+-×÷”、功能键等20个,输入和输出用可编辑文本框,显示文字用静态文本框等,如图:3.1.3按键设置选中一个按键,单击鼠标右键,选择“属性检查器”,更改每个按键的属性,各按键属性对照见控件属性表。右图即为属性检查器界面更改完成后的计算器界面图。控件属性表3.2编写回调函数3.2.1数字键的回调函数3.2.1运算符号的回调函数3.2.3功能键的回调函数注意:编写回调函数一定要按照控件顺序表编写!3.2.1数字键的回调函数functionpushbutton18_Callback(hObject,eventdata,handles)%数字键0的回调函数:%get函数获取输入文本框edit1的string属性,赋值给numbers,数值类型为char;numbers=get(handles.edit1,'string');%字符串合并函数strcat()将按键0与numbers的值合并,将合并后的字符串返回到输入文本框edit1的string属性;set(handles.edit1,'string',strcat(numbers,'0'));%同理编写其余数字键、小数点键、小括号键、运算符号键;3.2.1运算符号的回调函数signs=get(handles.edit1,'string');set(handles.edit1,'string',strcat(signs,'+'));%等号“=”号键的回调函数;%get函数获取输入文本框edit1的string属性,并赋值与x;x=get(handles.edit1,'string');%利用执行字符串命令eval()计算用户输入的表达式,得到的结果为char型;y1=eval(x);%利用字符串输出格式控制函数sprintf()将字符型常量精确到小数点后十位;y=sprintf('%.10f',y1);%利用属性设置函数set()将字符型结果返回到输出文本框edit2的string属性;set(handles.edit2,'string',y);3.2.3功能键的回调函数DEL的回调函数%---Executesonbuttonpressinpushbutton11.s1=get(handles.edit1,'string');%length(s1)函数获取s1字符串的长度,并利用s1(1:length(s1)-1)获取s1的第一个到第(length(s1)-1)个字符串,已达到删除前一个字符的目的;s2=s1(1:(length(s1)-1));%利用属性设置函数set()将字符型结果返回到输入文本框edit1的string属性;set(handles.edit1,'string',s2);CLC的回调函数%---Executesonbuttonpressinpushbutton12.%清空输入文本框edit1的string属性;set(handles.edit1,'String','');%清空输出文本框edit2的string属性;set(handles.edit2,'String','0');3.3调试运行程序编写完回调函数后,就可以进行程序的调试了。运行脚本文件,或是在GUI界面点击运行程序,调试后最终结果如下图所示。点击界面上的按键,输入显示在input的文本对话框,结果显示在output对话框。例如输入3*(3.1+4.9)/2,结果显示为12.0000000000。如上图所示可见计算器已经具备简单的基本计算功能。谢谢观看~13812345678YourName
本文标题:基于GUI的简易计算器设计
链接地址:https://www.777doc.com/doc-5423623 .html