matlab课程设计含源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课程设计的意义
通常在开发一个实际的应用程序时都会尽量做到界面友好,最常用的方法就是使用图形界面,而Matlab是一门面向对象的语言。提供图形用户界面的应用程序能够使用的学习和使用更为方便容易。用户不需要知道应用程序究竟是怎样执行各种命令的,而只需要了解可见界面组件的使用方法;用户也不需要知道命令是怎样执行的,只要通过与界面交互就可以是指定的行为得以正确执行,这比用在DOS环境下运行的程序交互性友好。
在Matlab中,图形用户界面是一种包含多种对象的图形窗口。用户必须对每一种对象进行界面布局和编程,从而使用户激活GUI每个对象时都能够执行相应的行为。另外,用户必须保存和发布所创建的GUI,使得GUI能够真正地得到应用。
Matlab为用户开发图形界面提供了一个方便高效的集成开发环境:Matlab图形用户界面开发环境GUIDE。上述所有工作都能够使用GUIDE方便地实现,GUIDE主要是一个界面设计工具集,Matlab将所有GUIDE支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法。GUIDE将用户保存设计好的GUIDE界面保存在一个Fig资源文件中,同时还能够生成包含GUI初始化和组件界面布局控制的M文件。这个M文件为实现回调函数提供了一个参考框架。
这次不到一周课程设计使我对Matlab有了更深刻的认识,尤其是编程方面,掌握了一些编程思维,这对我们以后再学习其它语言是有很大的益处的,掌握一种编程思维方式比多学几门语言都有用。
二、课程设计的要求
1.用GUI设计一个计算器要求至少完成加、减、乘、除功能;扩充:矩阵运算(加、减、点乘,点除,乘,除,乘方等)-
2.设计一个绘图界面要求能选择绘制二维曲线,三维曲线,三维网格,三维曲面,柱状图,饼图等功能。
要求界面要整齐划一,富有美感。
}
需求分析和总体设计
一、任务描述
1.课程设计目标
用GUIDE编写一个简易计算器和一个能自动画图的程序。
2.功能描述
(1).计算器能实现的功能
…
加、减、乘、除、乘方、开方;
可以后退、清零;
可以更换背景颜色、查看帮助等操作。
(2).画图程序能实现的功能
可以画出二维曲线、三维曲线、三维网格、三维曲面、柱状图、饼图;
有简单菜单(就包括一项:文件)。
二、任务设计
1.计算器
`
(1).运行Matlab主程序;
(2).新建Gui文件命名为“”;
(3).在出现的界面创建需要的文本框(tag为wenben),按钮:0、1、2、3、4、5、6、7、8、9、CE(清零)、backplace(后退)、'+'、'-' 、 '*'、
'÷'、'√'、 '∧'、 '.' ,菜单:(文件,关闭);背景色(浅紫色,浅绿色,粉红色,默认色);帮助(关于)。
(4).编写M文件。
2.画图
(1).运行Matlab主程序;
(2).新建Gui文件并命名为“”;
:
(3).再出现的界面创建需要的坐标系(tag为zuobiaoxi),
按钮:二维曲线、三位曲线、三维网格、三维曲面、柱状图、饼状图;
(4).将它们的tag都设为它们的汉语拼音;
(5).编写M文件。
第3章编码
一、$
二、代码编写步骤
1、计算器
(1).主函数
在主函数fanction wodejisuanqi-OpeningFcn中编写主函数代码。先申请一个全局变量s ,用于判断文本框里的字符串是不是有:'+'、'-' 、 '*'、'÷',如果有的话,就把s置为1,否则,置为0。再获得文本框中字符串的句柄,并赋给变量h。申请全局变量p,为了判断响应等号时文本框里的运算符号,其中令p='\'是没有实际意义的,只是为了判断运算符不是加减乘除中的任一个。代码如下:
global s ;
h=get,'string');
switch(h)
case{'+','-','*','\'}
、
s=1;
otherwise
s=0;
end
global p;
p='\';
(2).数字函数
在这个函数里主要是判断文本框里是不是有加减乘除符号,
如果有的话,就把文本框中的字符串设置为数字,否则,再判断是不是0,是的话,就把文本框中的值置为数字,不是的话,就把数字连接到文本框中的字符串上。代码如下(以0为例):—
global s;
hh=; %把文本框的句柄赋给hh
if(s==1)
set(hh,'string','0');
s=0; %把s再次置为0,为了下次判断不出错
elseif(s==0)
h=get(hh,'string');
switch(h) %在判断h是否为0
)
case '0';
set(hh,'string','0');
otherwise
t=strcat(h,'0'); %把0连接到原有的字符后面
set(hh,'string',t);
end
end
(3).小数点函数
/
判断原来文本框里有几个小数点,如果有的话,就保持不变,否则,加上小数点。判断方法是用strfind函数,测试其返回的矩阵大小。代码如下:
hh=;
a=get(hh,'string');
set(hh,'string','.');
b=get(hh,'string');
c=strcat(a,'.');
[p,q]=size(m); %测试矩阵m
if q>=1
、
set(hh,'string',a);
else
set(hh,'string',c);