《数学软件》课程设计论文用matlab做一个小闹钟(2)

2018-12-29 23:10

《数学软件》课程设计

set(handles.sec,'string',S) guidata(hObject, handles);

3.3 以下是3个调节时间增加的按钮的编码:(用途:可以鼠标控

制时间小幅度的减少,若大幅度减少可以键盘敲进!)

小时:

function hour_down_Callback(hObject, eventdata, handles) % hObject handle to hour_down (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

H=str2num(get(handles.hour,'string')); %小时按键控制,若上调小于0,侧变回23H=H-1; if H<=-1 H=23; end

set(handles.hour,'string',H) guidata(hObject, handles);

分钟:

function min_dowm_Callback(hObject, eventdata, handles) % hObject handle to min_dowm (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) M=str2num(get(handles.min,'string')); H=str2num(get(handles.hour,'string')); M=M-1;

if M<=-1 %分钟按键控制,若上调小于0,侧变回59,并且小时减1 M=59; H=H-1;

if H<=-1 %小时减1时,若小时小于0,则小时变回23 H=23; end

set(handles.hour,'string',H) end

set(handles.min,'string',M) guidata(hObject, handles); 秒钟:

% --- Executes on button press in sec_dowm.

function sec_dowm_Callback(hObject, eventdata, handles) % hObject handle to sec_dowm (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) S=str2num(get(handles.sec,'string')); M=str2num(get(handles.min,'string')); H=str2num(get(handles.hour,'string')); S=S-1;

5

《数学软件》课程设计

if S<=-1 %秒的按键控制,若秒小于0时,则分钟减1 S=59; M=M-1;

if M<=-1 %分钟减1时,若分钟小于0,则小时减1 M=59; H=H-1;

if H>=-1 %若小时减1时,小时小于0,则,小时变回23 H=23; end

set(handles.hour,'string',H) end

set(handles.min,'string',M) end

set(handles.sec,'string',S) guidata(hObject, handles);

3.4 以下是确认修改按钮的编码:(用途:控制时钟的启动和显示,

并且显示同步时钟的走动。)

function queren_time_Callback(hObject, eventdata, handles) % hObject handle to queren_time (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) a3=str2num(get(handles.hour,'string')); a2=str2num(get(handles.min,'string')); a1=str2num(get(handles.sec,'string'));

if a3>=25|a3<=-1|a2>=61|a2<=-1|a1>=61|a1<=-1 %若输入的数字不符合时钟格式则提示

errordlg('时间输入错误,请输入正确时间!','警告') elseif mod(a2,1)~=0|mod(a3,1)~=0|mod(a1,1)~=0 errordlg('请输入整数!', '警告') else

n3=str2num(get(handles.hour,'string')); %控制时针 n2=str2num(get(handles.min,'string')); %控制分针 n1=str2num(get(handles.sec,'string')); %控制秒针

a=1; %a用来判定时间是否为0~12点或者12~24点,若为0~12则为1,否则为0 if n3>12 %若时刻为12~24,则要转换

a=0; %a用来判定时间是否为0~12点或者12~24点,若为0~12则为1,否则为0 n3=n3-12; end n3=n3*5;

a0=floor(n2/12); %用于分针每走12分钟,时针移动1/5小时 n3=n3+a0;

M=moviein(61); %形成一个大小为61的动画矩阵

6

《数学软件》课程设计

while n3<=60 %时针的移动循环 while n2<60 %分针的移动循环 while n1<=59 %秒针的移动循环

switch a %判定输入的时刻是否为0~12,否则为12~24

case 0 set(handles.hour,'string',floor(n3/5+12)) case 1

set(handles.hour,'string',floor(n3/5)) end

set(handles.min,'string',n2) set(handles.sec,'string',n1)

nzH=get(handles.hour_naozhong,'string'); %获得闹钟时刻 nzM=get(handles.min_naozhong,'string'); %获得闹钟分钟 nzS=get(handles.sec_naozhong,'string'); %获得闹钟秒钟 if nzH~=' '&nzM~=' '&nzS~=' ' %若都不为空则有闹钟设置 switch a %判定输入的时刻是否为0~12,否则为12~24 case 0 if

str2num(nzH)==floor(n3/5+12)&str2num(nzM)==n2&str2num(nzS)==n1 warndlg('闹钟时间已到!','闹钟') end case 1 if

str2num(nzH)==floor(n3/5)&str2num(nzM)==n2&str2num(nzS)==n1 warndlg('闹钟时间已到!', '闹钟') end end end

syms t; x=sin(t); y=cos(t);

ezplot(x,y); %钟的框架 hold on axis equal

for i=1:60 %钟的框架 y=0.93*sin(pi/30*(15-i))+0.03; x=0.93*cos(pi/30*(15-i))-0.02; if mod(i,5)==0 if i==60

text(x,y,'12') else

text(x,y,'I') end else

text(x,y,'.')

7

《数学软件》课程设计

end hold on end

quiver(0,0,0.6*sin(n2*pi/30),0.6*cos(n2*pi/30)); %分针的图形 quiver(0,0,0.3*sin(n3*pi/30),0.3*cos(n3*pi/30)); %时针的图形 quiver(0,0,0.8*sin(n1*pi/30),0.8*cos(n1*pi/30)); %秒针的图形 M(:,n1+1)=getframe; %将图形转换到M矩阵里面 hold off pause(0.75) n1=n1+1; end

if n1==60 %秒针循环 n1=0; n2=n2+1; end end

if n2==60 %分钟循环 n2=0; n3=n3+1; end

if n3==60 %小时的循环 n3=0; end end end

guidata(hObject, handles);

3.5 以下是3个闹钟可编辑文本框的编码:(用途:输入闹钟,

并且若按了关闭按钮,则先是文本框为空白!)

function hour_naozhong_Callback(hObject, eventdata, handles) % hObject handle to hour_naozhong (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of hour_naozhong as text % str2double(get(hObject,'String')) returns contents of hour_naozhong as a double

input=str2num(get(hObject,'string')); %若没设置闹钟,则显示空 if isempty(input)

set(hObject,'string',' ') end

guidata(hObject, handles);

8

《数学软件》课程设计

function min_naozhong_Callback(hObject, eventdata, handles) % hObject handle to min_naozhong (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of min_naozhong as text % str2double(get(hObject,'String')) returns contents of min_naozhong as a double

input=str2num(get(hObject,'string')); %若没设置闹钟,则显示空 if isempty(input)

set(hObject,'string',' ') end

guidata(hObject, handles);

function sec_naozhong_Callback(hObject, eventdata, handles) % hObject handle to sec_naozhong (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of sec_naozhong as text % str2double(get(hObject,'String')) returns contents of sec_naozhong as a double

input=str2num(get(hObject,'string')); %若没设置闹钟,则显示空 if isempty(input)

set(hObject,'string',' ') end

guidata(hObject, handles);

3.6 以下是2个闹钟打开与关闭按钮的编码:(用途:打开设

定的闹钟,和关闭之前设定的闹钟,若关闭,则显示文本框为空白!并且打开(关闭),则弹出文字显示打开(关闭)闹钟!此处用到主调函数handles.h)

function open_naozhong_Callback(hObject, eventdata, handles) % hObject handle to open_naozhong (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of open_naozhong

9


《数学软件》课程设计论文用matlab做一个小闹钟(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:板桥镇2014年第二季度社会治安形势分析报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: