- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模拟时钟程序设计解读
目录
1.设计目的和内容
2.基本功能描述
3.设计思路
4.软件设计:设计步骤、界面设计、关键功能的实现
5.结论与心得体会
6.参考文献
7.附录:调试报告、测试结果、关键源代码
1.设计目的和实验内容
1.1设计目的:
学习Visual C++的MFC开发程序的步骤。
。
1.2 实验内容
基于MFC的WINDOWS应用程序设计方法,编写一个模拟时钟程序;
在屏幕中间有一个指针式时钟;
这个时钟的下方或者上方以数字方式显示时间,该时间应与指针显示的时间一致;
用菜单选项打开的对话框,或者主界面里的控件设置时间。时间不必与机器系统时间相同,可任意设置。
2.基本功能描述
编辑运行代码时,窗口界面会出现一个色调为绿色,背景为黑色的指针时钟;一个精确到秒的数字时钟;一个退出按钮;一个设置按钮;三个设置自定义时间的编辑框。运行时调用的为系统的时间,在编辑框中分别输入自定义时分秒点击设置,指针时钟和数字时钟会跳转为自定义时间。按退出键关闭窗口。
3.设计思路
首先,指针时钟的背景,指针形状长度,正点格子和秒数格子的设计代码过于繁琐和复杂,稍做了解便可从网上抄录,然后再把参数及变量改成自己设计部分所需的名称即可。
其次,本程序的基础及核心思路为用一个计数器器SetTime(1,1000,NULL)调用WM_TIMER的On Timer()函数,达到更新时间,重绘窗口的效果。
而在程序初步完成后,导师初查指出用SetTime()计数与系统时间的进度存在误差,所以不可以用SetTime()函数计时。于是本人将算法改成用系统时间和编辑框输入的时间
作差,得到一个定值,再用系统时间减去这个定值就为设置的时间了,此时SetTime()函
数仅仅起到一个重绘作用,时间进度是有系统时间进度决定的。
以上便是本次实验的设计思路。
软件设计:设计步骤、界面设计、关键功能的实现
4.1 设计步骤
决定用基本对话框来完成本次实验并设计好实验的对话框样式,添加所需的按钮、编辑框等控件。
数字时钟难度不大,而指针时钟比较困难,上网查阅指针时钟的制作的教程,并寻找所需的函数。定义好需要的类和成员函数。
设计算法并成员函数。
4.2 界面设计
根据课设题目的要求,我决定设计两个个静态文本分别输出指针时钟的图像和数字时钟的数字显示;设置三个编辑框输入自定义的时分秒;设置两个按钮接收设置的时间和退出程序。
4.3 关键功能的实现
用CTime::GetCurrentTime()调用系统的时间;定义一个CTime的对象t,用t.GetHour(),t.GetMinute(),t.GetSecond()抽出时间的时分秒,并同意化成距0:00:00时刻的秒数;用该秒数减去自定义时间的秒数然后化成十分秒的形式,分别在指针时钟和数字时钟的静态文本上输出,并用SetTime()函数每一秒输出一次(即重绘)。便可实现显示时间功能。
心得与体会
完成本次课程设计是我大学生涯做过最困难的事情,没有之一。由于过度自信和选择的随意,在没有了解MFC之前变随意选择了一个题目。动手起来处处是难点,每完成一个部分都要花费大量时间,效率十分低。于是花费一天时间查阅文字资料,终于会MFC程序设计有了一定的了解,着手起来顺利许多。元旦前一天整个下午都在机房向老师请教问题,感觉之前从网上生搬硬套的东西也通透了很多。最后在跨年钟声敲响前一刻完成了试验,感觉整个人一下轻松下来,细想收获颇丰。
参考文献
百度文库“指针时钟制作教程”
调试报告、测试结果、关键源代码
7.1 调试报告
调试成功,无错误报告
7.2
测试结果如图所示
系统时间
自定义时间1
自定义时间2
7.3 关键源代码
7.31 设置按钮和编辑框的关联
void CClock2Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData();
CTime t=CTime::GetCurrentTime();
ssecond=(t.GetHour()-atoi(m_s1))*3600+(t.GetMinute()-atoi(m_s2))*60+t.GetSecond()-atoi(m_s3);
}
7.32 退出按钮的实现
}
void CClock2Dlg::Onexitbt()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
KillTimer(1);
}
7.33 实现系统时间与自定义
您可能关注的文档
- 2016最新人教版三年级音乐上册表格式备课重点.doc
- 模块复习课阅读鉴赏篇解读.doc
- 模块一静力学基本知识解读.ppt
- 模塑可行性方案报告解读.ppt
- 中国古代政治第3、4课解析.ppt
- 中国古代手工业课件解析.ppt
- 中国古代文学简答笔记整理(宋元时期)解析.doc
- 模块四汽车艺术文化解读.ppt
- 中国古代史课件第七讲解析.ppt
- 模型第1篇解读.ppt
- 人教版二年级上册数学期末测试卷及参考答案【巩固】.docx
- 人教版二年级上册数学期末测试卷及参考答案一套.docx
- 人教版二年级上册数学期末测试卷及完整答案1套.docx
- 人教版二年级上册数学期末测试卷及完整答案(名校卷).docx
- 人教版二年级上册数学期末测试卷及完整答案【精选题】.docx
- 人教版二年级上册数学期末测试卷及完整答案【网校专用】.docx
- 人教版二年级上册数学期末测试卷及完整答案(夺冠系列).docx
- 人教版二年级上册数学期末测试卷及完整答案(必刷).docx
- 人教版二年级上册数学期末测试卷含完整答案【历年真题】.docx
- 人教版二年级上册数学期末测试卷及答案【考点梳理】.docx
文档评论(0)