1、设计目的 运用 MATLAB 实现 MATLAB 的 GUI 程序设计。 2、题目分析 2.1 课程设计的基本要求: A. 熟悉和掌握 MATLAB 程序设计方法。 B. 掌握 MATLAB GUI 程序设计。 2.2 课程设计的内容 要求利用 MATLAB GUI 设计实现一个图形用户界面的计算器程序,要求实现: A. 具有友好的用户图形界面。实现十进制数的加、减、乘、除、乘方、取模等简单计算。 B. 科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。 C. 能够保存上次历史计算的答案,显示答案存储器中的内容。 D. 有清除键,能清除操作。 E. 独立存储器功能,使之可以直接输入存储器,可与存储器中的数值相加减。能够清除独立存储器中的内容。 2.3 题目分析 本题目通过 MATLAB 的 GUI 程序设计较为简单,在 GUI 设计中主要用到三种控件,显示框用到文本编辑框(edit text),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。然后再通过各个按钮的回调函数,实现简单的计算功能。 3、总体设计 首先用 MATLAB GUI 功能,在绘制一个静态文本框和一个文本编辑框,以及32 个命令按钮,调整好各控件大小、颜色,整体布局如图所示: 然后通过双击个按钮来改写其属性,在m 文件中编写其回调函数,最后在运行调试。 4、具体设计 4.1 各功能界面设计 GUI 设计界面: 4.2 各功能模块实现 算法设计: A. 数字键设计:0—9 以及小数点函数都一样,只是参数不同: global jj textString = get(handles.text1,'String'); if(strcmp(textString,'0.')==1)&(jj==0) set(handles.text1,'String','1') ; else textString =strcat(textString,'1'); set(handles.text1,'String',textString) end jj=0; B. 四则运算函数: textString = get(handles.text1,'String'); textString =strcat(textString,'+'); set(handles.text1,'String',textString) C. 科学计算函数: textString = get(handles.text1,'String'); if(strcmp(textString,'0.')==1) set(handles.text1,'String','0.') ; else a = strread(textString, '%f'); a=sin(a); set(handles.text1,'String',a) end 或 textString=handles.text1; textString=sin(str2num(get(handles.text1,'String'))*pi/180); set(handles.text1,'String',num2str(textString)) D. ...