基于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处可修改背景颜色。
‘白色编辑框’:使用可编辑文本,同样在 string 处把文本清除,在 fontsize修改字体大小。
‘加号(+)’、‘等号(=)’按钮:同理按上述方法修改文本和字体大小。
2、程序准备:先点击加号右键选择——查看回调——callback。
会得到绿色字体(一般为MATLAB程序注释)包围的程序,这个+程序就编辑在此段程序的下方,代表点击该按钮后将要执行的命令。
% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)a=get(handles.edit1,'string');b=get(handles.edit2,'string');c=str2num(a)+str2num(b);set(handles.edit3,'string',c)3、程序阅读a=get(handles.edit1,'string');MATLAB的一大亮点就是它包含了大量功能强大的函数,初学者在编写MATLAB命令时,只需要明确函数调用时的格式,再输入相应的数据即可。
通常可以百度搜索函数格式、功能及其用法。
或者借助MATLAB本身的help命令:在命令行窗口中输入 help get 再按回车便会得到检索结果(再点击get的参考页)。
这里有详细的函数介绍(全英文,要求有一定的英文水平哦)回到程序段‘a=’表示把右边的运算结果赋值给aget是函数,()内为运用该函数时需要输入的一些相关量handles.(注意符号哦,此处为点而不是逗号),为函数句柄,不深究。
edit1,'string':表示获取edit1的字符串,'string' 是该函数内不能缺少的一个量,string字面意思是字符串,通俗来说就是edit1中的内容为字符串。
这里又涉及到‘edit1’和‘字符串’两个概念‘edit1’——双击‘编辑框’按钮打开属性:找到如下两个选项上文提到Tag取值为字符串,定义了控件的标识值,在任何程序中都可以通过这个标识值控制该控件对象;既然要对可编辑文本进行操作,那么函数中自然免不了加入文本的标识值(记住它放在get函数中的位置就行)字符串——在MATLAB中一串数字可以有两个身份:数字和字符串。
当它是数字的时候可以正常的运算,而当他是字符时,就类似一段文字,没有办法对它进行运算处理的(当然作为字符串处理时有它的优势)。
我们可以调用相关函数来达到字符串和数字的相互转换。
a=get(handles.edit1,'string');通过以上分析,这条代码的意思就很明确了:获取edit1内的字符串(string)再赋值给ab=get(handles.edit2,'string');意思同上c=str2num(a)+str2num(b);现在a和b的属性都是字符串。
函数str2num的功能是把字符转换成数字,转换之后就可以计算了。
set(handles.edit3,'string',c)set为输出函数,格式与get类似,括号内多了一个c,意思很明显了,当然就是输出c的值了(这里数字可以不用转换可以直接作为字符串输出)。
4、代码总结:1、a=get(handles.edit1,'string');2、b=get(handles.edit2,'string');3、c=str2num(a)+str2num(b);4、set(handles.edit3,'string',c)(1)、把edit1内的字符串赋值给a;(2)、把edit2内的字符串赋值给b;(3)、分别把a、b字符串转换成数字,相加后赋值给c;(4)、在edit3内输出字符串c。
5、运行结果在a框中输入25,b框中输入23.再点击+,结果35显示在c框项目三、简单可编辑计算器的制作1、框架准备材料:可编辑文本、静态文本,按钮。
说明:除了项目2介绍的操作方法外,在设置可编辑文本时,在属性栏中有:可以设定对其方式,一般选定向右对齐。
2、程序准备:a=get(handles.edit1,'string');b=eval(a);set(handles.edit1,'string',b):a=get(handles.edit1,'string');a='';set(handles.edit1,'string',a);3、程序阅读:::a=get(handles.edit1,4、代码总结eval:串演算指令。
例:a='12+13';(单引号表示12+13为一个字符串)b=eval(a)结果:5、运行结果1、输入 12+232、点击计算按钮得到结果353、点击清空,回到初始状态项目四、简易入门计算器的制作1、框架准备:材料:面板、静态文本、按钮、辅助线说明:添加一个面板可以起到修饰作用,布局时一般使用辅助线对齐,从坐标处下拉即可。
2、程序准备::a=get(handles.text1,'string');b=strcat(a,'1');set(handles.text1,'string',b)(对应的其他数字只需修改:b=strcat(a,'1');处的‘1’,改成对应的数字即可):a=get(handles.text1,'string');b=strcat(a,'+');set(handles.text1,'string',b)(对应的其他数字只需修改:b=strcat(a,'+');处的‘+’,改成对应的符号即可):a=get(handles.text1,'string');b=eval(a)set(handles.text1,'string',b):a=get(handles.text1,'string');n=length(a)a=a(1:n-1);set(handles.text1,'string',a):a=get(handles.text1,'string');a='';set(handles.text1,'string',a)3、程序阅读:a=get(handles.text1,'string');%text1中字符串赋给ab=strcat(a,'1'); %在字符串a后面再添加一个1set(handles.text1,'string',b)%在text1中输出b:a=get(handles.text1,'string');b=strcat(a,'+');set(handles.text1,'string',b)(解释同上):a=get(handles.text1,'string');%text1中字符串赋给an=length(a) %把a字符串的长度的值赋给n a=a(1:n-1);%a由n个字符变成n-1个,去掉最后一个set(handles.text1,'string',a)% 在text1中输出a与见项目三4、代码总结strcat函数:字符串连接。