已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学软件课程设计广东海洋大学数学软件课程设计用 MATLAB设计一个时钟和闹钟院(系)名称理学院专业 班级信计1132姓 名杨剑鸿学 号201311921229指导教师李志成 绩教师评语: 指导教师签字:2015年6月15日摘 要:MATLAB是一款强大的、应用广泛的软件,本文主要利用MATLAB 的相关编程来设计实现时钟界面显示效果关键词:时间、闹钟、MATLAB、界面 目的:创建一个时钟与闹钟小软件,用于看时间,还有修改时间并且设定闹钟。还能重用历史用过的闹钟作为闹钟,但仅编了只能设置一个闹钟,可以添加程序达到设置多个闹钟。(GUI文件和M文件在本文档的最后一页)功能介绍:此小软件能调整时间,以钟表方式显示时间,设置闹钟(不发出响声,但弹屏提醒。)能打开或者关闭闹钟,并且记录历史调节过的前5个闹钟,提供方便再使用曾经用过的闹钟。界面布局:见下图创建过程:1 加入如图的各种控件;安排好位置,点击Align Objects按钮对控件对齐。2 改变各控件相关的属性值:2.1 将坐标文本框下面的三个可编辑文本的string都改为0,并将其tag属性分别改为hour、min、sec。以便在添加代码时能更快找到对应函数。坐标文本框旁边的三个可编辑文本的string都改为 ,并将其tag属性分别改为hour _naozhong、min _naozhong、sec _naozhong。以便在添加代码时能更快找到对应函数。2.2 将这四个静态文本框的String改为:。 将坐标文本框右上角的静态文本框的string改为。将坐标文本框左下角的静态文本框的string改为修正时间:。将历史闹钟显示的2个静态文本框的string分别改为历史闹钟:、时-分-秒。将数字标号的5个静态文本框的string分别改为1.、2.、3.、4.、5.。将历史闹钟的5个静态文本框的string都改为 。并将其tag属性分别改为naozhong1、naozhong2、naozhong3、naozhong4、naozhong5,以便在添加代码时能更快找到对应函数。将坐标文本框右上角的静态文本框的string改为 。用以提示是否开启或者关闭闹钟。2.3 将坐标文本框下面3个按钮的string都改为,并将其tag属性分别改为hour_up、min_up、sec_up,以便在添加代码时能更快找到对应函数。将坐标文本框下面3个按钮的string都改为,并将其tag属性分别改为hour_down、min_down、sec_down,以便在添加代码时能更快找到对应函数。将按钮的string都改为确认修改,并将其tag属性分别改为 queren_time, 以便在添加代码时能更快找到对应函数。将坐标文本框右边2个按钮的string分别改为打开、关闭,并将其tag属性分别改为 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 naozhonghandles.output = hObject; handles.h=cell(1,5); %记录历史闹钟的排序% Update handles structureguidata(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;if a=24 a=0;endset(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)endset(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)endset(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;endset(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)endset(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;if S=-1 %秒的按键控制,若秒小于0时,则分钟减1 S=59; M=M-1; if M=-1 %若小时减1时,小时小于0,则,小时变回23 H=23; end set(handles.hour,string,H) end set(handles.min,string,M)endset(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=61|a2=61|a112 %若时刻为1224,则要转换 a=0; %a用来判定时间是否为012点或者1224点,若为012则为1,否则为0 n3=n3-12; end n3=n3*5; a0=floor(n2/12); %用于分针每走12分钟,时针移动1/5小时 n3=n3+a0; M=moviein(61); %形成一个大小为61的动画矩阵 while n3=60 %时针的移动循环 while n260 %分针的移动循环 while n1=2 %若有新闹钟,则全部历史闹钟都往后移动位置,新闹钟排在主调函数h的第1个细胞内 a3=a2; a3=a3-1; handles.ha2=handles.ha3; a2=a2-1;endb1=00;b2=00;b3=00; %以下是填写主调函数h相应的细胞内的内容c=-;if H=9 b1(2)=num2str(H);else b1=num2str(H);endif M=9 b2(2)=num2str(M);else b2=num2str(M);endif S=9 b3(2)=num2str(S);else b3=num2str(S);endD=b1,c,b2,c,b3;handles.ha2=D;set(handles.naozhong1,string,handles.ha2)a2=a2+1;if a2=a1 %将重新排序后的主调函数h的字符串设置到历史闹钟的显示框内 set(handles.naozhong2,string,handles.ha2) a2=a2+1;endif a2=a1 set(handles.naozhong3,string,handles.ha2) a2=a2+1;endif a2=a1 set(handles.naozhong4,string,handles.ha2) a2=a2+1;endif a2=48&a1=48&a2=48&a3=48&a4=48&a5=57);b1=str2num(A5(1);b2=str2num(A5(2);b3=str2num(A5(3);b4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024数控机床主轴可靠性加工过程的可靠性技术规范
- 《国际贸易学》大学题集
- 文书模板-无废城市建设总结报告
- 小区物业管理服务方案
- 沙糖桔种植的果园成本费用核算-记账实操
- 2024年四川省资阳市中考英语试题(含答案)
- 第7课《溜索》教学设计-2023-2024学年统编版语文九年级下册
- 2024年电调收音机项目资金申请报告代可行性研究报告
- 货物代理合作协议书(3篇)
- 幼儿园安全演练应急预案范文(3篇)
- 大学生创业英语智慧树知到期末考试答案章节答案2024年广西师范大学
- 统编版2024年新版七年级上册历史第一单元达标测试卷(含答案)
- 钢结构防腐防火涂装工程施工方案
- 飞机仪电与飞控系统原理智慧树知到期末考试答案章节答案2024年中国人民解放军海军航空大学
- 燃气流量计体积修正仪校准规范
- 大班语言课《石头小猪》教案设计
- 钢结构工程施工(第五版) 课件 2项目二 焊接
- 电信营业厅运营方案策划书(2篇)
- 肿瘤物理消融规范化培训考试题
- 学习强安应急第一响应人理论考试答案
- 采购管理制度设计方案毕业设计(2篇)
评论
0/150
提交评论