MATLAB数学计算器课程设计.doc

上传人:文库蛋蛋多 文档编号:2388450 上传时间:2023-02-17 格式:DOC 页数:17 大小:1.37MB
返回 下载 相关 举报
MATLAB数学计算器课程设计.doc_第1页
第1页 / 共17页
MATLAB数学计算器课程设计.doc_第2页
第2页 / 共17页
MATLAB数学计算器课程设计.doc_第3页
第3页 / 共17页
MATLAB数学计算器课程设计.doc_第4页
第4页 / 共17页
MATLAB数学计算器课程设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《MATLAB数学计算器课程设计.doc》由会员分享,可在线阅读,更多相关《MATLAB数学计算器课程设计.doc(17页珍藏版)》请在三一办公上搜索。

1、一课程设计目的本课程是为自动化专业本科生开设的专业课程设计课。通过本课程的课程设计实践帮助学生巩固关于数据结构、算法、程序设计的基础知识。通过本课程设计,学生可以初步掌握开发一个小型实用系统的基本方法,提高运用编程软件实现GUI程序设计的能力。二课程设计题目及要求设计题目:数学计算器的开发。 2.1课程设计的基本要求:A. 熟悉和掌握MATLAB 程序设计方法。B. 掌握MATLAB GUI 程序设计。2.2课程设计的内容要求利用MATLAB 设计实现一个图形用户界面的计算器程序,要求实现:A. 具有友好的用户图形界面。实现十进制数的加、减、乘、除、乘方、取模等简单计算。B. 科学计算函数,包

2、括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。C. 能够保存上次历史计算的答案,先是答案存储器中得内容。D. 有清除键,能清除操作,并对不正确的表达式能指出其错误原因。2.3题目分析本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,显示框用到文本编辑框(edit text),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。然后在通过各个按钮的回调函数,实现简单的计算功能。2.4掌握书写程序设计开发文档的能力2、具体设计2.1 各功能界面设计GUI设计界面:然后通过双击个按钮来改写其

3、属性,在m文件中编写其回调函数,最后在运行调试2.2 各功能模块实现算法设计:A. 数字键设计:09以及小数点函数都一样,只是参数不同:global jja= get(handles.edit1,String);if(strcmp(a,0)=1)&(jj=0) set(handles.edit1,String,1) ;elsea=strcat(a,1);set(handles.edit1,String,a)endjj=0;B. 四则运算函数:global jjglobal ja=get(handles.edit1,String)a=strcat(a,+)if(jj=0) set(handles

4、.edit1,String,a) jj=1;endj=0;C. 科学计算函数:s = get(handles.edit1,String);if(strcmp(s,0)=1) set(handles.edit1,String,0) ;elsea = strread(s, %f);a=sin(a);set(handles.edit1,String,a)endD. 退格键:通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:global jjb = get(handles.edit1,String);if(strcmp(b,0)=1)&(jj=0) set(handles.edit1,

5、String,0) ;else ss=char(b); l=length(b); b=ss(1:l-1);set(handles.edit1,String,b) endjj=0;E. 清屏键函数:set(handles.edit1,String,0) ;2.3 各模块实现结果A. 数字键:B. 四则运算函数:C. 科学计算函数:Sin1的计算结果=3、结果分析3.1测试结果:(1+9)/5计算结果=22*8计算结果=16arcsin1计算结果=经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。3、课程设计源代码gui_Singleton = 1;gui_State = stru

6、ct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, ns_OpeningFcn, . gui_OutputFcn, ns_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:)

7、;else gui_mainfcn(gui_State, varargin:);endfunction ns_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles);function varargout = ns_OutputFcn(hObject, eventdata, handles)varargout1 = handles.output;function edit1_Callback(hObject, eventdata, handles)fun

