用Matlab设计科学计算器的代码
以下是一个用Matlab设计科学计算器的简单示例代码:
% 创建主窗口
fig = figure('Position',[200,200,300,400],'MenuBar','none','Name','科学计算器');
% 创建显示屏
display = uicontrol('Style','edit','Position',[20,330,260,50],'FontSize',20,'HorizontalAlignment','right');
% 创建数字按钮
numBtns = cell(4,3);
for i = 1:4
for j = 1:3
numBtns{i,j} = uicontrol('Style','pushbutton','Position',[20+(j-1)*90,270-(i-1)*60,80,50],'FontSize',16,'String',num2str((i-1)*3+j),'Callback',@numBtnCallback);
end
end
% 创建运算符按钮
operatorBtns = cell(4,1);
operators = {'+','-','*','/'};
for i = 1:4
operatorBtns{i} = uicontrol('Style','pushbutton','Position',[230,270-(i-1)*60,50,50],'FontSize',16,'String',operators{i},'Callback',@operatorBtnCallback);
end
% 创建等号按钮
equalBtn = uicontrol('Style','pushbutton','Position',[230,150,50,50],'FontSize',16,'String','=','Callback',@equalBtnCallback);
% 创建清除按钮
clearBtn = uicontrol('Style','pushbutton','Position',[20,150,80,50],'FontSize',16,'String','C','Callback',@clearBtnCallback);
% 创建小数点按钮
pointBtn = uicontrol('Style','pushbutton','Position',[110,150,50,50],'FontSize',16,'String','.','Callback',@pointBtnCallback);
% 创建正负号按钮
posnegBtn = uicontrol('Style','pushbutton','Position',[200,150,25,50],'FontSize',16,'String','+/-','Callback',@posnegBtnCallback);
% 数字按钮的回调函数
function numBtnCallback(hObject,eventdata)
num = str2double(get(hObject,'String'));
current = str2double(get(display,'String'));
if isnan(current) % 如果当前显示为空或非数字,则将数字直接显示
set(display,'String',num2str(num));
else % 如果当前显示为数字,则将数字追加到当前显示的末尾
set(display,'String',[get(display,'String') num2str(num)]);
end
end
% 运算符按钮的回调函数
function operatorBtnCallback(hObject,eventdata)
operator = get(hObject,'String');
setappdata(fig,'operator',operator);
setappdata(fig,'operand1',str2double(get(display,'String')));
set(display,'String','');
end
% 等号按钮的回调函数
function equalBtnCallback(hObject,eventdata)
operand1 = getappdata(fig,'operand1');
operand2 = str2double(get(display,'String'));
operator = getappdata(fig,'operator');
switch operator
case '+'
result = operand1 + operand2;
case '-'
result = operand1 - operand2;
case '*'
result = operand1 * operand2;
case '/'
result = operand1 / operand2;
end
set(display,'String',num2str(result));
end
% 清除按钮的回调函数
function clearBtnCallback(hObject,eventdata)
set(display,'String','');
rmappdata(fig,'operand1');
rmappdata(fig,'operator');
end
% 小数点按钮的回调函数
function pointBtnCallback(hObject,eventdata)
current = get(display,'String');
if isempty(strfind(current,'.')) % 如果当前显示中没有小数点,则追加小数点
set(display,'String',[current '.']);
end
end
% 正负号按钮的回调函数
function posnegBtnCallback(hObject,eventdata)
current = str2double(get(display,'String'));
set(display,'String',num2str(-current));
end
这个示例代码创建了一个简单的科学计算器界面,包含数字按钮、运算符按钮、等号按钮、清除按钮、小数点按钮和正负号按钮。每个按钮都有对应的回调函数来处理按钮点击事件。在点击数字按钮时,将数字追加到显示屏上;在点击运算符按钮时,保存当前的操作数和运算符;在点击等号按钮时,根据保存的操作数和运算符进行计算并显示结果;在点击清除按钮时,清空显示屏并清除保存的操作数和运算符;在点击小数点按钮时,追加小数点到显示屏上;在点击正负号按钮时,将当前数字取相反数
原文地址: https://www.cveoy.top/t/topic/hGl9 著作权归作者所有。请勿转载和采集!