matlab计算机仿真之数学计算器的开发辽科大.docx
- 文档编号:11462351
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:22
- 大小:935.37KB
matlab计算机仿真之数学计算器的开发辽科大.docx
《matlab计算机仿真之数学计算器的开发辽科大.docx》由会员分享,可在线阅读,更多相关《matlab计算机仿真之数学计算器的开发辽科大.docx(22页珍藏版)》请在冰豆网上搜索。
matlab计算机仿真之数学计算器的开发辽科大
UniversityofScienceandTechnologyLiaoning
数学计算器的开发
课程名称:
计算机仿真(MATLAB语言)
院系:
电气工程及其自动化
班级:
电气14-2
指导教师:
设计者:
设计时间:
2016年11月27日
2016年11月27日
A.任务分工说明
序号
姓名
任务说明
1
报告设计
四则运算函数及退格键程序的编写
‘=’的实现
2
四则运算函数及退格键程序的编写
‘=’的实现
3
计算器界面设计
数字键设计
4
计算器界面设计
数字键设计
5
科学计算函数程序的编写
清屏‘c’键函数程序的编写
6
科学计算函数程序的编写
清屏‘c’键函数程序的编写
B.目录
一、设计说明
二、基本知识准备
2.1图形用户界面GUI
三.功能设计
3.1各功能界面设计
3.2各功能模块实现
3.3各模块实现结果
3.4结果分析
四.课程设计源代码
4.1数字键设计
4.2四则运算函数
4.3科学计算函数
4.4退格键
4.5清屏‘c’键函数
4.6‘=’的实现
五.问题和解决办法
一、设计说明
1.1、设计目的:
本课程是为自动化专业本科生开设的专业课程设计课。
通过本课程的课程设计实践帮助学生巩固关于数据结构、算法、程序设计的基础知识。
通过本课程设计,学生可以初步掌握开发一个小型实用系统的基本方法,提高运用编程软件实现GUI程序设计的能力。
1.2、设计要求:
要求利用MATLABGUI设计实现一个图形用户界面的计算器程序,
1.3、设计功能:
要求实现:
A.具有友好的用户图形界面。
实现十进制数的加、减、乘、除、乘方、取模等简单计算。
(必做)
B.科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。
(必做)
C.能够保存上次历史计算的答案,先是答案存储器中得内容。
(必做)
D.有清除键,能清除操作,并对不正确的表达式能指出其错误原因。
(必做)
E.独立存储器功能,使之可以直接输入存储器,可与存储器中的数值相加减。
能够清除独立存储器中的内容。
(选做)
利用MATLABGUI功能,在绘制一个静态文本框和一个文本编辑框,以及命令按钮,调整好各控件大小、颜色,整体布局如图所示:
然后通过双击个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。
二、基本知识准备
2.1图形用户界面GUI
图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、
按键、菜单、文字说明等对象(Objects)构成的一个用户界面。
用户通过
一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某
种动作或变化,比如实现计算、绘图等。
假如所从事的数据分析、解方程、计算结果可视工作比较单一,那么
一般不会考虑GUI的制作。
但是如果你想向别人提供应用程序,想进行某
种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那
么图形用户界面也许是最好的选择之一。
三、功能设计
3.1各功能界面设计
GUI设计界面:
3.2各功能模块实现
算法设计:
A.数字键设计:
0—9以及小数点函数都一样,只是参数不同:
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','1');
else
textString=strcat(textString,'1');
set(handles.edit1,'String',textString)
end
B.四则运算函数:
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)
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(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,'0')==1)
set(handles.edit1,'String','0');
else
a=strread(textString,'%f');
a=0-a;
set(handles.edit1,'String',a)
end
3.3各模块实现结果
A.数字键:
B.四则运算函数:
C.科学计算函数:
Sin1的计算结果=
3.4、结果分析
计算(1+9)/5
计算结果=2
计算3*4
计算结果=12
arcsin1计算结果
的报错:
通过输入的数据与‘0’字符比较,若两者相等,则显示“error”
进行报错,结果如下:
经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。
四、课程设计源代码
4.1数字键设计:
按键“0”:
通过get函数获得输入的字符,函数strcat获得字符'0',并用set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','0');
else
textString=strcat(textString,'0');
set(handles.edit1,'String',textString)
end
按键“1”:
通过get函数获得输入的字符,函数strcat获得字符'1',并用set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','1');
else
textString=strcat(textString,'1');
set(handles.edit1,'String',textString)
end
按键“2”:
通过get函数获得输入的字符,函数strcat获得字符'2',并用set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','2');
else
textString=strcat(textString,'2');
set(handles.edit1,'String',textString)
End
按键“3”:
通过get函数获得输入的字符,函数strcat获得字符'3',并用set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','3');
else
textString=strcat(textString,'3');
set(handles.edit1,'String',textString)
end
按键“4”:
通过get函数获得输入的字符,函数strcat获得字符'4',并用set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','4');
else
textString=strcat(textString,'4');
set(handles.edit1,'String',textString)
end
按键“5”:
通过get函数获得输入的字符,函数strcat获得字符'5',并用set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','5');
else
textString=strcat(textString,'5');
set(handles.edit1,'String',textString)
end
按键“6”:
通过get函数获得输入的字符,函数strcat获得字符'6',并用set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','6');
else
textString=strcat(textString,'6');
set(handles.edit1,'String',textString)
end
按键“7”:
通过get函数获得输入的字符,函数strcat获得字符'7',并用set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','7');
else
textString=strcat(textString,'7');
set(handles.edit1,'String',textString)
end
按键“8”:
通过get函数获得输入的字符,函数strcat获得字符'8',并用set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','8');
else
textString=strcat(textString,'8');
set(handles.edit1,'String',textString)
end
按键“9”:
通过get函数获得输入的字符,函数strcat获得字符'9',并用set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','9');
else
textString=strcat(textString,'9');
set(handles.edit1,'String',textString)
end
4.2四则运算函数:
按键“+”:
通过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);
end
textString=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)=='-'||ss(l)=='*'||ss(l)=='/'||ss(l)=='.')
textString=ss(1:
l-1);
end
textString=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)=='-'||ss(l)=='*'||ss(l)=='/'||ss(l)=='.')
textString=ss(1:
l-1);
end
textString=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)=='-'||ss(l)=='*'||ss(l)=='/'||ss(l)=='.')
textString=ss(1:
l-1);
end
textString=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)=='-'||ss(l)=='*'||ss(l)=='/'||ss(l)=='.')
textString=ss(1:
l-1);
end
textString=strcat(textString,'.');
set(handles.edit1,'String',textString)
按键“+/-”:
通过get函数获得输入的字符,函数strcat获得字符'+/-',并用set函数进行显示输出
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','0');
else
a=strread(textString,'%f');
a=0-a;
set(handles.edit1,'String',a)
end
4.3科学计算函数:
按键“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获得输入字符,并用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.edit1,'String','inf');
else
a=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','inf');
else
a=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获得输入字符,并用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=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”:
通过get函数获得输入的字符,函数strread获得输入字符,并用log2函数计算结果,set函数进行显示输出
textString=get(handles.edit1,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','error');
else
a=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');
else
a=strread(textString,'%f');
a=sin(a);
set(handles.edit1,'String',a)
end
按键“x^2”:
通过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,'String');
if(strcmp(textString,'0')==1)
set(handles.edit1,'String','0');
else
a=strread(textString,'%f');
a=sqrt(a);
set(handles.edit1,'String',a)
end
4.4退格键:
通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:
te
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 计算机仿真 数学 计算器 开发 辽科大