C语言课程设计图形模拟时钟.doc

上传人:土8路 文档编号:10240745 上传时间:2021-05-02 格式:DOC 页数:8 大小:25KB
返回 下载 相关 举报
C语言课程设计图形模拟时钟.doc_第1页
第1页 / 共8页
C语言课程设计图形模拟时钟.doc_第2页
第2页 / 共8页
C语言课程设计图形模拟时钟.doc_第3页
第3页 / 共8页
C语言课程设计图形模拟时钟.doc_第4页
第4页 / 共8页
C语言课程设计图形模拟时钟.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《C语言课程设计图形模拟时钟.doc》由会员分享,可在线阅读,更多相关《C语言课程设计图形模拟时钟.doc(8页珍藏版)》请在三一文库上搜索。

1、C语言课程设计图形模拟时钟 2013-2014学年 第二学期高级语言程序设计课程设计报告 题目: 图形模拟时钟专业: 计算机科学与技术 班级: *姓名: *指导教师: *成绩: 计算机与信息工程系二0一四年六月二十日 计算机与信息工程系 高级语言程序设计课程设计目录1 设计内容及要求.11.1设计要求.11.2程序结构流程图.12 概要设计.32.1概要分析.32.2数据结构设计.52.3用法说明.52.4实验结果要求.63 设计结果与分析.63.1实验结果.63.2实验结果与分析.64 小结.7致谢.7参考文献.8附录:源代码.9 计算机与信息工程系 高级语言程序设计课程设计1 设计 在屏幕

2、上显示一个图形时钟(用程序绘制一个班于时钟样式相似即可),时间与系统时间一致,且要随着时间的走到准确的走动。1.2程序结构流程图 图1:总程序流程1计算机与信息工程系 高级语言程序设计课程设计 图2:指针转动流程图2计算机与信息工程系 高级语言程序设计课程设计2 概要设计2.1概要分析(1) void Drawclock函数void DrawClock(int x,int y,int color) int r=150;float th;setcolor(color);circle(x,y,r);circle(x,y,2); 作用:画表盘(r为表盘的半径, x,y为圆心的坐标。)(2) void

3、 DrawHand 函数void DrawHand(int x,int y,float th,int l,int color)int x1,y1;x1=x+l*sin(th);y1=y-l*cos(th);setcolor(color);line(x,y,x1,y1);作用:画指针x:直线起点的横坐标 y:直线起点的纵坐标x1:直线终点的横坐标 y1:直线终点的纵坐标(3) void main() 函数Part : int gdriver=DETECT,gmode;struct time curtime; .类型和最高分辨率float th_hour,th_min,th_sec;3计算机与信息

4、工程系 高级语言程序设计课程设计initgraph(&gdriver,&gmode,"");Graphdriver - - -配适器graphmode - - - 显示模式Part :setbkcolor(0); .背景色 Part : while(! kbhit()DrawClock(x0,y0,14); .函数(1) gettime(&curtime); .得到当前系统时间 gotoxy(35,20); .定位输出位置Part : if(float)curtime.ti_hour<=12) .上午的时间处理 printf("AM

5、");if(float)curtime.ti_hour<10) printf("0");. 十点之前在小时数前加零printf("%.0f:",(float)curtime.ti_hour);.输出小时 else .下午的时间处理 printf("PM ");if(float)curtime.ti_hour-12<10) printf("0");.如果时间减去12小时小于10printf("%.0f:",(float)curtime.ti_hour-12);. 输出小时 P

6、art :if(float)curtime.ti_min<10) printf("0");. 相当于小时的计算方法printf("%.0f:",(float)curtime.ti_min); . 输出分钟(同part )if(float)curtime.ti_sec<10) printf("0");printf("%.0f",(float)curtime.ti_sec);Part :4计算机与信息工程系 高级语言程序设计课程设计以下三行计算表针转动角度,以竖直向上为起点,顺时针为正th_sec=(flo

7、at)curtime.ti_sec*0.1047197551;- - - - - - - - - - - - - *(2/60=0.1047197551)th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0;th_hour=(float)curtime.ti_hour*0.523598775+th_min/12.0;- - - - *(2/12=0.5235987755)Part : 画指针DrawHand(x0,y0,th_hour,70,2); .画时针 DrawHand(x0,y0,th_min,110,3); .画秒针Part :

8、settextstyle(2,0,3); .设置字体2:文字的字体;0:文字的方向;3:文字的大小outtextxy(270,160,"MADE BY:SDW"); .输出字体(270,160)为字体的坐标Part : sleep(1); .延时一秒后刷新cleardevice(); . 清除图形屏幕closegraph() . .关闭图形系统,退出图形方式2.2数据结构设计1)是对时钟程序做全面的分析,即对程序要使用的编写方法功能,运行方式进行分析,并做出正确的解决方案。2)是程序的编写。由于该程序所涉及的信息内容比较广泛,所以程序的编写也有些复杂。程序的编写是一项困难的

9、任务,完成此程序必须运用书中的大部分知识,而且要有清晰的思路和较强的语言组织能力。3)是程序的检查和系统的调用。当程序运行后,显示出一个时钟。2.3用法说明第一步,用编辑程序把编制的源程序按照一定的书写格式送到计算机中;第二步,把送入的源程序 翻译成机器语言,即用编译程序对源程序进行语法并将符合语法规则源程序语句翻译成计算机能识别的“语言”;第三步,使用计算机中的连接程序,把翻译好的计算机语言程序连接起来,并扶植成一个计算机能真正运行的程序;5计算机与信息工程系 高级语言程序设计课程设计第四步,将修改后的程序运行;第五步,以后使用时双击clock.exe文件即科。2.4 试验结果要求在屏幕上显

