?? mcaculor.m
字號:
main_win_num=sqrt(main_win_num);
main_win_num_int=(main_win_num*(1e+14)-rem(main_win_num*1e+14,1e+14))/(1e+14);%整數部分
main_win_num_dvi=rem(main_win_num*1e+14,1e+14);%小數部分
main_win_num_str=[int2str(main_win_num_int),'.',int2str(main_win_num_dvi)];
set(h_edit,'string',main_win_num_str);
case 'cnse'%算倒數
h_edit=findobj(0,'tag','MAIN_EDIT');
h_cnse=findobj(0,'tag','MAIN_CNSE');
main_win_num=str2num(get(h_edit,'string'));
if main_win_num==0
set(h_edit,'string','0');
errordlg({'友情提示: 除數不能為零!'},'error');
else
main_win_num=1/(main_win_num);
main_win_num_int=(main_win_num*(1e+14)-rem(main_win_num*1e+14,1e+14))/(1e+14);%整數部分
main_win_num_dvi=rem(main_win_num*1e+14,1e+14);%小數部分
main_win_num_str=[int2str(main_win_num_int),'.',int2str(main_win_num_dvi)];
set(h_edit,'string',main_win_num_str);
end
case 'plus'
h_edit=findobj(0,'tag','MAIN_EDIT');
h_time=findobj(0,'tag','MAIN_PLUS');
h_state=findobj(0,'tag','OPERATION_STATE');
h_opert=findobj(0,'tag','OPERATOR_ONE');
h_sequence=findobj(0,'tag','OPERATION_SEQUENCE');
set(h_sequence,'string','0');
h_state_temp=round(str2num(get(h_state,'string')));%取得之前的運算符
operator_one=str2num(get(h_opert,'string'));
operator_temp=str2num(get(h_edit,'string'));
if h_state_temp==1 %之前已按過加號鍵,則先運算加法,得到的結果賦給第一個被操作數
operator_one=operator_one+operator_temp;
set(h_state,'string','1');%記錄當前的運算符是加號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==2 %之前已按過減號鍵,則先運算減法,得到的結果賦給第一個被操作數
operator_one=operator_one-operator_temp;
set(h_state,'string','1');%記錄當前的運算符是加號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==3 %之前已按過乘號鍵,則先運算乘法,得到的結果賦給第一個被操作數
operator_one=operator_one*operator_temp;
set(h_state,'string','1');%記錄當前的運算符是加號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==4 %之前已按過除號鍵,則先運算除法,得到的結果賦給第一個被操作數
if operator_temp==0
errordlg({'友情提示: 除數不能為零!'},'error');
else
operator_one=operator_one/operator_temp;
set(h_state,'string','1');%記錄當前的運算符是加號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
end
elseif h_state_temp==0 %之前沒有按過任何操作符鍵
set(h_state,'string','1');%記錄當前的運算符是乘號
set(h_opert,'string',get(h_edit,'string'));%記錄當前的第一被操作數
end
case 'minu'
h_edit=findobj(0,'tag','MAIN_EDIT');
h_time=findobj(0,'tag','MAIN_MINU');
h_state=findobj(0,'tag','OPERATION_STATE');
h_opert=findobj(0,'tag','OPERATOR_ONE');
h_sequence=findobj(0,'tag','OPERATION_SEQUENCE');
set(h_sequence,'string','0');
h_state_temp=round(str2num(get(h_state,'string')));%取得之前的運算符
operator_one=str2num(get(h_opert,'string'));
operator_temp=str2num(get(h_edit,'string'));
if h_state_temp==1 %之前已按過加號鍵,則先運算加法,得到的結果賦給第一個被操作數
operator_one=operator_one+operator_temp;
set(h_state,'string','2');%記錄當前的運算符是減號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==2 %之前已按過減號鍵,則先運算減法,得到的結果賦給第一個被操作數
operator_one=operator_one-operator_temp;
set(h_state,'string','2');%記錄當前的運算符是減號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==3 %之前已按過乘號鍵,則先運算乘法,得到的結果賦給第一個被操作數
operator_one=operator_one*operator_temp;
set(h_state,'string','2');%記錄當前的運算符是減號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==4 %之前已按過除號鍵,則先運算除法,得到的結果賦給第一個被操作數
if operator_temp==0
errordlg({'友情提示: 除數不能為零!'},'error');
else
operator_one=operator_one/operator_temp;
set(h_state,'string','2');%記錄當前的運算符是減號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
end
elseif h_state_temp==0 %之前沒有按過任何操作符鍵
set(h_state,'string','2');%記錄當前的運算符是減號
set(h_opert,'string',get(h_edit,'string'));%記錄當前的第一被操作數
end
case 'time'
h_edit=findobj(0,'tag','MAIN_EDIT');
h_time=findobj(0,'tag','MAIN_TIME');
h_state=findobj(0,'tag','OPERATION_STATE');
h_opert=findobj(0,'tag','OPERATOR_ONE');
h_sequence=findobj(0,'tag','OPERATION_SEQUENCE');
set(h_sequence,'string','0');
h_state_temp=round(str2num(get(h_state,'string')));%取得之前的運算符
operator_one=str2num(get(h_opert,'string'));
operator_temp=str2num(get(h_edit,'string'));
if h_state_temp==1 %之前已按過加號鍵,則先運算加法,得到的結果賦給第一個被操作數
operator_one=operator_one+operator_temp;
set(h_state,'string','3');%記錄當前的運算符是乘號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==2 %之前已按過減號鍵,則先運算減法,得到的結果賦給第一個被操作數
operator_one=operator_one-operator_temp;
set(h_state,'string','3');%記錄當前的運算符是乘號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==3 %之前已按過乘號鍵,則先運算乘法,得到的結果賦給第一個被操作數
operator_one=operator_one*operator_temp;
set(h_state,'string','3');%記錄當前的運算符是乘號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==4 %之前已按過除號鍵,則先運算除法,得到的結果賦給第一個被操作數
if operator_temp==0
errordlg({'友情提示: 除數不能為零!'},'error');
else
operator_one=operator_one/operator_temp;
set(h_state,'string','3');%記錄當前的運算符是乘號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
end
elseif h_state_temp==0 %之前沒有按過任何操作符鍵
set(h_state,'string','3');%記錄當前的運算符是乘號
set(h_opert,'string',get(h_edit,'string'));%記錄當前的第一被操作數
end
case 'divd'
h_edit=findobj(0,'tag','MAIN_EDIT');
h_time=findobj(0,'tag','MAIN_DIVD');
h_state=findobj(0,'tag','OPERATION_STATE');
h_opert=findobj(0,'tag','OPERATOR_ONE');
h_sequence=findobj(0,'tag','OPERATION_SEQUENCE');
set(h_sequence,'string','0');
h_state_temp=round(str2num(get(h_state,'string')));%取得之前的運算符
operator_one=str2num(get(h_opert,'string'));
operator_temp=str2num(get(h_edit,'string'));
if h_state_temp==1 %之前已按過加號鍵,則先運算加法,得到的結果賦給第一個被操作數
operator_one=operator_one+operator_temp;
set(h_state,'string','4');%記錄當前的運算符是除號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==2 %之前已按過減號鍵,則先運算減法,得到的結果賦給第一個被操作數
operator_one=operator_one-operator_temp;
set(h_state,'string','4');%記錄當前的運算符是除號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==3 %之前已按過乘號鍵,則先運算乘法,得到的結果賦給第一個被操作數
operator_one=operator_one*operator_temp;
set(h_state,'string','4');%記錄當前的運算符是除號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
elseif h_state_temp==4 %之前已按過除號鍵,則先運算除法,得到的結果賦給第一個被操作數
if operator_temp==0
errordlg({'友情提示: 除數不能為零!'},'error');
else
operator_one=operator_one/operator_temp;
set(h_state,'string','4');%記錄當前的運算符是除號
set(h_opert,'string',num2str(operator_one));%記錄當前的第一被操作數
set(h_edit,'string',num2str(operator_one));%顯示當前的第一被操作數
end
elseif h_state_temp==0 %之前沒有按過任何操作符鍵
set(h_state,'string','4');%記錄當前的運算符是乘號
set(h_opert,'string',get(h_edit,'string'));%記錄當前的第一被操作數
end
case 'equl'
format long;
h_edit=findobj(0,'tag','MAIN_EDIT');
h_state=findobj(0,'tag','OPERATION_STATE');
h_opert=findobj(0,'tag','OPERATOR_ONE');
h_sequence=findobj(0,'tag','OPERATION_SEQUENCE');
operator_one_str=str2num(get(h_opert,'string'));
operator_two_num=str2num(get(h_edit,'string'));
h_state_str=round(str2num(get(h_state,'string')));
if operator_one_str==' '
errordlg({'友情提示: 還沒有輸入第二操作數!'},'error');
else
operator_one_num=str2num(get(h_opert,'string'));
if h_state_str==1
result=operator_one_num+operator_two_num;
elseif h_state_str==2
result=operator_one_num-operator_two_num;
elseif h_state_str==3
result=operator_one_num*operator_two_num;
else
result=operator_one_num/operator_two_num;
end
set(h_edit,'string',num2str(result));
set(h_sequence,'string','0');
set(h_state,'string','0');
set(h_opert,'string','0');
end
otherwise
disp('nogood');
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -