- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C
语
言
程
序
设
计
课程设计总结报告
设计题目: 模拟时钟转动
姓 名: 冯利恒
学 号: 052411259
同组人员:马高伟、尚格格、杨硕、张富晴
指导教师: 杨斌、冯巧娟、张向娟
2012年 6 月 21 日
目 录
第一章 课程设计的题目、时间及地点 1
1.1课程设计的题目 1
1.2 课程设计时间及地点 1
第二章 课程设计的任务内容及要求 2
第三章 设计说明 3
3.1 程序系统的结构 3
3.2 模块描述 3
3.2.1 指针式时钟 3
3.2.2 数字式时钟 3
3.3 输出项 3
3.4 算法 3
3.5 流程图 4
3.6 函数说明 5
3.7 接口 5
第四章 程序代码 6
第五章 课程设计心得与体会 12
附录1:参考文献 13
模拟时钟转动程序
第一章 课程设计的题目
1.1课程设计的题目
模拟时钟转动
1.2 课程设计的时间及地点
1、时间:第18周——第19周
2、地点:公共计算机实践教学中心、本班教室
第二章 课程设计的任务内容及要求
要熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。C语言实现一个模拟时钟转动程序。
提出总体方案的设计思想和原理,绘制程序流程图并描述程序的功能,说明程序的特点及设计难点。
能模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致;按任意键时程序退出。
模拟时钟是一种集计时器和时钟显示于一体的程序。编写一个指针式时钟程序,此程序在屏幕正中有一个指针式钟面,窗口标题以数字方式显示日期和时间。指针式的时钟表盘为椭圆形或圆形,并且圆周上有分布均匀的12个刻度,刻度要求显示清楚,钟面上有长度不相同的指针,即时针、分针、秒针,指针的运动要求具有规律性,且为顺时针。数字钟显示时间的格式是年月日时分秒,小时为24进制,分钟和秒是60进制,指针式的时钟和数字式的时钟显示的时间同步,且两个时钟所显示的时间与计算机的系统时间一致。
注意:
建立工程是win32 Application,建立文件是C++ SOURCE FILE程序系统的结构
图3.1 功能模块图
3.2 模块描述
3.2.1 指针式时钟
指针式的时钟表盘为椭圆形,并且圆周上有分布均匀的12个刻度,刻度显示清楚,钟面上有长度不相同的指针,即时针、分针、秒针,指针的运动具有规律性,为顺时针。
3.2.2 数字式时钟
数字钟显示时间的格式是年月日时分秒,小时为24进制,分钟和秒是60进制,指针式的时钟和数字式的时钟显示的时间同步,且两个时钟所显示的时间与计算机的系统时间一致。窗口标题为数字钟。
3.3 输出项
图3.2 程序流程图
3.6 函数说明
1.OnDraw()函数实现对系统时间的获取和绘制椭圆表面和时钟指针。
2.设置计时器,创建窗口时启动一个计时器不断发出WM_TIMER消息,调用SetTimer()函数。
3.用TextOut()函数显示数字钟。
画模拟时钟最重要的大约就是三角函数了。手机和电脑的默认坐标系都是原点在左上角。这样,我们确定了圆心位置后,就确定了表的位置,表针,表盘的位置坐标都在以圆心为中心的圆环上。其坐标可以通过三解函数推导出来。设圆心为(X,Y),半径为R,表上其他点的坐标为(X1,Y1),该点与圆心X轴夹角为A,大致可以推出该点坐标公式:
位于圆心右上角点的公式为: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点开始,按顺时针重新排列三角函数值,加入对角度正负的校正。
首先定义一些时钟常用的宏:
#define ANAL
文档评论(0)