matlab计算器设计.docx

上传人:scccc 文档编号:14468371 上传时间:2022-02-06 格式:DOCX 页数:12 大小:15.94KB
返回 下载 相关 举报
matlab计算器设计.docx_第1页
第1页 / 共12页
matlab计算器设计.docx_第2页
第2页 / 共12页
matlab计算器设计.docx_第3页
第3页 / 共12页
matlab计算器设计.docx_第4页
第4页 / 共12页
matlab计算器设计.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《matlab计算器设计.docx》由会员分享,可在线阅读,更多相关《matlab计算器设计.docx(12页珍藏版)》请在三一文库上搜索。

1、课程设计报告题 目数学计算器的开发I I课程名称软件设计院部名称机电工程学院专 业 自动化班级学生姓名学号课程设计地点课程设计学时指导教师金陵科技学院教务处制一、课程设计应达到的目的本课程是为自动化专业本科生开设的专业课程设计课。通过本课程的课程设计实 践帮助学生巩固关于数据结构、算法、程序设计的基础知识。通过本课程设计,学生 可以初步掌握开发一个小型实用系统的基本方法,提高运用编程软件实现GUI程序设计的能力 二、 课程设计的基本要求:要求利用MATLABGU I设计实现一个图形用户界面的计算器程序,要求实现:A.具有友好的用户图形界面。实现十进制数的加、减、乘、除、乘方、取模等简 单计算。

2、(必做)B.科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数 等函数运行。(必做)C.能够保存上次历史计算的答案,先是答案存储器中得内容。(必做)D.有清除键,能消除操作,并对不正确的表达式能指出其错误原因。(必做)E.独立存储器功能,使之可以直接输入存储器,可与存储器中的数值相加减。能够消除独立存储器中的内容(选做)利用MATLAGUI功能,在绘制一个静态文本框和一个文本编辑框,以及命令按钮,调整好各控件大小、颜色,整体布局如图所示:然后通过双击个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。三、课题设计内容与步骤3.1 各功能界面设计GUI设计界面

3、:3.2 各功能模块实现算法设计:A.数字键设计:09以及小数点函数都一样,只是参数不同:textString = get(handles.edit1,String);if(strcmp(textString,0)=1)set(handles.edit1,String,1);elsetextString =strcat(textString,1);set(handles.edit1,String,textString)endB.四则运算函数:textString = get(handles.edit1,String);ss=char(textString);l=length(textStrin

4、g);if(ss(l)=+|ss(l)=-|ss(l)=*|ss(l)=/|ss(l)=.)textString=ss(1:l-1);endtextString =strcat(textString,+);set(handles.edit1,String,textString)C.科学计算函数:textString = get(handles.edit1,String);a = strread(textString, %f);a=sin(a);set(handles.edit1,String,a)D.退格键:通过取屏幕值,计算出其字符长度,然后取其前 N-1项的值来实现退格:textStrin

5、g = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)set(handles.edit1,String,0);elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.edit1,String,textString)E.清屏键函数:set(handles.edit1,String,0);F.+/-的实现textstring = get(handles.edit1,String);if(strcmp(textString,0)=

6、1)set(handles.edit1,String,0);elsea = strread(textString, %f);a=0-a;set(handles.edit1,String,a) end3.3 各模块实现结果A.数字键:B.四则运算函数:C.科学计算函数:Sin1的计算结果=3.4 、结果分析计算(1+9) /5计算结果=2计算3*4计算结果=12arcsin1 计算结果log2 0的报错:通过输入的数据与0字符比较,若两者相等,则显示“ error”进行报错,结果如下:经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。四、课程设计源代码A.数字键设计:按键“0 :

7、通过get函数获得输入的字符,函数strcat获得字符0,并用set函数 进行显示输出textString = get(handles.edit1,String);if(strcmp(textString,0)=1)set(handles.edit1,String,0); elsetextString =strcat(textString,0);set(handles.edit1,String,textString) end按键“1 :通过get函数获得输入的字符,函数strcat 进行显示输出textstring = get(handles.edit1,String);if(strcmp(t

8、extString,0)=1)set(handles.edit1,String,1);elsetextstring =strcat(textString,1);set(handles.edit1,String,textString) end按键“2:通过get函数获得输入的字符,函数strcat进行显示输出textstring = get(handles.edit1,String);if(strcmp(textString,0)=1)set(handles.edit1,String,2);elsetextstring =strcat(textString,2);set(handles.edit

9、1,String,textString) End按键“3:通过get函数获得输入的字符,函数strcat进行显示输出textstring = get(handles.edit1,String);if(strcmp(textString,0)=1)set(handles.edit1,string,3);elsetextstring =strcat(textstring,3);set(handles.edit1,string,textstring) end按键“4:通过get函数获得输入的字符,函数strcat进行显示输出textstring = get(handles.edit1,String)

