matlab计算器设计说明_第1页
matlab计算器设计说明_第2页
matlab计算器设计说明_第3页
matlab计算器设计说明_第4页
matlab计算器设计说明_第5页
已阅读5页,还剩12页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、行调试。三、课题设计内容与步骤3.1 各功能界面设计GUI设计界面: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',text

4、String)endB. 四则运算函数: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

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

6、(handles.edit1,'String','0') ;else ss=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,&#

7、39;0')=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计算结果=12 arcsin1计算结果的报错:通过输入的数据与0字符比较,若两者相等,则显示“error”进行报错,结果如下:经过计算,这些结果

8、均与实际结果相吻合,计算器的功能实现的较为完好。四、课程设计源代码A. 数字键设计:按键“0” :通过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

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

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

11、xtString)End按键“3” :通过get函数获得输入的字符,函数strcat获得字符'3',并用set函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')=1) set(handles.edit1,'String','3') ;elsetextString =strcat(textString,'3');set(handles.edit1,'String',textString)e

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

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

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

15、at获得字符'7',并用set函数进行显示输出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获得字符'

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

17、set函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')=1) set(handles.edit1,'String','9') ;elsetextString =strcat(textString,'9');set(handles.edit1,'String',textString)endB. 四则运算函数:按键“+” :通过get函数获得输入的字符,函数strcat获得字符'+',并用

18、set函数进行显示输出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',tex

19、tString)按键“-” :通过get函数获得输入的字符,函数strcat获得字符'-',并用set函数进行显示输出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(textSt

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

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

22、;-'|ss(l)='*'|ss(l)='/'|ss(l)='.') textString=ss(1:l-1);endtextString =strcat(textString,'/');set(handles.edit1,'String',textString)按键“.” :通过get函数获得输入的字符,函数strcat获得字符'.',并用set函数进行显示输出textString = get(handles.edit1,'String');ss=char(textStri

23、ng);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函数获得输入的字符,函数strcat获得字符'+/-',并用set函数进行显示输出if(st

24、rcmp(textString,'0')=1) set(handles.edit1,'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 = strre

25、ad(textString, '%f');a=sin(a);set(handles.edit1,'String',a)按键“cos”通过get函数获得输入的字符,函数strread获得输入字符,并用cos函数计算结果,set函数进行显示输出textString = get(handles.edit1,'String');a = strread(textString, '%f');a=cos(a);set(handles.edit1,'String',a)按键“tan”:通过get函数获得输入的字符,函数strrea

26、d获得输入字符,并用tan函数计算结果,set函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'1.57')=1)|(strcmp(textString,'-1.57')=1) set(handles.edit1,'String','inf');elsea = strread(textString, '%f');a=tan(a);set(handles.edit1,'String',a)end

27、按键“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','inf');elsea = strread(textSt

28、ring, '%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函数获得输入的字符

29、,函数strread获得输入字符,并用arccos函数计算结果,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 =

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

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

32、t函数获得输入的字符,函数strread获得输入字符,并用log10函数计算结果,set函数进行显示输出textString = get(handles.edit1,'String');if(strcmp(textString,'0')=1) set(handles.edit1,'String','error') ;elsea = strread(textString, '%f');a=sin(a);set(handles.edit1,'String',a)end按键“x2” :通过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,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论