10、示一个时钟,(包括:时针,分针,秒针) 时针所显示的时间为 系统时间,用户可以通过修改系统的时间来修改时钟的时间。 3 设计结果与分析3.1实验结果 图4:实验结果3.2实验结果分析与讨论问题 :程序清单中某个符号添加错误,导致编译时出现错误,执行不出结果。分析:经小组讨论分析与搜索,源程序中符号“:”无意义,删除程序清单中所有“:”符号,在编译时,无错误。 4 小结6计算机与信息工程系 高级语言程序设计课程设计刚开始做时基本上什么都不懂,用TC做,我更不会。不过参考了很多资料,到网上查,泡了几天图书馆,差不多能写出基本程序,虽然很多是借鉴别人的,不过能写成这样,我心里还是挺高兴的。有了一点成

11、功我就很兴奋,这是动力。程序很奇特,很多问题都可以用程序编写,看到那些大型程序我就感觉我也能写出这样的程序。程序设计主要靠理解与运用,有些没有学过的知识不一定要懂得彻底,只要会运用就行。不足之处也很多,程序思路不太清晰可能有些混乱。有很多程序设计使用并不熟练,甚至有些方法掌握不了,更容易忘记。算法结构了解并不深入,独立自主的想法占据总体达不到要求。需要加强练习和对知识的理解与掌握。通过上机实验加深对课内所学的C和C+语言函数图形编程基本操作的理解,熟练掌握常见的绘图函数,并熟悉和熟练掌握TC的应用和开发环境,在图像编辑也有了很大的进步,在图形程序设计方法,图形生成算法以及C和C+语言编程环境,

12、程序的调试额测试方面受到比较系统和严格的训。我看到了计算机编程这门课中有意义的一面,增加了我学习这门课程的兴趣,计算机编程大大简化了我们生活中的很多复杂的工作,也使我们的生活更加方便,简单。提高了生活的效率,加快了生活的节奏。计算机在现在必将方便生活,为人民带来高质量的生活。这也让我对自己的专业课充满了信心和对该课程的爱好,我一定会积极的学习专业课知识,充分发挥该门课程的作用,查找更多的专业资源,用来补偿我的不足。你在以后的学习中我会更加努力,更多动手,多学习。 致谢在这次C语言课程设计中,我的老师和同学给了我及大的帮助。特别是我的指导老师陈广宏老师,还有我的小组组长王秋方的耐心帮助,在此,我

13、对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!参考文献7计算机与信息工程系 高级语言程序设计课程设计1张基温.C语言程序设计案例教程.清华大学出版社,20052王德银实用 C语言程序设计.人民邮电出版社,20053谭浩强.C语言程序设计教程.高等教育出版社,20064段兴.C言实用程序设计10 100 例.人民邮电出版社,20025杨旭.C语言程序设计案例教程.中国铁道工业出版社,2004 # include <graphics.h> 源代码8计算机与信息工程系 高级语言程序设计课程设计# include <math.h># in

14、clude <dos.h># define pi 3.1415926void draw(int a, int b, int c)float x, y;x=a*cos(b*c*pi/180-pi/2)+300; /*确定横坐标*/y=a*sin(b*c*pi/180-pi/2)+240; /*确定纵坐标*/line(300, 240, x, y);/*绘制时针或分针或秒针*/void init() /*划时钟边框函数*/int i,l,x1,x2,y1,y2; 7circle(300,240,200);/*以(300,240)为圆心,200为半径画圆*/ circle(300,240

15、,5);/*以(300,240)为圆心,5为半径画圆*/ for(i=0;i<60;i+) /*划钟点上的短线*/if(i%5=0)l=15;elsel=5;x1=200*sin(i*6*pi/180)+300; /*画线函数*/y1=200*cos(i*6*pi/180)+240;x2=(200-l)*sin(i*6*pi/180)+300;y2=(200-l)*cos(i*6*pi/180)+240;line(x1,y1,x2,y2);main()int x, y,i;int gdriver, gmode;unsigned char h, m, s;struct time t1;gd

16、river = DETECT;initgraph(&gdriver, &gmode, ""); /*初始化*/for(i=0;i<=6;i+)outtextxy(300,80,"12") ;outtextxy(300,390,"6");9计算机与信息工程系 高级语言程序设计课程设计outtextxy(140,230,"9");outtextxy(460,230,"3"); init(); /*调用init()函数*/setwritemode(1);/*将当前线与原有的线进行

17、异或操作*/ gettime(t); /*将计算机时间写入结构体t中*/ h = t0.ti_hour; /*h赋初值当前时数*/ m = t0.ti_min; /*m赋初值当前分数*/ s = t0.ti_sec; 8 /*s赋初值当前秒数*/ setcolor(7);draw(150, h, 30); /*画时针*/setcolor(14);draw(170, m, 6); /*画分针*/setcolor(4);draw(190, s, 6); /*画秒针*/while (!kbhit()while (t0.ti_sec = s)gettime(t);setcolor(4);draw(19

18、0, s, 6); /*清除前面画的秒针*/ s = t0.ti_sec;draw(190, s, 6); /*画秒针*/if (t0.ti_min != m)setcolor(14);draw(170, m, 6); /*清除前面画的分针*/ m = t0.ti_min;draw(170, m, 6); /*画分针*/if (t0.ti_hour != h)setcolor(7);draw(150, h, 30); /*清除前面画的时针*/ h = t0.ti_hour;draw(150, h, 30); /*画时针*/ getch();closegraph(); /*退出图形界面*/ 10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1