资源描述:
《指针式时钟(私信我发源程序qq2795581871)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、目录一、需求分析21.选做此课题的冃的22•程序所实现的功能2二、内容设计21.设计模块图22.主程序及其主要模块的流程图33.编写程序关键代码5三、调试分析91•实际完成的情况说明92.程序的性能分析。93.上机过程中出现的问题及其解决方案。94.程序屮可以改进的地方说明。105.程序中可以扩充的功能及设计实现构想。10四、用户手册101.运行环境102.执行结果10五、设计总结16六、参考文献17七、附录17、需求分析1•选做此课题的目的在软件系统屮,经常要以各种形式显示系统时间,最简单的显示形式是以字符的方式显示数字式时钟。为了更加
2、新颖的表现软件界而风格,也可以显示指针式时钟,与数字式时钟相比,指针式吋钟更加具有创意,更加符合现实中的实物。在本文中,首先釆用UI设计人员制作的图形元素,并在MFC中给予实现,能够制作出独具特色的指针式钟表。为了能够方便的知道当前时间,故写了本程序,并且本程序改变了传统指针时钟一成不变的界面风格,用八可以根据自己的喜好来选择时钟各部分的颜色。通过本次课程设计也可以提高我们自己的实际编程能丿J,学以致用,让我们更深刻的理解学到的知识。2•程序所实现的功能1)能够进行表盘背景的切换2)能够分别改变吋针、分针和秒针的颜色3)能够选择自定义时间
3、或者使用系统时间4)能够设定/取消闹铃,当闹铃时间到后会播放音乐二、内容设计1•设计模块图指蚀式时钟闹钟背景修改指针颜色时间设宋闹钟取消闹钟设定秒针颜色分针颜色吋针颜色自定义时间系统INI-图2.1指针时钟模块图2•主程序及其主要模块的流程图选择闹钟图2.2设置闹钟的流程图开始选择背景修改&选择背景表盘选择背景图2.3背景修改的流程图开始图2.5设置时间的流程图3•编写程序关键代码1、voidCclockDlg::OnClickedButtonl()〃开启时钟按钮的功能/*IN_YEAR是标识年combox控件的索引值,IN_MONTH是
4、标识月combox控件的索引值,IN_DAY是标识日combox控件的索引值。IN_H是标识吋combox控件的索引值,IN_M是标识分combox控件的索引值,IN_S是标识LIcombox控件的索引值。IN_DAY_Control是年combox控件的对象,IN_MONTH_Control是月combox控件的对象,IN_DAY_Control是日conbox控件的对象。IN_H_Control是时combox控件的对象,IN_M_Cont「ol是分combox控件的对彖,IN_S_Control是秒conbox控件的对象。*/1N_
5、YEAR=IN_YEAR_Control.GetCurSel();1N_MONTH=IN_MONTH_Control.GetCurSel();IN_DAY=IN_DAY_Control.GetCurSel();IN_H=IN_H_Control.GctCurScl();IN_M=IN_M_Control.GetCurSel();IN_S=!N_S_Control.GetCurSel();boolflag=false;inty=IN.YEAR+1990,m=IN_MONTH+l,d=IN_DAY+1;〃定义y,m,d分别表示年月Rswitc
6、h(d)〃根据y,m,d判断Fl期的合法性{case29:if(((y%400==0)
7、
8、(y%100!=0&&y%4==0)))flag=true;elseif(m==2)flag=false;elseflag=true;break;case30:if(m==4
9、
10、m==6
11、
12、m==9
13、
14、m==11)flag=true;elseflag=false;break;case31:if(m==2
15、
16、m==4
17、
18、m==6
19、
20、m==9
21、
22、m==11)flag=false;elseflag=true;default:if(!Aag){Message
23、Box(_T(uH期不合法"));)else〃更改时间combox控件的可见性,将可见性设宜为FALSEIN_YEAR_Control.EnablcWindow(FALSE);IN_MONTH_Control.EnableWindow(FALSE);IN_DAY_Control.EnableWindow(FALSE);IN_H_Control.EnableWindow(FALSE);IN_M_Control.EnableWindow(FALSE);IN_S_Control.EnableWindow(FALSE);讦(!N_TlME_TYP
24、E.GetCheck()==1)//根据选择判断是否使用自定义时间{time=CTime(IN_YEAR+1990,IN.MONTH+1,IN_DAY+1,IN_H,IN_M,IN_S,・1)