- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书
PAGE \* MERGEFORMAT 20
目录
TOC \o 1-3 \u 1. 基本功能描述 PAGEREF _Toc252210616 \h 1
2. 设计思路 PAGEREF _Toc252210617 \h 1
3. 软件设计 4
3.1 设计步骤 4
3.2 界面设计 6
3.3关键功能的实现 7
4. 结论与心得体会 9
5. 参考文献 10
6. 思考题 PAGEREF _Toc252210624 \h 10
7.附录 11
7.1 调试报告 PAGEREF _Toc252210626 \h 11
7.2 测试结果 PAGEREF _Toc252210627 \h 11
7.3 关键源代码 13
指针式时钟
1. 基本功能描述
屏幕左方有一个指针式钟面,屏幕右方以数字方式显示日期和时间。指针式的时钟表盘为圆形,并且圆周上有分布均匀的12个刻度,钟面上有长度和颜色及粗细各不相同的指针,即时针、分针、秒针,各个指针重合时亦可以轻易辨认。指针的运动具有规律性,且为顺时针。数字钟的钟面为一个规则的矩形,其显示时间的格式是时:分:秒,小时为24进制,分钟和秒是60进制,指针式的时钟和数字式的时钟显示的时间同步,且两个时钟所显示的时间与计算机的系统时间一致。
通过单击菜单中“编辑”菜单下的“设置时间”,可弹出设置时间的对话框。在对话框中输入用户想要设置的时间和日期,单击确定按钮,便可完成时间的设置,时钟便会按用户设置的时间来走动。
2. 设计思路
本程序是通过对话框获取用户输入的信息,然后传递给文档,最后由视图绘出界面。
开始
在文档类中,定义了钟面圆心的坐标,半径及相关变量,并在类实现中初始化。初始化流程图如图1所示。
定义圆心坐标变量
定义时分秒指针长度
定义用户设置时间的标识符
在***Doc.cpp中初始化所有变量
图1 文档初始化流程图
在对话框中,先获取系统时间,定义一个对话框对象,通过这个对象可求得用户输入的时间与系统的时间的差值,再直接记录用户输入的日期,将其保存在文档中,以供视图类使??。在菜单栏中的“编辑”选项下设置一个“设置时间”选项,单击此选项可弹出对话框。对话框的流程图如图2所示。
取系统的时间和日期
GetCurrentTime()
获取用户设置时间与系统时间的差值
记录用户设置的日期
令Flag=0,表明用户已设置时间
上述变量值存入文档
图2 对话框流程图
视图类中主要负责通过从文档中获取用户设置标志Flag判断是否有设置时间,若没有设置则直接获取系统时间;若修改了时间,则先根据文档中的相关变量算出时间和日期的初值,以后每次刷新时,不再取初值,而是只获取系统时间的秒,根据秒的走动是否为0判断分钟是否该加一,时,天,月和年同理来算出。其中判断天运算时,需和每月的天数来比较,同时还需注意闰年的问题。接着求出其指针坐标,从而可绘出电子钟。绘制指针式时钟时,先画一个圆,再用画线段的方法画出60个刻度和三个指针,接着输出12个数字,便完成钟面的绘制。视图的刷新通过SetTimer()函数来控制,在其消息响应函数OnTimer()中完成刷新。在视图类中的OnCreate()中调用定时器SetTimer(),从而每隔一段时间,SetTimer()发出WM_TIMER消息调用OnTimer()函数可实现刷新,即实现动态绘图。具体流程图见图3。
获取系统时间日期 GetCurrentTime( )
从文档中取时间和日期的初值
是否为设置后第一次刷新(flag=1?)
用户是否设置时间Flag=1 ?
用户设置了时间(Flag=0)
否,flag=1
只获取系统时间的秒,并加上差值可求得实际的秒值Second.
Flag=1 用户没有设置时间
给变量年月日时
分秒的变量赋值
是,flag=0
绘制电子钟Str.For
文档评论(0)