欢迎来到天天文库
浏览记录
ID:35625510
大小:114.00 KB
页数:9页
时间:2019-04-03
《课程设计--C语言时钟图形输出系统设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、宁波大红鹰学院信息工程学院课程设计报告项目名称:时钟图形输出项目组长:项目成员:班级名称:10信管4专业名称:信息管理与信息系统完成时间:2011年6月24日信息工程学院制一、案例描述1.、总体描述制作一个简单的钟面图形,方便我们看时间。时间与系统时间相一致,并且时针,分针,秒针会根据时间的变化而移动。2、模块描述 1)钟面模块:钟面是圆形的,用一个for循环在圆内侧画上均匀的时间刻度,在3 点,6点,9点,12点的刻度位置各有一个小长方形,使钟面更加方 便看时间。 2)时间模块:从电脑上获取时间后,与保存的时间数据作对
2、比,如果不一样就画一 条与底色相同的直线将该直线覆盖,再根据当前时间转化成时钟,分 钟,秒钟,的移动来显示时间。 3)动画模块:用任意变换各种颜色的圆圈,增加界面的美感。 一、界面设计模拟家庭钟表,利用时针,分针,秒针进行时间显示。本软件界面友好,打开后便运行,看时间很方便,一目了然,也很人性化的显示出数字时间。二、模块化设计方案1、系统主要函数及功能1)drawclock函数:功能为绘制时钟图形绘制时钟圆盘,及时间刻度,方便使用者观看。2)showtime函数:功能为显示时间通过时针,分针,秒针的移动来显示时间。还有显
3、示数字化的时钟,在整点时会报时提示。3)flash函数:显示动画增加界面的美观度。2、主函数调用各功能函数流程图时钟图形输出图形初始化画钟盘钟针移动一、算法设计1,显示时间开始获取时间数字保存的时间数字是否一致否用与底色相同的线来覆盖根据当前时间画线保存数据结束是在电脑上获取时间后,时,分,秒分别利用弧度转化成win-tc能识别的信息,再通过时钟,分钟,秒钟的移动来显示时间。2.时钟设计开始以圆心为(320,240)半径为150画圆,圆的颜色为红色画一个与圆大小相同的椭圆,填充色为黑色画时间刻度,i=0i%5=0?否是画
4、出刻度线i++i<60?是结束否是是钟盘为圆形,钟盘内有12条均匀的时间刻度,其中在12点,3点,6点,9点的地方分别有一个小方格为,为看时间提供方便。拓展功能介绍1)秒钟每走一秒都会发出声音,用sound(2000)和nosound()来实现,使得每走一秒都会停顿下声音。2)整点报时,当秒针和分针都指向0时,发出蜂鸣声提示。3)在钟盘上能同时显示数字化的时钟。4)在钟盘周围有很多分布均匀的圆圈,每个圆圈都会随机变换出不同的颜色,画面每一秒都会不停的改变。一、程序运行结果画面每一秒都会不停的改变。每次都把时间记录保存,在
5、指针移动时不断用相同颜色的线覆盖前一秒的指针痕迹,并且根据当前所获得的时间画出新的直线。数字时钟底面的方格不停的更新,覆盖每个时间的变化,显示出当前的时间。一、总结1、工作时间时钟绘制——6月4日至6月7日时间显示——6月8日至6月13日动画——6月14日至6月17日整点报时——6月19日报告——6月20日至6月22日2、分工情况何洁:构造整体的思路,设计程序的整个框架,编写showtime函数,并对初步完成的整个程序做调试修改。制作报告的案例描述,模块设计方案,心得体会。潘昇琳:编写drawclock函数,制作报告的算
6、法设计。王树康:制作报告的封面,界面设计,程序运行结果,总结。3、心得体会对于这个时钟代码,虽然老师说很简单,可是我觉得比前两个更加有难度,可能对绘图函数掌握的不好,可能是第一次做不熟练。在写showtime函数时,我花了2个多小时用分象限的方法将钟面分成四个象限分别编写3个指针的移动运行程序,可是在运行时指针乱的惨不忍睹,当时很气馁,后来问了其他同学才知道老师上课说要用弧度来算的,这让我对“课认真听讲”有了更深刻的体会!在写拓展功能时,一直没有声音,改了很多次依然以失败告终,不得不去请教他人,没想到那个同学也遇到过类似
7、的问题,根据他的建议果断把代码放到他的电脑上运行,发现果然是我电脑的问题。通过这个问题的解决,我发现我们对电脑的认识实在太少了,平时只知道用它来上网聊天游戏,却从来没研究过关于电脑的知识。在编写动画代码时我不知道闪烁的效果,最好的效果也就是颜色变化太快,每次看到的似乎一成不变。通过上网查资料后,发现一个能让颜色随机变换的函数,在我不断的修改运行后,终于实现了,虽然画面简单,但毕竟是自己做的,还是很开心。在这个代码做完之后,我领悟到了:遇到困难时需要刻苦钻研,但不要一个人钻牛角尖,这样只会让自己走上死胡同,团队的力量是非常
8、伟大的,既然我们是一个小组,那么遇到困难我们就要一起想办法解决,把团队的力量最大限度的发挥出来。附页(源代码附加注释)voiddrawclock(){inti,j,x1,y1,x2,y2;setcolor(4);setlinestyle(0,0,3);setbkcolor(0);circle(X,Y,SIZE);/*
此文档下载收益归作者所有