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

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《高级语言》课程设计 课题名称 模拟时钟转动程序 学院 信息工程 专业 网络工程 地点 D507 学 生 姓 名 钟都华 学 号 开 课 时 间 2013 至 2014 学年第 2 学期 同组人 李卓 成 绩 一、课程设计的目的和要求 1.课程设计的目的 本程序旨在训练读者的基本编程能力,使读者熟悉C语言图形模式下的编程。本程序中涉及时间结构体、数组、绘图等方面的知识。通过本程序的训练,使读者能对C语言有一个更深刻的了解,掌握利用C语言相关函数开发电子时钟的基本原理,为进一步开发出高质量的程序打下坚实的基础。 课程设计的要求 能模拟机械钟表行走;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;要准确的利用数字显示日期和时间并且可以根据用户的需求更改当前时间(指针式时钟与数字式时钟实现同步更改);数字式时钟的时间显示与指针式时钟显示一致;可以通过上下键改变当前的时、分、秒;改的时间是小时、分钟、还是秒数;通过Tab键切换按Esc时程序退出。 二、设计 如下图,此电子时钟主要由以下4个功能模块组成。 界面显示模块 电子时钟界面显示在调用时钟运行处理之前完成,在这里主要调用了C语言图形系统函数和自负屏幕处理函数画出时钟程序的主界面。主界面包括类似Windows自带的电子时钟的界面和帮助界面两部冯。电子时钟界面包括一个模拟时钟运转的钟表和一个显示时间的数字钟表。在帮助界面中,主要包括一些按键的操作说明。 按键控制模块 按键控制模块主要完成两大部分功能。第一,读取用户按键的键值。第二,通过对键盘按键值得判断,执行相应的操作,如光标移动、修改时间。 时钟动画处理模块 在时钟动画处理模块中,它通过对相关条件的判断和时钟坐标值的计算,完成时、分、秒指针的擦除和重绘,以达到模拟时钟运转的功能。 数字时钟处理模块 在数字时钟处理模块中,它主要实现了数字时钟的显示和数字时钟的修改。其中,在数字时钟的修改中,用户可先按Tab键定位需要修改内容的位置,然后通过按光标上移( )或下移( )键来修改当前时间。 功能模块设计 1.电子时钟执行主流程 此电子时钟执行主流程如右图所示。首先,程序 调用initgraph()函数,使系统进入图形模式,然后 通过使用line()、arc()、outtextxy()、circle()等 函数来绘制主窗口及电子时钟界面,最后调用clock Handle()函数来处理时钟的运转及数字时钟的显示。 在clockhandle()函数中,它使用了bioskey()函数 来获取用户的按键值,当用户按键为Esc时,程序会 从clockhandle()函数中返回,从而退出程序。 2.电子时钟界面显示 电子时钟界面的实现比较简单,在功能模块有详 细描述,值得一提的是,模拟时钟运转的动画时钟的 时间刻度是用大小不同的圆来表示的,三根长度不同 但有一端在相同坐标位置的直线分别表示时、分、秒 针。 3.按键控制模块 (1)按下Tab键,清除上一个位置的光标,然后在新位 置出绘制一个光标。 (2)按下光标上/下移键,增加/减少相应的时、分、秒 值。 (3)按下Esc键,程序结束时钟运行,从而退出系统。 4.动画处理模块 坐标点的计算 rsinα rcosα 分别是这两条虚线的长度 弧度360°=2π 在电子时钟中,秒针转动60次每一次的弧度为2π/60 = π/30;上图对于∠K而言sin=边3/边1,在程序中已经知道∠α的弧度也就知道了∠K的度数;设分钟为m则∠K的度数为m*2π/60 = m*π/30,利用C函数sin(m*π/30)则可得到边3与边1的比,带入程序rsinα则可得到边3的长度;设秒针的长度为80像素即r = 80像素 rsinα=80*sin(m*π/30)可求得rsinα长度,则可以得到相对于圆心而言X轴的偏移位置即451+rsinα 也就是K的X轴坐标。同理求的Y轴坐标,对∠K而言,cos∠K=边2/边1 则80*cos(m*π/30) 就可得到y轴的偏移位置 K坐标为(451+rsinα,200-rcosα) 数字时钟处理模块 它主要由光标上移或下移按键共同控制,当光标在时/分/秒位置且按下上移/下移按键,程序会将当前时间的时/分/秒增加/减少

文档评论(0)

四月 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档