8、ction edit1_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);endfunction pushbutton1_Callback(hObject, eventdata, handles)global jja=get(handles.edit1,String);if(strcmp(a,0.)=1)&(jj=0) set(handles

9、.edit1,String,0.) ;else ss=char(a); l=length(a); a=ss(1:l-1);set(handles.edit1,String,a)endjj=0;function pushbutton2_Callback(hObject, eventdata, handles)global jset(handles.edit1,String,0)j=0;function pushbutton3_Callback(hObject, eventdata, handles)global jja=get(handles.edit1,String)if(strcmp(a,0

10、)=1)&(jj=0) set(handles.edit1,String,1)else a=strcat(a,1)set(handles.edit1,String,a)endjj=0function pushbutton4_Callback(hObject, eventdata, handles)global jja=get(handles.edit1,String)if(strcmp(a,0)=1)&(jj=0) set(handles.edit1,String,4)else a=strcat(a,4)set(handles.edit1,String,a)endjj=0function pu

11、shbutton5_Callback(hObject, eventdata, handles)global jjglobal ja=get(handles.edit1,String)a=strcat(a,+)if(jj=0) set(handles.edit1,String,a) jj=1;endj=0;function pushbutton6_Callback(hObject, eventdata, handles)global jja=get(handles.edit1,String)if(strcmp(a,0)=1)&(jj=0) set(handles.edit1,String,6)e

12、lse a=strcat(a,6)set(handles.edit1,String,a)endjj=0function pushbutton7_Callback(hObject, eventdata, handles)global jja=get(handles.edit1,String)if(strcmp(a,0)=1)&(jj=0) set(handles.edit1,String,8)else a=strcat(a,8)set(handles.edit1,String,a)endjj=0function pushbutton8_Callback(hObject, eventdata, h

13、andles)global jja=get(handles.edit1,String)if(strcmp(a,0)=1)&(jj=0) set(handles.edit1,String,0)else a=strcat(a,0)set(handles.edit1,String,a)endfunction pushbutton9_Callback(hObject, eventdata, handles)global jja=get(handles.edit1,String)if(strcmp(a,0)=1)&(jj=0) set(handles.edit1,String,2)else a=strc

14、at(a,2)set(handles.edit1,String,a)endjj=0function pushbutton10_Callback(hObject, eventdata, handles)global jja=get(handles.edit1,String)if(strcmp(a,0)=1)&(jj=0) set(handles.edit1,String,7)else a=strcat(a,7)set(handles.edit1,String,a)endjj=0function pushbutton11_Callback(hObject, eventdata, handles)g

15、lobal jja=get(handles.edit1,String)if(strcmp(a,0)=1)&(jj=0) set(handles.edit1,String,9)else a=strcat(a,9)set(handles.edit1,String,a)endjj=0function pushbutton12_Callback(hObject, eventdata, handles)global jjglobal ja=get(handles.edit1,String)a=strcat(a,-)if(jj=0) set(handles.edit1,String,a) jj=1;end

16、j=0;function pushbutton13_Callback(hObject, eventdata, handles)global jjglobal ja=get(handles.edit1,String)a=strcat(a,*)if(jj=0) set(handles.edit1,String,a) jj=1;endj=0;function pushbutton14_Callback(hObject, eventdata, handles)global jja=get(handles.edit1,String)if(strcmp(a,0)=1)&(jj=0) set(handles

17、.edit1,String,3)else a=strcat(a,3)set(handles.edit1,String,a)endjj=0function pushbutton15_Callback(hObject, eventdata, handles)global jja=get(handles.edit1,String)if(strcmp(a,0)=1)&(jj=0) set(handles.edit1,String,5)else a=strcat(a,5)set(handles.edit1,String,a)endjj=0function pushbutton16_Callback(hO

18、bject, eventdata, handles)global jjglobal ja=get(handles.edit1,String)a=strcat(a,.)if(j=0) set(handles.edit1,String,a) jj=0;j=1endfunction pushbutton17_Callback(hObject, eventdata, handles)global jjglobal jglobal ma=get(handles.edit1,String)a=strcat(a,/)if(jj=0) set(handles.edit1,String,a) jj=1;endj

19、=0;m=0function pushbutton18_Callback(hObject, eventdata, handles)a=get(handles.edit1,String)b=eval(a)set(handles.edit1,String,num2str(b2)function pushbutton19_Callback(hObject, eventdata, handles)a=get(handles.edit1,String);b=eval(a)b=sqrt(b)set(handles.edit1,String,num2str(b)function pushbutton20_C

20、allback(hObject, eventdata, handles)a=get(handles.edit1,String);b=eval(a)b=b*pi/180;b=sin(b);set(handles.edit1,String,b)function pushbutton21_Callback(hObject, eventdata, handles)a=get(handles.edit1,String);b=eval(a)b=b*pi/180;b=cos(b);set(handles.edit1,String,b)function pushbutton22_Callback(hObjec

21、t, eventdata, handles)a=get(handles.edit1,String);b=eval(a)if(mod(b,90)=0)b=b*pi/180;b=tan(b);set(handles.edit1,String,b)else set(handles.edit1,String,error:) endfunction pushbutton23_Callback(hObject, eventdata, handles)a=get(handles.edit1,String);b=eval(a)if(b=0)b=b*pi/180;b=cot(b);set(handles.edi

22、t1,String,b)else set(handles.edit1,String,error)endfunction pushbutton24_Callback(hObject, eventdata, handles)a=get(handles.edit1,String)b=eval(a)b=asin(b)b=b*180/piset(handles.edit1,String,num2str(b)function pushbutton25_Callback(hObject, eventdata, handles)a=get(handles.edit1,String)b=eval(a)b=aco

23、s(b)b=b*180/piset(handles.edit1,String,num2str(b)function pushbutton26_Callback(hObject, eventdata, handles)a=get(handles.edit1,String)b=eval(a)b=atan(b)b=b*180/piset(handles.edit1,String,num2str(b)function pushbutton27_Callback(hObject, eventdata, handles)a=get(handles.edit1,String)b=eval(a)b=acot(

24、b)b=b*180/piset(handles.edit1,String,num2str(b)function pushbutton28_Callback(hObject, eventdata, handles)a=get(handles.edit1,String)b=eval(a)if(b0)b=log10(b)set(handles.edit1,String,num2str(b)else set(handles.edit1,String,error) endfunction pushbutton29_Callback(hObject, eventdata, handles)a=get(ha

25、ndles.edit1,String)if(b0)b=eval(a)b=log2(b)set(handles.edit1,String,num2str(b)else set(handles.edit1,String,error)endfunction pushbutton30_Callback(hObject, eventdata, handles)a=get(handles.edit1,String);b=eval(a)b=-bset(handles.edit1,String,num2str(b)function pushbutton31_Callback(hObject, eventdat

26、a, handles)global jja=get(handles.edit1,String)if(strcmp(a,0)=1)&(jj=0) set(handles.edit1,String,()else a=strcat(a,()set(handles.edit1,String,a)endjj=0function pushbutton32_Callback(hObject, eventdata, handles)a=get(handles.edit1,String)s1=strcat(a,)set(handles.edit1,String,s1)function pushbutton33_

27、Callback(hObject, eventdata, handles)global jja=get(handles.edit1,String)b=eval(a)set(handles.edit1,String,num2str(b)ans=b;function pushbutton34_Callback(hObject, eventdata, handles)function pushbutton35_Callback(hObject, eventdata, handles)global jjglobal ma=get(handles.edit1,String)if(strcmp(a,0)=

28、1)&(jj=0) set(handles.edit1,String,0)else a=strcat(a,0)set(handles.edit1,String,a)endjj=0;m=1;function Untitled_1_Callback(hObject, eventdata, handles)function Untitled_2_Callback(hObject, eventdata, handles)function Untitled_3_Callback(hObject, eventdata, handles)4、问题和解决方法四则运算符号可以无限连续显示,在四则运算符号程序中加

29、入判断前一个字符是否是运算符。清零后按下数字,数字前出现多余的零,在每个19数字前加一段判断程序去除清零产生的零。在定义正弦余弦等函数的时候,需要注意其定义域,值域的问题。当不太会解决时,请教了其他的同学,使得这些问题得到了解决。5、 心得体会 看似简单实则很难,在制作过程中,要注意很多细节性的问题,又要注意整体程序。通过了这一系列错误的思考,让我的思维更加的缜密,也让我在以后的工作生活中,得到了思维的锻炼。在课程设计中,和同学的讨论,老师的交流,也让我知道了自己的不足。在以后学习中,我会更加刻苦,以锻炼自己的能力。通过这次的软件制作,我充分体会到了MATLAB功能的丰富,更加深刻的认识了MATLAB,熟练了编程设计。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号