C语言时钟图形输出系统设计报告_第1页
C语言时钟图形输出系统设计报告_第2页
C语言时钟图形输出系统设计报告_第3页
C语言时钟图形输出系统设计报告_第4页
C语言时钟图形输出系统设计报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-大红鹰学院信息工程学院课程设计报告工程名称:时钟图形输出工程组长:王树康工程成员:何洁,昇琳班级名称:10信管4专业名称:信息管理与信息系统完成时间: 2021年6月24日信息工程学院制一、 案例描述1. 、总体描述制作一个简单的钟面图形,方便我们看时间。时间与系统时间相一致,并且时针,分针,秒针会根据时间的变 化而移动。2、模块描述 1钟面模块:钟面是圆形的,用一个for循环在圆侧画上均匀的时间刻度,在3 点,6点,9点,12 点的刻度位置各有一个小长方形,使钟面更加方 便看时间。 2时间模块:从电脑上获取时间后,与保存的时间数据作比照,如果不一样就画一 条与底色一样的直线将该直线覆盖,再

2、根据当前时间转化成时钟,分 钟,秒钟,的移动来显示时间。 3动画模块:用任意变换各种颜色的圆圈,增加界面的美感。二、 界面设计模拟家庭钟表,利用时针,分针,秒针进展时间显示。 本软件界面友好,翻开后便运行,看时间很方便,一目了然,也很人性化的显示 出数字时间。三、 模块化设计方案1、系统主要函数及功能 1drawclock函数:功能为绘制时钟图形 绘制时钟圆盘,及时间刻度,方便使用者观看。 2showtime函数:功能为显示时间 通过时针,分针,秒针的移动来显示时间。还有显示 数字化的时钟,在整点时会报时提示。 3 flash函数: 显示动画 增加界面的美观度。2、主函数调用各功能函数流程图时

3、钟图形输出图形初始化画钟盘钟针移动四、 算法设计1,显示时间开场获取时间数字保存的时间数字是否一致否用与底色一样的线来覆盖根据当前时间画线保存数据完毕是在电脑上获取时间后,时,分,秒分别利用弧度转化成win-tc能识别的信息, 再通过时钟,分钟,秒钟的移动来显示时间。2时钟设计开场以圆心为320,240半径为150画圆,圆的颜色为红色画一个与圆大小一样的椭圆,填充色为黑色画时间刻度,i=0i%5=0? 否 是 画出刻度线i+ i<60? 是完毕 否是是 钟盘为圆形,钟盘有 12条均匀的时间刻度,其中在12点,3点, 6点, 9点的地方分别有一个小方格为,为看时间提供方便。拓展功能介绍1秒

4、钟每走一秒都会发出声音,用sound(2000)和nosound来实现,使得每走一 秒都会停顿下声音。 2整点报时,当秒针和分针都指向0时,发出蜂鸣声提示。 3在钟盘上能同时显示数字化的时钟。 4在钟盘周围有很多分布均匀的圆圈,每个圆圈都会随机变换出不同的颜色, 画面每一秒都会不停的改变。五、 程序运行结果画面每一秒都会不停的改变。每次都把时间记录保存,在指针移动时不断用一样颜色的线覆盖前一秒的指针痕迹,并且根据当前所获得的时间画出新的直线。数字时钟底面的方格不停的更新,覆盖每个时间的变化,显示出当前的时间。六、 总结1、工作时间时钟绘制6月4日至6月7日时间显示6月8日至6月13日动画6月1

5、4日至6月17日整点报时6月19日报告6月20日至6月22日2、分工情况 何洁:构造整体的思路,设计程序的整个框架,编写showtime函数,并对初步完成 的整个程序做调试修改。制作报告的案例描述,模块设计方案,心得体会。昇琳:编写drawclock函数,制作报告的算法设计。王树康:制作报告的封面,界面设计,程序运行结果,总结。 3、心得体会对于这个时钟代码,虽然教师说很简单,可是我觉得比前两个更加有难度,可 能对绘图函数掌握的不好,可能是第一次做不熟练。 在写showtime函数时,我花了2个多小时用分象限的方法将钟面分成四个象 限分别编写3个指针的移动运行程序,可是在运行时指针乱的惨不忍睹

