收藏 分销(赏)

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

上传人:天**** 文档编号:2864503 上传时间:2024-06-07 格式:DOC 页数:11 大小:160.54KB 下载积分:8 金币
下载 相关 举报
C语言专业课程设计图形时钟.doc_第1页
第1页 / 共11页
C语言专业课程设计图形时钟.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
《C语言程序设计》课程设计 试验汇报 题目: 图形时钟 班级:电气工程及其自动化1401 学号: 姓名: 指导老师: —— .1 . 8 目 录  §1. 系统功效要求 ﹣﹣﹣﹣P3 §2. 程序结构(画步骤图) ﹣﹣﹣ P3-4 §3. 概要设计 ﹣﹣﹣ P4 §4. 试验结果 ﹣﹣﹣P6 §5.体会   ﹣﹣﹣ P6 §6.参考文件  ﹣﹣﹣P6 §7.附录:源程序 ﹣﹣﹣ P7-8 §1. 系统功效要求 在屏幕上显示一个图形时钟(用程序绘制一个和时钟样式相同即可),时间和系统时间一致,且要伴随时间走动正确走动。 §2.程序设计 §3. 概要设计 (1)void init() /*划时钟边框函数*/     int i,l,x1,x2,y1,y2;    circle(320,240,200);/*以(320,240)为圆心,200为半径画圆*/     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;i<60;i++) /*划钟点上短线*/      {   if(i%5==0)         l=15;          else         l=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);      } (2) void 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;           initgraph(&gdriver,&gmode,"");        Graphdriver - - -配适器       graphmode - - - 显示模式   Part ②: setbkcolor(0);                 ....................背景色  Part  ③:  while(! kbhit())              {                  Init() ..................函数(1)                 setwritemode(1);   gettime(&curtime);        .........得到目前系统时间                gotoxy(35,20);            ...............定位输出位置  Part ④:  if((float)curtime.ti_hour<=12) .............早晨时间处理             {printf("AM ");               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小时小于10          printf("%.0f:",(float)curtime.ti_hour-12);.......... 输出小时        }  Part ⑤:   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 ⑥:  以下三行计算表针转动角度,以竖直向上为起点,顺时针为正   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.+th_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()         ... ....关闭图形系统,退出图形方法  4.试验结果 5.体会 刚开始做时基础上什么全部不懂,参考了很多资料,到网上查,差不多能写出基础程序,即使很多是借鉴她人,不过能写成这么,我心里还是挺快乐。程序设计关键靠了解和利用,有些没有学过知识不一定要知道根本,只要会利用就行。 尤其是设计显示上、下午数字时间和让时针正常运转而不是从3不动,然后直接跳到4上,我下了很大功夫,找了好多资料,最终一知半解,好在成功运行了。。。。。。 不足之处也很多,程序思绪不太清楚可能有些混乱。有很多程序设计使用并不熟练,甚至有些方法掌握不了,更轻易忘记。算法结构了解并不深入,独立自主想法占据总体达不到要求。需要加强练习和对知识了解和掌握。经过这次设计,让我学习程序热情大涨,相信以后会做愈加好! 6. 参考文件 1谭浩强.C语言程序设计(第四版).清华大学出版社, 2李丽娟,马淑萍.C语言程序设计(第二版).中国铁道出版社, 3李丽娟,张奋.C语言程序设计试验教程(第二版).中国铁道出版社, 4张基温.C 语言程序设计案例教程.清华大学出版社, 5网络,baidu知道,贴吧等, 7.附录:源程序 #include<graphics.h> #include<math.h> #include<dos.h> #define PI 3.1415926 #define x0 320 #define y0 240 void init() { int i,l,x1,x2,y1,y2; circle(320,240,200); circle(320,240,201); circle(320,240,199); circle(320,240,1); circle(320,240,2); circle(320,240,3); for(i=0;i<60;i++) { if(i%5==0) l=15; else l=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 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); if((float)curtime.ti_hour<=12) { printf("AM "); 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"); printf("%.0f:",(float)curtime.ti_hour-12); } if((float)curtime.ti_min<10) printf("0"); printf("%.0f:",(float)curtime.ti_min); if((float)curtime.ti_sec<10) 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(); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服