模拟时钟转动程序课程设计报告

上传人:飞*** 文档编号:28733551 上传时间:2018-01-19 格式:DOC 页数:27 大小:14.95MB
返回 下载 相关 举报
模拟时钟转动程序课程设计报告_第1页
第1页 / 共27页
模拟时钟转动程序课程设计报告_第2页
第2页 / 共27页
模拟时钟转动程序课程设计报告_第3页
第3页 / 共27页
模拟时钟转动程序课程设计报告_第4页
第4页 / 共27页
模拟时钟转动程序课程设计报告_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《模拟时钟转动程序课程设计报告》由会员分享,可在线阅读,更多相关《模拟时钟转动程序课程设计报告(27页珍藏版)》请在金锄头文库上搜索。

1、程序设计综合课程设计I课程设计报告题 目 课 程 名 称 结构化程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 学 号 课程设计地点 课程设计学时 指 导 教 师 程序设计综合课程设计II目 录第一章 课程设计的目的和要求 .1.1 C 语言课程设计的目的 .1.2 C 语言课程设计实现的要求 .第二章 课程设计的任务内容 .第三章 详细设计说明 .3.1 程序系统的结构 .3.1.1 实验设备及环境:(软、硬件环境)3.2 模块描述 .3.2.1 指针式时钟 .3.2.2 数字式时钟 .3.3 输出项 .3.4 算法 .3.5 流程图 .3.6 函数说明 .3.7 接口 .

2、3.8 调试结果 .第四章 软件使用说明 .4.1 软件使用说明及出现的问题 .4.2 运行结果 .第五章 课程设计心得与体会 .附录 1:参考文献 .附录 2:修改后的源代码程序设计综合课程设计1模拟时钟转动程序第一章 课程设计的目的和要求1.1 C 语言课程设计的目的加深对讲授内容的理解,尤其是一些语法规定。通过课程设计,自然地、熟练地掌握。熟悉所用的计算机系统的操作方法,也就是熟悉语言程序开发的环境。学会上机调试程序。通过编程最终使程序运行结果为电脑屏幕显示模拟时钟,并正常运行显示表针时间。1.2 C 语言课程设计实现的要求能模拟机械钟表行走;在屏幕上显示一个活动时钟;程序界面设计合理,

3、色彩得体大方,显示正确;各指针运动规律正确;要准确地利用数字显示日期和时间并且可以根据用户的需求更改当前时间(指针式时钟与数字式时钟实现同步更改);数字式时钟的时间显示与指针式时钟显示一致;可以通过上下键改变当前的时、分、秒;改的时间是小时、分钟、还是秒数;通过 Tab 键切换按 Esc 时程序退出。程序设计综合课程设计2第二章 课程设计的任务内容要熟练掌握 C 语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等) ;运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等) ;程序结构(顺序结构、判断选择结构、循环结构) ;大程序的功能分解方法(即函数的使用)等。用 C 语言实现

4、一个模拟时钟转动程序;Graphics 函数库。提出总体方案的设计思想和原理,绘制程序流程图和描述程序的功能,并说明程序的特点和难点。能模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致;按任意键时程序退出。模拟时钟是一种集计时器和时钟显示于一体的程序。编写一个指针式时钟程序,此程序在屏幕正中有一个指针式钟面,窗口标题以数字方式显示日期和时间。指针式的时钟表盘为椭圆形或圆形,并且圆周上有分布均匀的 12 个刻度,刻度要求显示清楚,钟面上有长度不相同的指针,即时针、分针

5、、秒针,指针的运动要求具有规律性,且为顺时针。数字钟显示时间的格式是年月日时分秒,小时为 24 进制,分钟和秒是 60 进制,指针式的时钟和数字式的时钟显示的时间同步,且两个时钟所显示的时间与计算机的系统时间一致。程序设计综合课程设计3第三章 详细设计说明3.1 程序系统的结构模拟时钟转动程序指针式时钟 数字式时钟(用户可根据需要修改当前时间)图 3.1 功能模块图3.1.1 实验设备及环境:(软、硬件环境)Windows XP 操作系统Win TC IDE C 语言开发环境Hp 笔记本3.2 模块描述3.2.1 指针式时钟指针式的时钟表盘为圆形,并且圆周上有分布均匀的 12 个较大刻度和六十

