模拟时钟转动程序课程设计报告(共16页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《模拟时钟转动程序课程设计报告(共16页).doc》由会员分享,可在线阅读,更多相关《模拟时钟转动程序课程设计报告(共16页).doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 华科学院计算机科学与技术专业程序设计综合课程设计报告 (2010/2011学年 第一学期)学生姓名: 学生班级: 学生学号: 指导教师: 2011年1月7日专心-专注-专业目 录模拟时钟转动程序第一章 课程设计的目的和要求1.1 C语言课程设计的目的加深对讲授内容的理解,尤其是一些语法规定。通过课程设计,自然地、熟练地掌握。熟悉所用的计算机系统的操作方法,也就是熟悉语言程序开发的环境。学会上机调试程序。1.2 C语言课程设计实现的要求能模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律
2、正确;数字式时钟的时间显示与指针式时钟显示一致;按任意键时程序退出。第二章 课程设计的任务内容要熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。用C语言实现一个模拟时钟转动程序。提出总体方案的设计思想和原理,绘制程序流程图和描述程序的功能,并说明程序的特点和难点。能模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与
3、指针式时钟显示一致;按任意键时程序退出。模拟时钟是一种集计时器和时钟显示于一体的程序。编写一个指针式时钟程序,此程序在屏幕正中有一个指针式钟面,窗口标题以数字方式显示日期和时间。指针式的时钟表盘为椭圆形或圆形,并且圆周上有分布均匀的12个刻度,刻度要求显示清楚,钟面上有长度不相同的指针,即时针、分针、秒针,指针的运动要求具有规律性,且为顺时针。数字钟显示时间的格式是年月日时分秒,小时为24进制,分钟和秒是60进制,指针式的时钟和数字式的时钟显示的时间同步,且两个时钟所显示的时间与计算机的系统时间一致。第三章 详细设计说明3.1 程序系统的结构模拟时钟转动程序指针式时钟数字式时钟图3.1 功能模
4、块图3.2 模块描述3.2.1 指针式时钟指针式的时钟表盘为椭圆形,并且圆周上有分布均匀的12个刻度,刻度显示清楚,钟面上有长度不相同的指针,即时针、分针、秒针,指针的运动具有规律性,为顺时针。3.2.2 数字式时钟数字钟显示时间的格式是年月日时分秒,小时为24进制,分钟和秒是60进制,指针式的时钟和数字式的时钟显示的时间同步,且两个时钟所显示的时间与计算机的系统时间一致。窗口标题为数字钟。3.3 输出项数字式时钟输出“%d年%d月%d日%d时%d分%d秒”。3.4 算法不论何种指针,每次转动均以/30弧度(一秒的角度)为基本单位,且都以表盘中心为转动圆心。计算指针端点(x, y)的公式如下:
5、x =圆心x坐标 指针长度 * cos (指针方向角)y =圆心y坐标 指针长度 * sin (指针方向角)注重,指针长度是指自圆心至指针一个端点的长度(是整个指针的一部分),由于指针可以跨越圆心,因此一个指针需要计算两个端点。三个指针的运动是相关联的,秒针转一圈引起分针运动一格,分针转一圈引起时针运动一格,因此应该使用一个定时器消息来处理指针的运动。3.5 流程图开始初始化全局对象调用SetTimer函数设定时间间隔定义画笔和画刷定义屏幕大小并确定椭圆中心的坐标绘制椭圆形的钟面获取当前时间调用Move To()和Line To()绘制时钟钟面的指针和刻度调用消息处理函数刷新窗口显示创建数字钟
6、字体对数字钟进行输出时间显示退出调出菜单项调整时间结束图3.2 程序流程图3.6 函数说明 1.OnDraw()函数实现对系统时间的获取和绘制椭圆表面和时钟指针。2.设置计时器,创建窗口时启动一个计时器不断发出WM_TIMER消息,调用SetTimer()函数。3.用TextOut()函数显示数字钟。画模拟时钟最重要的大约就是三角函数了。手机和电脑的默认坐标系都是原点在左上角。这样,我们确定了圆心位置后,就确定了表的位置,表针,表盘的位置坐标都在以圆心为中心的圆环上。其坐标可以通过三解函数推导出来。设圆心为(X,Y),半径为R,表上其他点的坐标为(X1,Y1),该点与圆心X轴夹角为A,大致可以
7、推出该点坐标公式:位于圆心右上角点的公式为:X1 = X + RcosA;Y1 = Y - RsinA;位于圆心左上角点的公式为:X1 = X - RcosA;Y1 = Y - RsinA;位于圆心左下角的公式为:X1 = X - RcosA;Y1 = Y + RsinA;位于圆心右下角的公式为:X1 = X + RcosA;Y1 = Y + RsinA;如果+ -使用角度来校正,公式就可以统一为X1 = X + RcosA;Y1 = Y + RsinA;由于表是顺时针转动,我们的角度习惯上使用逆时针,所以我们使用自己校正后的角度值,从12点开始,按顺时针重新排列三角函数值,加入对角度正负的校
8、正。首先定义一些时钟常用的宏:#define ANALOG_CENTER_X (227) /时钟显示的中心位置的横坐标 227#define ANALOG_CENTER_Y (178) /时钟显示的中心位置的纵坐标 178#define ANALOG_R (150) /时钟显示图的半径 150#define ANALOG_CENTER_R (10) /时钟显示中心图形的半径 10#define ANALOG_HOUR_LEN (ANALOG_R-80) /时针长短(半径)70#define ANALOG_MINUTE_LEN (ANALOG_R-50) /分针长短(半径)100#define
9、ANALOG_SECOND_LEN (ANALOG_R-30) /秒针长短(半径)1203.7 接口 1.是主要的头文件,它包含了其他Windows头文件。2.数学函数库,一些数学计算的公式的具体实现是放在math.h里。3.8 调试结果图3.3 运行结果第四章 软件使用说明4.1 软件使用说明及出现的问题在vc+6.0中新建一个win32 application 项目,然后新建一个C+文件 输入代码。运行后显示一个正在行走的机械时钟。将数字日期显示为窗口标题。按任意键退出。4.2 运行结果图4.1 运行结果第五章 课程设计心得与体会经过一个学期对课程设计的学习,我们学习了理论知识,了解了C语
10、言程序设计的思想,这些知识都为我们的下一步学习打下了坚实的基础。通过课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。通过对模拟时钟的设计进一步的巩固了用C+编写程序,并且有利于更好的掌握程序设计语言!在模拟时钟的编写过程中也体会到了做事情一顶要细心、认真。更加知道了要掌握好基础知识。还有体会到了成功的感觉! 通过本项课程设计也培养了我独立思考、 综合运用所学有关相应知识的能力,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!由于程序设计语言是近年在国内外得
11、到迅速推广应用的一种语言。它功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。通过这次的程序设计更加了解了语言设计的好处和其可用性!在这次课程设计中也知道了自己的动手能力不强有待进一部的提高!在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!在设计过程中的一次次设计错误增加了我放弃的想法!不过经过自己的独立思考和同学的帮助终于完成了课程设计!完成该程序后想起自己以前的每一次对自己失去信心,就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!只要自己对自己不失去信心相信就可以完成那些以前认为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 时钟 转动 程序 课程设计 报告 16
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内