《数学软件》课程设计
广东海洋大学
教师评语:
《数学软件》课程设计
MATLAB设计一个时钟和闹钟
院(系)名称 理学院 专业 班级 信计1132 姓 名 杨剑鸿 学 号 201311921229
指导教师 李志 成 绩
指导教师签字:
2015年6月15日
用
《数学软件》课程设计
摘 要:MATLAB是一款强大的、应用广泛的软件,本文主要利用MATLAB 的相关编程来设计实现时钟界面显示效果 关键词:时间、闹钟、MATLAB、界面
目的:创建一个时钟与闹钟小软件,用于看时间,还有修改时间并且设定闹钟。还能重用历史用过的闹钟作为闹钟,但仅编了只能设置一个闹钟,可以添加程序达到设置多个闹钟。(GUI文件和M文件在本文档的最后一页)
功能介绍:此小软件能调整时间,以钟表方式显示时间,设置闹钟(不发出响声,但弹屏提醒。)能打开或者关闭闹钟,并且记录历史调节过的前5个闹钟,提供方便再使用曾经用过的闹钟。 界面布局:见下图
创建过程: 1.
加入如图的各种控件;安排好位置,点击'Align Objects'按钮对控件对
齐。 2.
改变各控件相关的属性值:
的‘string’都改为'0',并将其
2.1 将坐标文本框下面的三个可编辑文本
1
《数学软件》课程设计
‘tag’属性分别改为’hour’、’min’、’sec’。以便在添加代码时能更快找到对应函数。坐标文本框旁边的三个可编辑文本
的‘string’
都改为' ',并将其‘tag’属性分别改为’hour _naozhong’、’min _naozhong’、’sec _naozhong’。以便在添加代码时能更快找到对应函数。 2.2 将
这四个静态文本框的'String'改为':'。 将坐标文本框右上
角的静态文本框的‘string’改为'●'。将坐标文本框左下角的静态文本框文本框
的‘string’改为'修正时间:'。将历史闹钟显示的2个静态
的‘string’分别改为'历史闹钟:'、'时-分-秒'。将数字
的‘string’分别改为'1.'、'2.'、'3.'、'4.'、'5.'。
的‘string’都改为' '。并将其‘tag’
标号的5个静态文本框
将历史闹钟的5个静态文本框
属性分别改为'naozhong1'、'naozhong2'、'naozhong3'、'naozhong4'、'naozhong5',以便在添加代码时能更快找到对应函数。将坐标文本框右上角的静态文本框关闭闹钟。
2.3 将坐标文本框下面3个按钮
的‘string’都改为'▲',并将其‘tag’
的‘string’改为' '。用以提示是否开启或者
属性分别改为’hour_up’、’min_up’、’sec_up’,以便在添加代码时能更快找到对应函数。将坐标文本框下面3个按钮
的‘string’都改
为'▼',并将其‘tag’属性分别改为’hour_down’、’min_down’、’sec_down’,以便在添加代码时能更快找到对应函数。将按钮
的‘string’都改
为'确认修改',并将其‘tag’属性分别改为’ queren_time’, 以便在添加代码时能更快找到对应函数。将坐标文本框右边2个按钮
的‘string’分别改为'打开'、'关闭',并将其‘tag’属性分别改为’
2
《数学软件》课程设计
open_naozhong’、 ’ off_naozhong’, 以便在添加代码时能更快找到对应函数。将历史闹钟下面的5个按钮
的‘string’都改为'设此为
新闹钟',并将其‘tag’属性分别改为’ xinnaozhong1’、’ xinnaozhong2’ 、’ xinnaozhong3’ 、’ xinnaozhong4’ 、’ xinnaozhong5’ , 以便在添加代码时能更快找到对应函数。
2.4 将静态文本框的’backgroundcolor’改为灰色。 完成以上过程后,保存GUI为'时钟与闹钟.fig'。
3. 编写回调函数代码:黄色显示部分为自己添加的代码,紫色为函数的名称。
3.1 以下是主调函数的编辑:(用途:增加handles.h,用于记录历史闹钟的排序)
function naozhong_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to naozhong (see VARARGIN)
% Choose default command line output for naozhong handles.output = hObject;
handles.h=cell(1,5); %记录历史闹钟的排序 % Update handles structure guidata(hObject, handles);
3.2 以下是3个调节时间增加的按钮的编码:(用途:可以鼠标控
制时间小幅度的增加,若大幅度增加可以键盘敲进!)
小时:
function hour_up_Callback(hObject, eventdata, handles) % hObject handle to hour_up (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
a=str2num(get(handles.hour,'string')); %小时按键控制,若上调大于等于24,侧变回凌晨 a=a+1;
3
《数学软件》课程设计
if a>=24 a=0; end
set(handles.hour,'string',a) guidata(hObject, handles);
分钟:
function min_up_Callback(hObject, eventdata, handles) % hObject handle to min_up (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>=60 %分钟按键控制,若上调大于等于60,侧变回0,并且小时进1 M=0; H=H+1;
if H>=24 %小时进1时,若大于等于24,则小时变回0 H=0; end
set(handles.hour,'string',H) end
set(handles.min,'string',M) guidata(hObject, handles); 秒钟:
function sec_up_Callback(hObject, eventdata, handles) % hObject handle to sec_up (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;
if S>=60 %秒的按键控制,若大于等于60,则分钟进1,秒变回0 S=0; M=M+1;
if M>=60 %分钟进1时,若分钟大于等于60,则小时进1,分钟变回0 M=0; H=H+1;
if H>=24 %小时进1时,若大于等于24,则小时变回0 H=0; end
set(handles.hour,'string',H) end
set(handles.min,'string',M) end
4