1、基于MATLAB的数学计算器成绩 课程设计报告 题 目 数学计算器的开发 课 程 名 称 软件设计 院 部 名 称 机电工程学院 专 业 自动化 班 级 09自动化 学 生 姓 名 学 号 课程设计地点 C208 课程设计学时 2 周 指 导 教 师 金陵科技学院教务处制1课程设计目的本课程是为自动化专业本科生开设的专业课程设计课。通过本课程的课程设计实践帮助学生巩固关于数据结构、算法、程序设计的基础知识。通过本课程设计,学生可以初步掌握开发一个小型实用系统的基本方法,提高运用编程软件实现GUI程序设计的能力。2课程设计题目及要求设计题目:数学计算器的开发。 2.1课程设计的基本要求:A. 熟
2、悉和掌握MATLAB 程序设计方法。B. 掌握MATLAB GUI 程序设计。2.2课程设计的内容要求利用MATLAB 设计实现一个图形用户界面的计算器程序,要求实现:A. 具有友好的用户图形界面。实现十进制数的加、减、乘、除、乘方、取模等简单计算。B. 科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。C. 能够保存上次历史计算的答案,先是答案存储器中得内容。D. 有清除键,能清除操作,并对不正确的表达式能指出其错误原因。2.3题目分析本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,显示框用到文本编辑框(edit text
3、),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。然后在通过各个按钮的回调函数,实现简单的计算功能。2.4掌握书写程序设计开发文档的能力3课程设计方法与步骤首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及33个命令按钮,调整好各控件大小、颜色,整体布局如图所示:然后通过双击个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。4、具体设计4.1 各功能界面设计GUI设计界面:4.2 各功能模块实现算法设计:A. 数字键设计:09以及小数点函数都一样,只是参数不同:0:global jjtextStri
4、ng = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)|(jj=1) set(handles.edit1,String,0) ;elsetextString =strcat(textString,0);set(handles.edit1,String,textString)endjj=0;1:global jjtextString = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)|(jj=1) set(handles.edit1,String,1)
5、 ;elsetextString =strcat(textString,1);set(handles.edit1,String,textString)endjj=0;2:global jjtextString = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)|(jj=1) set(handles.edit1,String,2) ;elsetextString =strcat(textString,2);set(handles.edit1,String,textString)endjj=0;3:global jjtextS
6、tring = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)|(jj=1) set(handles.edit1,String,3) ;elsetextString =strcat(textString,3);set(handles.edit1,String,textString)endjj=0;4:global jjtextString = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)|(jj=1) set(handles.edit1,String
7、,4) ;elsetextString =strcat(textString,4);set(handles.edit1,String,textString)endjj=0;5:global jjtextString = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)|(jj=1) set(handles.edit1,String,5) ;elsetextString =strcat(textString,5);set(handles.edit1,String,textString)endjj=0;6:global jjte
8、xtString = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)|(jj=1) set(handles.edit1,String,6) ;elsetextString =strcat(textString,6);set(handles.edit1,String,textString)endjj=0;7:global jjtextString = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)|(jj=1) set(handles.edit1,Str
9、ing,7) ;elsetextString =strcat(textString,7);set(handles.edit1,String,textString)endjj=0;8:global jjtextString = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)|(jj=1) set(handles.edit1,String,8) ;elsetextString =strcat(textString,8);set(handles.edit1,String,textString)endjj=0;9:global j
10、jtextString = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)|(jj=1) set(handles.edit1,String,9) ;elsetextString =strcat(textString,9);set(handles.edit1,String,textString)endjj=0;B. 四则运算函数:+:global jja=get(handles.edit1,String)if(jj=2) s1=aelse s1=strcat(a,+)set(handles.edit1,String,s1)e
11、ndjj=2-:global jja=get(handles.edit1,String)if(jj=2) s1=aelse s1=strcat(a,-)set(handles.edit1,String,s1)endjj=2*:global jja=get(handles.edit1,String)if(jj=2) s1=aelse s1=strcat(a,*)set(handles.edit1,String,s1)endjj=2/:global jja=get(handles.edit1,String)if(jj=2) s1=aelse s1=strcat(a,/)set(handles.ed
12、it1,String,s1)endjj=2=:global jjglobal xa=get(handles.edit1,String)b=eval(a)if(x=1)&(b=inf) set(handles.edit1,String,NaN)else set(handles.edit1,String,num2str(b)endjj=1x=0C. 科学计算函数:Sin函数global jja=get(handles.edit1,String)b=eval(a)/180*pic=sin(b)set(handles.edit1,String,num2str(c)jj=1Cos函数global jja
13、=get(handles.edit1,String)b=eval(a)/180*pic=cos(b)set(handles.edit1,String,num2str(c)jj=1Tan函数global jja=get(handles.edit1,String)d=eval(a)if(d=90) set(handles.edit1,String,error)else b=d/180*pi; c=tan(b); set(handles.edit1,String,num2str(c);end jj=1Cot函数global jja=get(handles.edit1,String)b=eval(a)
14、/180*pic=cot(b)set(handles.edit1,String,num2str(c)jj=1Arcsin函数global jja=get(handles.edit1,String)b=eval(a)c=asin(b)*180/piset(handles.edit1,String,num2str(c)jj=1Arccos函数global jja=get(handles.edit1,String)b=eval(a)c=acos(b)*180/piset(handles.edit1,String,num2str(c)jj=1Arctan函数global jja=get(handles.edit1,String)b=eval(a)c=atan(b)*180/pise
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1