6、,当时很气 馁,后来问了其他同学才知道教师上课说要用弧度来算的,这让我对“课认真听讲 有了更深刻的体会!在写拓展功能时,一直没有声音,改了很屡次依然以失败告终, 不得不去请教他人,没想到那个同学也遇到过类似的问题,根据他的建议果断把代 码放到他的电脑上运行,发现果然是我电脑的问题。通过这个问题的解决,我发现 我 们对电脑的认识实在太少了,平时只知道用它来上网聊天游戏,却从来没研究过关 于电脑的知识。在编写动画代码时我不知道闪烁的效果,最好的效果也就是颜色变 化太快,每次看到的似乎一成不变。通过上网查资料后,发现一个能让颜色随机变 换的函数,在我不断的修改运行后,终于实现了,虽然画面简单,但毕竟

7、是自己做 的,还是很开心。 在这个代码做完之后,我领悟到了:遇到困难时需要刻苦钻研,但不要一个人 钻牛角尖,这样只会让自己走上死胡同,团队的力量是非常伟大的,既然我们是一 个小组,则遇到困难我们就要一起想方法解决,把团队的力量最大限度的发挥出 来。附页源代码附加注释void drawclock()int i,j,*1,y1,*2,y2;setcolor(4);setlinestyle(0,0,3);setbkcolor(0);circle(*,Y,SIZE); /*在给定半径以*,Y为圆心画圆*/setfillstyle(SOLID_FILL,0);fillellipse(*,Y,SIZE,S

8、IZE); /* 画椭圆,*,y为中心点坐标, *radius,yradius为*方向半径和y方向半径*/rectangle(317,92,323,102); /*画矩形*/rectangle(458,237,468,243);rectangle(317,378,323,388);rectangle(172,237,182,243); for (i=0;i<60;i+) /*画钟盘刻度*/ if(i%5=0) *1=SIZE*cos(i*6*PI/180)+*; y1=SIZE*sin(i*6*PI/180)+Y; *2=(SIZE-7)*cos(i*6*PI/180)+*; y2=(S

9、IZE-7)*sin(i*6*PI/180)+Y; setcolor(4); line(*1,y1,*2,y2); void showtime() int h,m,s,s1,m1,h1,i,j; int *1,y1,*2,y2,*3,y3; char date30,p15; time_t t; while(!kbhit() /*不点击键盘*/ t=time(NULL); /*获取时间*/ strcpy(date,ctime(&t); h=(date11-'0')*10+(date12-'0'); m=(date14-'0')*10+(da

10、te15-'0'); s=(date17-'0')*10+(date18-'0'); h1=(h%12*5+45)%60; m1=(m+45)%60; s1=(s+45)%60; *1=*+(SIZE-60)*cos(h1*6*PI/180); y1=Y+(SIZE-60)*sin(h1*6*PI/180); setcolor(4); line(*,Y,*1,y1); *2=*+(SIZE-40)*cos(m1*6*PI/180); y2=Y+(SIZE-40)*sin(m1*6*PI/180); setcolor(10); line(*,Y,*

11、2,y2); *3=*+(SIZE-20)*cos(s1*6*PI/180); y3=Y+(SIZE-20)*sin(s1*6*PI/180); setcolor(15); line(*,Y,*3,y3);setfillstyle(1,10); /*数字化时钟底面*/bar(220,320,420,340);setcolor(15);for(i=11,j=0;i<=19;i+,j+)pj=datei;for(i=0,j=9;i<=3;i+,j+)pj=datei;outte*t*y(220,325,date); /*显示数字化时钟*/sound(2000); /*秒针的声音*/nosound();sleep(1);if(m=0)&&(s=0) /*整点报时*/sound(5000);if(s!=59) /*覆盖原来的移动痕迹*/setcolor(0);line(*,Y,*3,y3); else if(m!=59) setcolor(0); line(*,Y,*3,y3); line(*,Y,*2,y2); else

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论