收藏 分销(赏)

C语言专业课程设计图形时钟.doc

上传人:天**** 文档编号:2864503 上传时间:2024-06-07 格式:DOC 页数:11 大小:160.54KB
下载 相关 举报
C语言专业课程设计图形时钟.doc_第1页
第1页 / 共11页
C语言专业课程设计图形时钟.doc_第2页
第2页 / 共11页
C语言专业课程设计图形时钟.doc_第3页
第3页 / 共11页
C语言专业课程设计图形时钟.doc_第4页
第4页 / 共11页
C语言专业课程设计图形时钟.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、 C语言程序设计课程设计 试验汇报题目: 图形时钟 班级:电气工程及其自动化1401学号: 姓名: 指导老师: .1 . 8 目录1.系统功效要求 P32.程序结构(画步骤图) P3-43.概要设计 P44.试验结果 P65.体会 P66.参考文件 P67.附录:源程序 P7-81.系统功效要求 在屏幕上显示一个图形时钟(用程序绘制一个和时钟样式相同即可),时间和系统时间一致,且要伴随时间走动正确走动。2.程序设计3.概要设计(1)voidinit()/*划时钟边框函数*/ inti,l,x1,x2,y1,y2;circle(320,240,200);/*以(320,240)为圆心,200为半

2、径画圆*/ circle(320,240,199);/*以(320,240)为圆心,199为半径画圆*/ circle(320,240,201);/*以(320,240)为圆心,201为半径画圆*/ circle(320,240,1,);/*以(320,240)为圆心,1为半径画圆*/ circle(320,240,2,)/*以(320,240)为圆心,2为半径画圆*/ circle(320,2403,);/*以(320,240)为圆心,3为半径画圆*/for(i=0;i60;i+)/*划钟点上短线*/ if(i%5=0) l=15; else l=5; x1=200*sin(i*6*pi/1

3、80)+320/*画线函数*/ y1=200*cos(i*6*pi/180)+240; x2=(200-l)*sin(i*6*pi/180)+320; y2=(200-l)*cos(i*6*pi/180)+240; line(x1,y1,x2,y2); (2)voidDrawHand函数/*画指针*/ voidDrawHand(intx,inty,floatth,intl,intcolor) intx1,y1; x1=x+l*sin(th); y1=y-l*cos(th); setcolor(color); line(x,y,x1,y1); x:直线起点横坐标 y:直线起点纵坐标x1:直线终点

4、横坐标y1:直线终点纵坐标(3)voidmain()函数Part:intgdriver=DETECT,gmode; structtimecurtime;.类型和最高分辨率 floatth_hour,th_min,th_sec; initgraph(&gdriver,&gmode,); Graphdriver-配适器graphmode-显示模式Part: setbkcolor(0);.背景色Part: while(!kbhit() Init().函数(1)setwritemode(1); gettime(&curtime);.得到目前系统时间 gotoxy(35,20);.定位输出位置Part:

5、 if(float)curtime.ti_hour=12).早晨时间处理printf(AM); if(float)curtime.ti_hour10)printf(0);.十点之前在小时数前加零 printf(%.0f:,(float)curtime.ti_hour);.输出小时 else.下午时间处理printf(PM); if(float)curtime.ti_hour-1210)printf(0);.假如时间减去12小时小于10 printf(%.0f:,(float)curtime.ti_hour-12);.输出小时 Part: if(float)curtime.ti_min10)pr

6、intf(0);.相当于小时计算方法 printf(%.0f:,(float)curtime.ti_min);.输出分钟(同part) if(float)curtime.ti_sec10)printf(0); printf(%.0f,(float)curtime.ti_sec);Part:以下三行计算表针转动角度,以竖直向上为起点,顺时针为正 th_sec=(float)curtime.ti_sec*0.;- - -(2/60=0.) th_min=(float)curtime.ti_min*0.+th_sec/60.0; th_hour=(float)curtime.ti_hour*0.+t

