实现时钟的设计与实现

实现时钟的设计与实现

ID:30832204

大小:419.55 KB

页数:13页

时间:2019-01-03

实现时钟的设计与实现_第1页
实现时钟的设计与实现_第2页
实现时钟的设计与实现_第3页
实现时钟的设计与实现_第4页
实现时钟的设计与实现_第5页
资源描述:

《实现时钟的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、程序设计综合实训报告时钟的设计与实现学院:计算机科学与技术学院专业:计算机类学号:16408070728姓名:魏新力日期:2018年1月5日题目:利用VC++实现时钟的设计与实现1.功能的描述:运行界面是一指针式时钟,包插时分秒三个指针,有22个钟点的显示,并通过指针的转动来实时更新时间。同时可以显示相应时间的数字钟形式。要求:通过菜单可以实现闹铃功能、表盘背景、指针颜色设置、倒计时等功能。同时为程序窗口增加了一张精美图片作为背景。1.设计要点(或基本思路、算法分析与说明、流程图):基本思路:①确定原点位置②设置指针长度③写出

2、时、分、秒针转过角度的函数④写出菜单的选项包插指针颜色、背景颜色、闹钟功能⑤写出连接菜单选项与指针颜色、背景颜色、闹钟功能连接的消息命令处理函数⑥获取系统时间⑦写出倒计时的函数⑧写出闹钟函数⑨插入位图算法分析与说明:①确定原点位置:以客户区为原点(0,0),然后定义原点位置。②设置指针长度:因为要用到sin和cos函数,所以On_Draw函数的头文件必须包含#include,,math.hw,然后调用函数语句inth_x=hour_ar*cos(hour)+n;inth_y=hour_ar*sin(hour)+200;(n为任

3、意合适整数),来确定指针长度。③写出时、分、秒针转过角度的函数;因为设计的是一个时钟,所以每当指针转过一次过后,相当于转过一定的角度,则调用floathour=(float)(j-3)/12*2*3.1415;floatmin=(float)(i-14)/60*2*3.1415;floatsec=(float)(n-14)/60*2*3.1415;计算出转过后的指针的位置。④菜单选项以及消息处理函数:在ResrouseView中选择menu然后编辑菜单选项,编辑好菜单之后利用Ctrl+w打开类向导在view类中添加消息处理函数

4、。⑤获取系统时间:调用CTimetm;tm=CTime::GetCurrentTime();得到系统时间。①写出倒计时的函数:在写这里这时候,由于我自己能力有限,并没有用对话框,不能自定义的写出倒计时的任意时间,所以只能在0n_Draw中写出倒计时函数,显示在屏幕中,我下去会多看书多多学习,尽快掌握这些东西。②写出闹钟函数:这个和前而那个倒计时够倒计时功能差不多,本来打算用对话框和单文档结合起来写的,结果写出来的老是有问题,也调试不对,就放弃了然后就继续用和上面相同的方法写了一个判断和系统时间相同的办法的“闹钟”,在on_Dr

5、aw函数里而写出来。③插入图片:在已经可以运行的指针上插入一个带数字的表盘就可以非常形象的表达出来一个时钟了。设计技术流程图:[确定原]点位置设置指针长度写出时、分、秒针转过角度的函数写岀菜单的选项包括指令诲色、背景颜色、闹钟功能写出连接菜单选项与指针颜色、背景颜色、闹钟功能连接的消息命令处理函数获収系统时间写出倒计时的函数写出闹钟函数插入位图时钟3、关键或主要程序代码:①确定原点位置:以客户区做顶点为原点(0,0),则确定顶点为:intorg_x=205;intorg_y=205;②设置指针反度:〃时针inthour_ar=

6、90;〃长度inth_x=hour_ar*cos(hour)+200;inth_y=hour_ar*sin(hour)+200;〃分针intmin_ar=140;//长度intm_x=min_ar*cos(min)+200;intm_y=min_ar*sin(min)+200;〃秒针intsec_ar=170;〃长度ints_x=sec_ar*cos(sec)+200;ints_y=sec_ar*sin(sec)+200;③写出时、分、秒针转过角度的函数:floathour=(float)(j-3)/12*2*3.1415;f

7、loatmin=(float)(i-14)/60*2*3.1415;floatsec=(float)(n-14)/60*2*3.1415;④写出菜单的选项包括指针颜色、背景颜色、闹钟功能if(Y==l)//红色指针{CPenpl(PS_SOLIDARGB(255,0,0));//创建新画笔CPen*penOld=(CPen*)pDC->SelectObject(pl);//选择创建堆画笔pDC->MoveTo(org_x,org_y);〃终点pDC->UneTo(m_x,m_y);//^点CPenp2(PS_S0LID,3,R

8、GB(255O0));〃创建新画笔pDC->SelectObject(p2);//选择创建堆画笔pDC->MoveTo(org_x,org_y);〃终点pDC->LineTo(h_x,h_y);//起点CPenp3(PS_SOLID2RGB(255QO));//创建新画笔pD

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。