文档详情

模拟时钟程序设计..doc

发布:2017-01-26约6.27千字共11页下载文档
文本预览下载声明
目录 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 实现系统时间与自定义
显示全部
相似文档