📄 cal24.m
字号:
function varargout = cal24(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @cal24_OpeningFcn, ...
'gui_OutputFcn', @cal24_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function cal24_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
set(gcf,'Color',[0.925490196078431 0.913725490196078 0.847058823529412]);
set(findobj('tag','texttip'),'backgroundColor',[0.925490196078431 0.913725490196078 0.847058823529412]);
set(gcf,'Position',[285 302 206.25 98.25]);
function varargout = cal24_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function editdisp_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,'BackgroundColor','white');else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction editdisp_Callback(hObject, eventdata, handles)function num1_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,'BackgroundColor','white');else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction num1_Callback(hObject, eventdata, handles)
str1=str2num(get(findobj('tag','num1'),'string'));
if ~isempty(str1)
if str1>=14
cancel(gcbo);
end
else
set(gcbo,'string','');
end
function num2_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,'BackgroundColor','white');else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction num2_Callback(hObject, eventdata, handles)
str2=str2num(get(findobj('tag','num2'),'string'));
if ~isempty(str2)
if str2>=14
cancel(gcbo);
end
else
set(gcbo,'string','');
endfunction num3_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,'BackgroundColor','white');else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction num3_Callback(hObject, eventdata, handles)
str3=str2num(get(findobj('tag','num3'),'string'));
if ~isempty(str3)
if str3>=14
cancel(gcbo);
end
else
set(gcbo,'string','');
end
function num4_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,'BackgroundColor','white');else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction num4_Callback(hObject, eventdata, handles)
str4=str2num(get(findobj('tag','num4'),'string'));
if ~isempty(str4)
if str4>=14
cancel(gcbo);
end
else
set(gcbo,'string','');
endfunction btncal_Callback(hObject, eventdata, handles) %计算按钮
set(findobj('tag','figure'),'name','正在进行计算,请稍等 ...');
set(gcf,'pointer','watch');
set(gcbo,'enable','off');
str1=get(findobj('tag','num1'),'string');
str2=get(findobj('tag','num2'),'string');
str3=get(findobj('tag','num3'),'string');
str4=get(findobj('tag','num4'),'string');
if ~isempty(str1)
if ischar(str1)
%questdlg();
elseif str1>=14
end
end
str(1)=str2num(str1);
str(2)=str2num(str2);
str(3)=str2num(str3);
str(4)=str2num(str4);
%是否算出
calculated=0;
%产生各种组合,并进行计算
for i=1:4
if calculated==0
for j=1:4
if j~=i & calculated==0
for k=1:4
if k~=i & k~=j & calculated==0
for l=1:4
if l~=i & l~=j & l~=k & calculated==0
%不进行括号运算
calculated=fcncal24(str(i),str(j),str(k),str(l),findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
%进行括号运算
stra=strcat('(',num2str(str(i)));
strb=strcat(num2str(str(j)),')');
calculated=fcncal24(stra,strb,str(k),str(l),findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
stra=strcat('(',num2str(str(i)));
strc=strcat(num2str(str(k)),')');
calculated=fcncal24(stra,str(j),strc,str(l),findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
strb=strcat('(',num2str(str(j)));
strc=strcat(num2str(str(k)),')');
calculated=fcncal24(str(i),strb,strc,str(l),findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
strb=strcat('(',num2str(str(j)));
strd=strcat(num2str(str(l)),')');
calculated=fcncal24(str(i),strb,str(k),strd,findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
strc=strcat('(',num2str(str(k)));
strd=strcat(num2str(str(l)),')');
calculated=fcncal24(str(i),str(j),strc,strd,findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
stra=strcat('((',num2str(str(i)));
strb=strcat(num2str(str(j)),')');
strc=strcat(num2str(str(k)),')');
calculated=fcncal24(stra,strb,strc,str(l),findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
stra=strcat('(',num2str(str(i)));
strb=strcat(num2str(str(j)),')');
strc=strcat('(',num2str(str(k)));
strd=strcat(num2str(str(l)),')');
calculated=fcncal24(stra,strb,strc,strd,findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
stra=strcat('(',num2str(str(i)));
strb=strcat('(',num2str(str(j)));
strc=strcat(num2str(str(k)),'))');
calculated=fcncal24(stra,strb,strc,str(l),findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
stra=strcat('(',num2str(str(i)));
strb=strcat('(',num2str(str(j)));
strc=strcat(num2str(str(k)),')');
strd=strcat(num2str(str(l)),')');
calculated=fcncal24(stra,strb,strc,strd,findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
strb=strcat('((',num2str(str(j)));
strc=strcat(num2str(str(k)),')');
strd=strcat(num2str(str(l)),')');
calculated=fcncal24(str(i),strb,strc,strd,findobj('tag','editdisp'),calculated);
if calculated==1
break;
else
strb=strcat('(',num2str(str(j)));
strc=strcat('(',num2str(str(k)));
strd=strcat(num2str(str(l)),'))');
calculated=fcncal24(str(i),strb,strc,strd,findobj('tag','editdisp'),calculated);
if calculated==1
break;
end
end
end
end
end
end
end
end
end
end
end
end
elseif calculated==1
break;
end
end
elseif calculated==1
break;
end
end
elseif calculated==1
break;
end
end
elseif calculated==1
break;
end
end
if calculated==0
set(findobj('tag','editdisp'),'string','不好意思,我算不出来,另请高明吧!');
end
set(findobj('tag','figure'),'name','速算24');
set(gcf,'pointer','default');
set(findobj('tag','btncal'),'enable','on');
function btnclose_Callback(hObject, eventdata, handles) %关闭按钮close;function btnabout_Callback(hObject, eventdata, handles)aboutfunction btndel_Callback(hObject, eventdata, handles)set(findobj('tag','editdisp'),'string','');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -