以下是一个用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

这个示例代码创建了一个简单的科学计算器界面,包含数字按钮、运算符按钮、等号按钮、清除按钮、小数点按钮和正负号按钮。每个按钮都有对应的回调函数来处理按钮点击事件。在点击数字按钮时,将数字追加到显示屏上;在点击运算符按钮时,保存当前的操作数和运算符;在点击等号按钮时,根据保存的操作数和运算符进行计算并显示结果;在点击清除按钮时,清空显示屏并清除保存的操作数和运算符;在点击小数点按钮时,追加小数点到显示屏上;在点击正负号按钮时,将当前数字取相反数

用Matlab设计科学计算器的代码

原文地址: https://www.cveoy.top/t/topic/hGl9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录