这学期开了软件工程工具及其应用这么课,任老师给我们教了matlab程序设计语言,做了课程实验,自己用matlab实现了计算器,发现MATLAB确实是一门很有用得计算机编程语言,它把数值计算和可视化环境集成到一起,非常直观,而且提供了大量的函数,功能强大,工应用范围广泛。
附代码,大家交流家流!
calculate.m
函数文件,实现基本计算,可以重用
function answer=calculate(Number1,Number2,opvalue)
switch (opvalue)
case '+'
answer=Number1+Number2;%加法
case '-'
answer=Number1-Number2;%减法
case '*'
answer=Number1*Number2;%乘法
case '/'
answer=Number1/Number2;%除法
case '^'
answer=Number1^Number2;%求幂次
case 'log'
answer=log(Number1)/log(Number2); %取对数
otherwise
end
界面主要回调函数
% --- 开启键盘
function btnStart_Callback(hObject, eventdata, handles)
global Number1;% --- 操作数1
global Number2;% --- 操作数2
global opvalue;% --- 运算符
global IsStart;% --- 开启键
global IsNew;% --- 操作数新得开始
Number1='';
Number2='';
opvalue = '';
IsNew='true';
IsStart='true';
set(handles.editDisplay,'string','0');
% --- 清除全部按键响应
function btnClearAll_Callback(hObject, eventdata, handles)
global Number1;% --- 操作数1
global Number2;% --- 操作数2
global opvalue;% --- 运算符
global IsNew;% --- 操作数新得开始
global IsStart;
if strcmp(IsStart,'true')==1
Number1='';
Number2='';
opvalue = '';
IsNew='true';
set(handles.editDisplay,'string','0');
end
% --- 按键清屏响应
function btnClear_Callback(hObject, eventdata, handles)
global Number2;% --- 操作数2
global IsNew;% --- 操作数新得开始
global IsStart;
if strcmp(IsStart,'true')==1
Number2='';
IsNew='true';
set(handles.editDisplay,'string','0');
end
% --- 回退字符响应
function btnBack_Callback(hObject, eventdata, handles)
global IsNew;% --- 操作数新得开始
global IsStart;
if strcmp(IsStart,'true')==1
temp=get(handles.editDisplay,'String');
if strcmp(temp,'0')~=1
if(max(size(temp))==1)
set(handles.editDisplay,'String',0);
IsNew='true';
else
set(handles.editDisplay,'String',temp(1:end-1));
end
else
set(handles.editDisplay,'String',0);
IsNew='false';
end
end
% --- 按键0响应
function btn0_Callback(hObject, eventdata, handles)
global IsNew;
global IsStart;
if strcmp(IsStart,'true')==1
temp=get(handles.editDisplay,'String');
if strcmp(temp,'0