10、;if(strcmp(textString,0)=1)set(handles.edit1,String,4);elsetextstring =strcat(textString,4);set(handles.edit1,String,textString) end按键“5:通过get函数获得输入的字符,函数strcat获得字符1,并用set函数获得字符2,并用set函数获得字符3,并用set函数获得字符4,并用set函数获得字符5,并用set函数进行显示输出textstring = get(handles.edit1,String);if(strcmp(textString,0)=1) set

11、(handles.edit1,String,5);elsetextstring =strcat(textString,5);set(handles.edit1,String,textString)end按键“6:通过get函数获得输入的字符,函数strcat进行显示输出textstring = get(handles.edit1,String);if(strcmp(textString,0)=1)set(handles.edit1,String,6);elsetextstring =strcat(textString,6);set(handles.edit1,String,textString

12、) end按键“7:通过get函数获得输入的字符,函数strcat进行显示输出textstring = get(handles.edit1,String);if(strcmp(textString,0)=1)set(handles.edit1,String,7);elsetextstring =strcat(textString,7);set(handles.edit1,String,textString) end按键“8:通过get函数获得输入的字符,函数strcat进行显示输出textstring = get(handles.edit1,string);if(strcmp(textstri

13、ng,0)=1)set(handles.edit1,string,8);elsetextstring =strcat(textstring,8);set(handles.edit1,string,textstring) end按键“9:通过get函数获得输入的字符,函数strcat获得字符6,并用set函数获得字符7,并用set函数获得字符8,并用set函数获得字符9,并用set函数进行显示输出textstring = get(handles.edit1,String);if(strcmp(textString,0)=1)set(handles.edit1,String,9);elsetext

14、string =strcat(textString,9);set(handles.edit1,String,textString) end并用set函数并用set函数并用set函数B.四则运算函数:按键“+” :通过get函数获得输入的字符,函数strcat获得字符+,并用set函数 进行显示输出textString = get(handles.edit1,String);ss=char(textString);l=length(textString);if(ss(l)=+11ss(1)=-11ss(1)=*11ss(1)=/11ss(1)=.)textString=ss(1:1-1);end

15、textString =strcat(textString,+);set(handles.edit1,String,textString)按键“-:通过get函数获得输入的字符,函数strcat获得字符-, 进行显示输出textString = get(handles.edit1,String);ss=char(textString);l=length(textString);if(ss(l)=+|ss(l)=-|ss(l)=*|ss(l)=/|ss(l)=.)textString=ss(1:l-1);endtextString =strcat(textString,-);set(handle

16、s.edit1,String,textString)按键:通过get函数获得输入的字符,函数strcat获得字符*, 进行显示输出textString = get(handles.edit1,String);ss=char(textString);l=length(textString);if(ss(l)=+|ss(l)=-|ss(l)=*|ss(l)=/|ss(l)=.)textString=ss(1:l-1);endtextString =strcat(textString,*);set(handles.edit1,String,textString)按键“/ :通过get函数获得输入的字

17、符,函数strcat获得字符/,进行显示输出textString = get(handles.edit1,String);ss=char(textString);l=length(textString);if(ss(l)=+|ss(l)=-|ss(l)=*|ss(l)=/|ss(l)=.) textString=ss(1:l-1);end textString =strcat(textString,/);set(handles.edit1,String,textString) 按键:通过get函数获得输入的字符,函数strcat获得字符.,并用set函数 进行显示输出textString =

18、get(handles.edit1,String);ss=char(textString);l=length(textString);if(ss(l)=+11ss(1)=-11ss(1)=*11ss(1)=/11ss(1)=.)textString=ss(1:1-1);endtextString =strcat(textString,.);set(handles.edit1,String,textString)按键“+/-” :通过get函数获得输入的字符,函数strcat获得字符+/-,并用set函数进行显示输出if(strcmp(textString,0)=1)set(handles.ed

19、it1,String,0);elsea = strread(textString, %f);a=0-a;set(handles.edit1,String,a) endC.科学计算函数:按键“sin ” :通过get函数获得输入的字符,函数strread获得输入字符,并用sin 函数计算结果,set函数进行显示输出textString = get(handles.edit1,String);a = strread(textString, %f);a=sin(a);set(handles.edit1,String,a)按键“cos”通过get函数获得输入的字符,函数strread获得输入字符,并用