7、h_min/12.0;-*(2/12=0.)Part:画指针 DrawHand(x0,y0,th_hour,70,2);.画时针 DrawHand(x0,y0,th_min,110,3);.画秒针Part:settextstyle(2,0,3);.设置字体 2:文字字体;0:文字方向;3:文字大小 outtextxy(300,80,12); outtextxy(460,220,3); outtextxy(315,370,6); outtextxy(160,220,9);Part:sleep(1);.延时一秒后刷新 cleardevice();.清除图形屏幕 closegraph().关闭图形系

8、统,退出图形方法4.试验结果5.体会 刚开始做时基础上什么全部不懂,参考了很多资料,到网上查,差不多能写出基础程序,即使很多是借鉴她人,不过能写成这么,我心里还是挺快乐。程序设计关键靠了解和利用,有些没有学过知识不一定要知道根本,只要会利用就行。尤其是设计显示上、下午数字时间和让时针正常运转而不是从3不动,然后直接跳到4上,我下了很大功夫,找了好多资料,最终一知半解,好在成功运行了。 不足之处也很多,程序思绪不太清楚可能有些混乱。有很多程序设计使用并不熟练,甚至有些方法掌握不了,更轻易忘记。算法结构了解并不深入,独立自主想法占据总体达不到要求。需要加强练习和对知识了解和掌握。经过这次设计,让我

9、学习程序热情大涨,相信以后会做愈加好!6. 参考文件1谭浩强.C语言程序设计(第四版).清华大学出版社,2李丽娟,马淑萍.C语言程序设计(第二版).中国铁道出版社,3李丽娟,张奋.C语言程序设计试验教程(第二版).中国铁道出版社,4张基温.C语言程序设计案例教程.清华大学出版社,5网络,baidu知道,贴吧等,7.附录:源程序#include#include#include#define PI 3.1415926#define x0 320#define y0 240void init() int i,l,x1,x2,y1,y2; circle(320,240,200); circle(320

10、,240,201); circle(320,240,199); circle(320,240,1); circle(320,240,2); circle(320,240,3); for(i=0;i60;i+) if(i%5=0)l=15; elsel=5; x1=200*sin(i*6*PI/180)+320; y1=200*cos(i*6*PI/180)+240; x2=(200-l)*sin(i*6*PI/180)+320; y2=(200-l)*cos(i*6*PI/180)+240; line(x1,y1,x2,y2); void DrawHand(int x,int y,float

11、th,int l,int color) int xp,yp; xp=x+l*sin(th); yp=y-l*cos(th); setcolor(color); line(x,y,xp,yp);void main() int gdriver=DETECT,gmode; struct time curtime; float th_hour,th_min,th_sec; initgraph(&gdriver,&gmode,); setbkcolor(0); while(! kbhit() init(); setwritemode(1); gettime(&curtime); gotoxy(35,20

12、); if(float)curtime.ti_hour=12) printf(AM ); if(float)curtime.ti_hour10) printf(0); printf(%.0f:,(float)curtime.ti_hour); else printf(PM ); if(float)curtime.ti_hour-1210) printf(0); printf(%.0f:,(float)curtime.ti_hour-12); if(float)curtime.ti_min10) printf(0); printf(%.0f:,(float)curtime.ti_min); if

13、(float)curtime.ti_sec10) printf(0); printf(%.0f,(float)curtime.ti_sec); th_sec=(float)curtime.ti_sec*0.; th_min=(float)curtime.ti_min*0.+th_sec/60.0; th_hour=(float)curtime.ti_hour*0.+th_min/12.0; DrawHand(x0,y0,th_hour,70,2); DrawHand(x0,y0,th_min,110,3); DrawHand(x0,y0,th_sec,140,12); setcolor(13); settextstyle(2,0,12); outtextxy(300,80,12); outtextxy(460,220,3); outtextxy(315,370,6); outtextxy(160,220,9); sleep(1); cleardevice(); closegraph();

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服