1、 XX 大学 课程设计说明书 学生姓名: 学 号: 学 院: 专 业: 题 目: 指针式时钟 指导教师:指导教师: 职称职称: : 2013 年 1 月 11 日 XX 大学 课程设计任务书 12/13 学年第 一 学期 学 院: 专 业: 学 生 姓 名: 学 号: 题 目: 指针式时钟 起 迄 日 期: 课程设计地点: 指 导 教 师: 系 主 任: 下达任务书日期: 2012 年 12 月 24 日 课课 程程 设设 计计 任任 务务 书书 1设计目的: 综合应用 VC+的各种编程知识和技巧进行程序设计的能力,最终掌握面向对象的编 程技术。通过本次课程设计,培养自主学习和独立创新能力。
2、2设计内容和要求(包括原始数据、技术参数、条件、设计要求等) : 功能说明: 使用计时器创建一个时钟。 (1)计时器是程序中最常用的后台任务机制之一,其时间间隔最低约 55 毫秒,被广 泛用于时钟、磁盘备份程序或需要在某一时刻运行的程序等。 (2)多媒体计时器能编程设定 1 毫秒或者更小, 它是诸如 MIDI 序列发生器之类的专用 型应用程序的理想选择,在 Windows API 中有很多查询时钟的函数,利用它们就可以 编写出高精度的计时器。 设计方案: 程序所实现的功能:运行界面是一指针式时钟,有时分秒三个指针,有 12 个钟点数 字的显示,并通过指针的转动来实现时间的更新。 设计分析: 了
3、解两个函数: CWnd:SetTimer()函数用来设置一个计时器以指定的时间间隔触发, CWnd: :KillTimer()函数用来使一个正在运行的计时器停止。建立一个 MFC 单个文档应用 程序工程;打开 MFC ClassWizard,为 1view 类添加 OnCreate 和 Ontimer 函数,在视图类 中添加 3 个方法:编辑 OnCreate 方法的代码,用来设置时钟。编辑 OnTimer 方法用来更 新窗口。编辑 OnDraw 方法的代码,实现绘制时钟。创建视图消息处理函数,初始化计时 器,通过一个计时器消息,使视图一秒发送一次消息,以保证时间的准确性。计时器消息 处理函数
4、。流程图如下: 开始 绘制时钟、分钟、秒钟针 。 绘制椭圆 绘制钟点 初始化计时器 计时器处理 结束 3设计工作任务及工作量的要求包括课程设计计算说明书(论文)、图纸、 实物样品等 : 本题主要涉及到的知识点有:时钟指针运动算法、屏幕重绘方法、定时器消息、菜单命 令、对话框、画笔/画刷、显示文字等。指针运动算法和屏幕重绘方法是本程序主要难点 所在。 不论何种指针,每次转动均以 /30 弧度(一秒的角度)为基本单位,且都以表盘中心 为转动圆心。计算指针端点(x, y)的公式如下: x =圆心 x 坐标 + 指针长度 * cos (指针方向角) y =圆心 y 坐标 + 指针长度 * sin (指
5、针方向角) 注意,指针长度是指自圆心至指针一个端点的长度(是整个指针的一部分) ,由于指针可 能跨越圆心,因此一个指针需要计算两个端点。 三个指针的运动是相关联的,秒针转一圈引起分针运动一格,分针转一圈引起时针运动 一格,因此应该使用一个定时器消息来处理指针的运动。 (1) OnDraw()函数实现对系统时间的获取和绘制椭圆表面和时钟指针。 (2) 设置计时器, 创建窗口时启动一个计时器不断发出WM_TIMER消息, 调用SetTimer() 函数。 (3) 用 TextOut()函数显示数字钟。 (4) 添加菜单,用菜单项控制弹出对话框设置显示的时间。 课课 程程 设设 计计 任任 务务 书书 4主要参考文献: Visual C+课程设计案例精编 Visual C+程序设计基础与实例分析 ,朱晴婷,黄海鹰,陈莲君,清华大学出 版社。 Visual C+6.0 开发技巧与实例教程 ,同志工作室,人民邮电出版社。 Visual C+6.0 面向对象程序设计教程 ,刘瑞新,机械工业出版社。 5设计成果形式及要求: 程