20、cos函 数计算结果,set函数进行显示输出textString = get(handles.edit1,String);a = strread(textString, %f);a=cos(a);set(handles.edit1,String,a)按键“tan”:通过get函数获得输入的字符,函数strread获得输入字符,并用tan函 数计算结果,set函数进行显示输出textString = get(handles.edit1,String);if(strcmp(textString,1.57)=1)|(strcmp(textString,-1.57)=1)set(handles.edi

21、t1,String,inf);elsea = strread(textString, %f);a=tan(a);set(handles.edit1,String,a) end按键“cot” :通过get函数获得输入的字符,函数strread获得输入字符,并用cot函数计算结果,set函数进行显示输出textString = get(handles.edit1,String);if(strcmp(textString,3.14)=1)|(strcmp(textString,0)=1)|(strcmp(textString,-3.14)=1);set(handles.edit1,String,in

22、f);elsea = strread(textString, %f);a=cot(a);set(handles.edit1,String,a)end按键“arcsin ” :通过get函数获得输入的字符,函数strread获得输入字符,并用 arcsin函数计算结果,set函数进行显示输出textString = get(handles.edit1,String);a = strread(textString, %f);a=arcsin(a);set(handles.edit1,String,a)按键“arccos :通过get函数获得输入的字符,函数strread获得输入字符,并用 arcc

23、os函数计算结果,set函数进行显示输出 textString = get(handles.edit1,String);a = strread(textString, %f);a=arccos(a);set(handles.edit1,String,a)按键“arctan :通过get函数获得输入的字符,函数strread获得输入字符,并用 arctan函数计算结果,set函数进行显示输出textString = get(handles.edit1,String);a = strread(textString, %f);a=arctan(a);set(handles.edit1,String,

24、a)按键“arccot :通过get函数获得输入的字符,函数strread获得输入字符,并用 arccot函数计算结果,set函数进行显示输出textString = get(handles.edit1,String);a = strread(textString, %f);a=arccot(a);set(handles.edit1,String,a)按键“log2 ” :通过get函数获得输入的字符,函数strread获得输入字符,并用log2 函数计算结果,set函数进行显示输出textString = get(handles.edit1,String);if(strcmp(textStr

25、ing,0)=1)set(handles.edit1,String,erro);elsea = strread(textString, %f);a=log2(a);set(handles.edit1,String,a)end按键“log10 :通过get函数获得输入的字符,函数strread获得输入字符,并用log10 函数计算结果,set函数进行显示输出textstring = get(handles.edit1,String);if(strcmp(textString,0)=1)set(handles.edit1,String,error);elsea = strread(textStri

26、ng, %f);a=sin(a);set(handles.edit1,String,a)end按键“xt:通过get函数获得输入的字符,函数strread获得输入字符,并用语句a=a*a计算结果,set函数进行显示输出textstring = get(handles.edit1,String);a = strread(textString, %f);a=a*a;set(handles.edit1,String,a)按键“,:通过get函数获得输入的字符,函数strread获得输入字符,并用sqrt函 数计算结果,set函数进行显示输出textstring = get(handles.edit1

27、,String);if(strcmp(textString,0)=1)set(handles.edit1,String,0);elsea = strread(textString, %f);a=sqrt(a);set(handles.edit1,String,a)endD.退格键:通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:textstring = get(handles.edit1,String);if(strcmp(textString,0)=1)&(jj=0)set(handles.edit1,String,0);elsess=char(textString);l=

28、length(textString);textString=ss(1:l-1);set(handles.edit1,String,textString)E.清屏“C键函数:将所有的字符置为0set(handles.edit1,String,0);F. “二”的实现:通过get函数获得输入的字符,并用eval函数计算结果,set函 数进行显示输出a=get(handles.edit1,string)b=eval(a)set(handles.edit1,string,num2str(b)四、问题和解决方法本次课程设计中遇到的最大问题是数据进行清零后,再输入其他的数据,清零后 的字符0仍会保留,会影响其他数据,解决办法是在要输入的数字比如1的程序中加入判断程序:if(strcmp(textString,0)=1)set(handles.edit1,String,1);那么问题就解决了 .五、心得体会本次课程设计相对比较简单,主要是对一些数字,例如 1-9的代码程序的了解以 及一些简单运算比如+-* / sin ,cos ,tan等等的代码程序的了解,在设计的过程中也遇到不少的问题,当遇到这些问题时,经过及时的与同学以及老师的交 流,最终都能顺利地解决。这次课程设计,使我进一步加深了对课本知识的了解和掌 握,巩固了所学的基本知识,让我在学习的过程中不断地提高自己,锻炼自己。

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1