6、个较小的刻度,刻度显示清楚,分别表示小时、分钟和秒数钟面上有长度不相同的指针,即时针、分针、秒针,指针的运动具有规律性,为顺时针。3.2.2 数字式时钟数字钟显示时间的格式是时分秒,小时为 24 进制,分钟和秒是 60 进制,指针式的时钟和数字式的时钟显示的时间同步,且两个时钟所显示的时间与计算机的系程序设计综合课程设计4统时间一致。3.3 输出项数字式时钟输出“%d 时%d 分%d 秒”。3.4 算法#define 宏定义部分定义变量。利用函数 circle(,)定义圆即表盘及轴心,其中(,)为圆心坐标,为半径。利用函数 setbkcolor、setcolor 设置颜色。gettime(t)

7、获取电脑时间进行显示 sound()、delay()函数设置表针走动声音对应走动刻度。应用 c 语言库函数进行表盘及颜色的的处理,编写表针运算函数,及表针影像颜色覆盖处理详见程序注释。不论何种指针,每次转动均以 /30 弧度(一秒的角度)为基本单位,且都以表盘中心为转动圆心。计算指针端点(x, y)的公式如下:x =圆心 x 坐标 指针长度 * cos (指针方向角)y =圆心 y 坐标 指针长度 * sin (指针方向角)注重,指针长度是指自圆心至指针一个端点的长度(是整个指针的一部分),由于指针可以跨越圆心,因此一个指针需要计算两个端点。三个指针的运动是相关联的,秒针转一圈引起分针运动一格

8、,分针转一圈引起时针运动一格,因此应该使用消息来处理指针的运动。程序设计综合课程设计53.5 流程图开始初始化图形系统设置窗体的背景色、前景色及画笔画出主体框架的边直线、边角弧线画出时钟的框架、标题及时分秒的刻度;绘制数字式时钟下的数字时钟的边框架窗口左边打印帮助提示信息调用时钟处理程序获取当前时间并显示调用消息处理函数刷新窗口显示(1 秒)创建数字钟字体对数字钟进行输出判断修改是增加还是减少退出(Esc)调出 digitalClock结束图 3.2 程序流程图程序设计综合课程设计63.6 函数说明 绘制小时的圆点:x=100*sin(h*60+m)/360*PI)+451;y=200-100

9、*cos(h*60+m)/360*PI);绘制表示分钟或秒钟的圆点:x=100*sin(m/30*PI)+451;y=200-100*cos(m/30*PI);由于表是顺时针转动,我们的角度习惯上使用逆时针,所以我们使用自己校正后的角度值,从 12 点开始,按顺时针重新排列三角函数值,加入对角度正负的校正。1、程序与处理包括加载头文件,定义常量、变量、结构体数组和函数原型声明。主函数 main()main()函数主要实现了对电子时钟的初始化工作,及 clockhandle()函数的调用。main() int driver, mode=0, i, j;driver=DETECT; /*自动检测显

10、示设备 */initgraph(&driver, &mode, ) /*初始化图形系统*/setlinestyle(0,0,3); /*设置当前画线宽度和类型:设置三点宽实线*/setbbcolor(0); /*用调色板设置当前背景颜色*/setcolor(9); /*设置当前画线颜色*/2、在电子表的左边打印帮助提示信息,相当于软件的使用说明。3、时钟按键控制模块在电子时钟中,按键控制模块最主要的工作就是必须能读取用户按键,对按键值进行判断,并调用相应函数来执行相关操作。程序设计综合课程设计7int keyhandle (int key, int count) /*键盘控制*/4、数字时钟处

11、理模块在数字时钟处理模块中,主要实现数字时钟的显示和数字时钟的修改。其中,在数字时钟的修改中,用户可先按 Tab 键定位需要修改内容的位置,然后通过按光标上移或下移键来修改当前时间。它的主要工作如下:(1)调用 digitclock(int x,int y,int clock)函数,在数字时钟 r 指定位置显示时、分、秒,其中 digithour(double h)、int digithour(double h)和 digitsec(double s) 用于完成数值的型向 int 型转换。(2)调用 drawcursor(int count)、clearcursor(int count)函数来

12、完成旧光标的擦除和新光标的绘制。首先定义一些时钟常用的宏和定义处理时钟的一些函数及保存数据的变量:程序设计综合课程设计8int keyhandle(int,int); /*键盘按键判断,并调用相关函数处理*/int timeupchange(int); /*处理上移按键*/int timedownchange(int); /*处理下移按键*/int digithour(double); /*将 double 型的小时数转换成 int 型*/int digitmin(double); /*将 double 型的分钟数转换成 int 型*/int digitsec(double); /*将 double 型的秒钟数转换成 int 型*/voi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号