《数学软件》课程设计
H=str2num(get(handles.hour_naozhong,'string')); %获得闹钟时刻的字符串 M=str2num(get(handles.min_naozhong,'string')); %获得闹钟分钟的字符串S=str2num(get(handles.sec_naozhong,'string')); %获得闹钟秒钟的字符串d1=str2num(get(handles.naozhong1,'string')); %用于判断历史闹钟的排序d2=str2num(get(handles.naozhong2,'string')); %并记录在主调函数h细胞数组中d3=str2num(get(handles.naozhong3,'string')); d4=str2num(get(handles.naozhong4,'string')); d5=str2num(get(handles.naozhong5,'string'));
if isempty(d1) %判断历史闹钟1是否为空,若是则设置主调函数的h的第1个细胞,否则向下运作
a1=1;a2=a1;
elseif isempty(d2) %判断历史闹钟2是否为空,若是则设置主调函数的h的第2个细胞,否则向下运作
a1=2;a2=a1;
elseif isempty(d3) %判断历史闹钟3是否为空,若是则设置主调函数的h的第2个细胞,否则向下运作 a1=3;a2=a1;
elseif isempty(d4) %判断历史闹钟4是否为空,若是则设置主调函数的h的第2个细胞,否则向下运作
a1=4;a2=a1; else
a1=5;a2=a1; %否则设置主调函数h第5个细胞内容 end
while a2>=2 %若有新闹钟,则全部历史闹钟都往后移动位置,新闹钟排在主调函数h的第1个细胞内
a3=a2; a3=a3-1;
handles.h{a2}=handles.h{a3}; a2=a2-1; end
b1='00';b2='00';b3='00'; %以下是填写主调函数h相应的细胞内的内容c='-'; if H<=9
b1(2)=num2str(H); else
b1=num2str(H); end if M<=9
b2(2)=num2str(M); else
b2=num2str(M); end if S<=9
b3(2)=num2str(S); else
b3=num2str(S);
10
《数学软件》课程设计
end
D=[b1,c,b2,c,b3]; handles.h{a2}=D;
set(handles.naozhong1,'string',handles.h{a2}) a2=a2+1;
if a2<=a1 %将重新排序后的主调函数h的字符串设置到历史闹钟的显示框内?ú set(handles.naozhong2,'string',handles.h{a2}) a2=a2+1; end if a2<=a1
set(handles.naozhong3,'string',handles.h{a2}) a2=a2+1; end if a2<=a1
set(handles.naozhong4,'string',handles.h{a2}) a2=a2+1; end if a2<=a1
set(handles.naozhong5,'string',handles.h{a2}) a2=a2+1; end
set(handles.naozhongbiaoshi,'BackgroundColor','red') %若按键打开,则图形右上角的图案变红色
set(handles.xianshinaozhong,'string', '闹钟已开启') %并且提示有1秒提示中文 pause(1)
set(handles.xianshinaozhong,'string',' ') %1秒后结束提示 guidata(hObject, handles);
function off_naozhong_Callback(hObject, eventdata, handles) % hObject handle to off_naozhong (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.hour_naozhong,'string',' '); set(handles.min_naozhong,'string',' '); set(handles.sec_naozhong,'string',' ');
set(handles.naozhongbiaoshi,'BackgroundColor','white') %若按键点击,则关闭闹钟,则图形右上角的图案变白色
set(handles.xianshinaozhong,'string', '闹钟已关闭’) %并且有1秒的中文提示闹钟已关闭 pause(1)
set(handles.xianshinaozhong,'string',' ') %1秒后结束提示 guidata(hObject, handles);
3.7 以下是5个历史闹钟显示静态文本框
11
的编码:(用途:若之前有
《数学软件》课程设计
设定闹钟,这此闹钟在历史闹钟1中显示,若1已存在历史闹钟,则1往后退,以此类推!)
function xinnaozhong1_Callback(hObject, eventdata, handles) % hObject handle to xinnaozhong1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
a1=get(handles.naozhong1,'string'); %若按了此按键,则设置此时刻为新闹钟,并且历史闹钟重新排序
A1=a1(find(a1>=48&a1<=57));
b1=str2num(A1(1));b2=str2num(A1(2));b3=str2num(A1(3)); b4=str2num(A1(4));b5=str2num(A1(5));b6=str2num(A1(6)); nzH=b1*10+b2; nzM=b3*10+b4; nzS=b5*10+b6;
set(handles.hour_naozhong,'string',nzH) set(handles.min_naozhong,'string',nzM) set(handles.sec_naozhong,'string',nzS)
set(handles.naozhongbiaoshi,'BackgroundColor','red') %若按键打开,则图形右上角的图案变红色
set(handles.xianshinaozhong,'string', '闹钟已开启') %并且提示有1秒提示中文 pause(1)
set(handles.xianshinaozhong,'string',' ') %1秒后结束提示 guidata(hObject, handles);
function xinnaozhong2_Callback(hObject, eventdata, handles) % hObject handle to xinnaozhong2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
a1=get(handles.naozhong1,'string'); %若按了此按键,则设置此时刻为新闹钟,并且历史闹钟重新排序
a2=get(handles.naozhong2,'string'); A2=a2(find(a2>=48&a2<=57));
b1=str2num(A2(1));b2=str2num(A2(2));b3=str2num(A2(3)); b4=str2num(A2(4));b5=str2num(A2(5));b6=str2num(A2(6)); nzH=b1*10+b2; nzM=b3*10+b4; nzS=b5*10+b6;
set(handles.hour_naozhong,'string',nzH) set(handles.min_naozhong,'string',nzM) set(handles.sec_naozhong,'string',nzS) set(handles.naozhong1,'string',a2) set(handles.naozhong2,'string',a1)
12
《数学软件》课程设计
set(handles.naozhongbiaoshi,'BackgroundColor','red') %若按键打开,则图形右上角的图案变红色
set(handles.xianshinaozhong,'string', '闹钟已开启') %并且提示有1秒提示中文 pause(1)
set(handles.xianshinaozhong,'string',' ') %1秒后结束提示 guidata(hObject, handles);
function xinnaozhong3_Callback(hObject, eventdata, handles) % hObject handle to xinnaozhong3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
a1=get(handles.naozhong1,'string'); %若按了此按键,则设置此时刻为新闹钟,并且历史闹钟重新排序
a2=get(handles.naozhong2,'string'); a3=get(handles.naozhong3,'string'); A3=a3(find(a3>=48&a3<=57));
b1=str2num(A3(1));b2=str2num(A3(2));b3=str2num(A3(3)); b4=str2num(A3(4));b5=str2num(A3(5));b6=str2num(A3(6)); nzH=b1*10+b2; nzM=b3*10+b4; nzS=b5*10+b6;
set(handles.hour_naozhong,'string',nzH) set(handles.min_naozhong,'string',nzM) set(handles.sec_naozhong,'string',nzS) set(handles.naozhong1,'string',a3) set(handles.naozhong2,'string',a1) set(handles.naozhong3,'string',a2)
set(handles.naozhongbiaoshi,'BackgroundColor','red') %若按键打开,则图形右上角的图案变红色
set(handles.xianshinaozhong,'string', '闹钟已开启') %并且提示有1秒提示中文 pause(1)
set(handles.xianshinaozhong,'string',' ') %1秒后结束提示 guidata(hObject, handles);
function xinnaozhong4_Callback(hObject, eventdata, handles) % hObject handle to xinnaozhong4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
a1=get(handles.naozhong1,'string'); %若按了此按键,则设置此时刻为新闹钟,并且历史闹钟重新排序
a2=get(handles.naozhong2,'string'); a3=get(handles.naozhong3,'string'); a4=get(handles.naozhong4,'string'); A4=a4(find(a4>=48&a4<=57));
13
《数学软件》课程设计
b1=str2num(A4(1));b2=str2num(A4(2));b3=str2num(A4(3)); b4=str2num(A4(4));b5=str2num(A4(5));b6=str2num(A4(6)); nzH=b1*10+b2; nzM=b3*10+b4; nzS=b5*10+b6;
set(handles.hour_naozhong,'string',nzH) set(handles.min_naozhong,'string',nzM) set(handles.sec_naozhong,'string',nzS) set(handles.naozhong1,'string',a4) set(handles.naozhong2,'string',a1) set(handles.naozhong3,'string',a2) set(handles.naozhong4,'string',a3)
set(handles.naozhongbiaoshi,'BackgroundColor','red') %若按键打开,则图形右上角的图案变红色
set(handles.xianshinaozhong,'string', '闹钟已开启') %并且提示有1秒提示中文 pause(1)
set(handles.xianshinaozhong,'string',' ') %1秒后结束提示 guidata(hObject, handles);
function xinnaozhong5_Callback(hObject, eventdata, handles) % hObject handle to xinnaozhong5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
a1=get(handles.naozhong1,'string'); %若按了此按键,则设置此时刻为新闹钟,并且历史闹钟重新排序
a2=get(handles.naozhong2,'string'); a3=get(handles.naozhong3,'string'); a4=get(handles.naozhong4,'string'); a5=get(handles.naozhong5,'string'); A5=a5(find(a5>=48&a5<=57));
b1=str2num(A5(1));b2=str2num(A5(2));b3=str2num(A5(3)); b4=str2num(A5(4));b5=str2num(A5(5));b6=str2num(A5(6)); nzH=b1*10+b2; nzM=b3*10+b4; nzS=b5*10+b6;
set(handles.hour_naozhong,'string',nzH) set(handles.min_naozhong,'string',nzM) set(handles.sec_naozhong,'string',nzS) set(handles.naozhong1,'string',a5) set(handles.naozhong2,'string',a1) set(handles.naozhong3,'string',a2) set(handles.naozhong4,'string',a3) set(handles.naozhong5,'string',a4)
14
《数学软件》课程设计
set(handles.naozhongbiaoshi,'BackgroundColor','red') %若按键打开,则图形右上角的图案变红色
set(handles.xianshinaozhong,'string', '闹钟已开启') %并且提示有1秒提示中文 pause(1)
set(handles.xianshinaozhong,'string',' ') %1秒后结束提示 guidata(hObject, handles); 编辑完代码后,按保存然后按
运行结果如下:
参考文献
杨德平,赵维加,管殿柱,MATLAB基础教程,机械工业出版社
Matlab的movie用法,http://blog.csdn.net/aris_zzy/article/details/1684401
15