當前位置:編程學習大全網 - 編程語言 - C語言程序設計題:模擬時鐘轉動的程序,怎麽做?

C語言程序設計題:模擬時鐘轉動的程序,怎麽做?

/*開發環境:turbo c 2.0模擬時鐘轉動程序代碼*/ #include"graphics.h" #include"math.h" #include"dos.h" #define pi 3.1415926 #define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300 #define Y(a,b,c) y=a*sin(b*c*pi/180-pi/2)+240 #define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y) void init() /*劃時鐘邊框函數*/ { int i,l,x1,x2,y1,y2; setbkcolor(1); circle(300,240,200); circle(300,240,205); circle(300,240,5); for(i=0;i<60;i++) /*劃鐘點上的短線*/ { if(i%5==0) l=15; else l=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,k=1; int gdriver=9,gmode=2; unsigned char h,m,s; int o,p,q; float n; struct time t[1]; struct date d[1]; initgraph(&gdriver,&gmode,"c:\\tc"); initgraph(&gdriver,&gmode,"c:\\tc"); for(i=0;i<=6;i++) { settextstyle(TRIPLEX_FONT,HORIZ_DIR,i); /*控制輸出字符的字體,方向,大小*/ cleardevice(); settextjustify(1,1); /*在指定坐標上輸出字符串*/ outtextxy(300,80,"12") ; outtextxy(300,390,"6"); outtextxy(140,230,"9"); outtextxy(460,230,"3"); outtextxy(380,100,"1"); outtextxy(220,100,"11"); outtextxy(430,160,"2"); outtextxy(430,310,"4"); outtextxy(380,370,"5"); outtextxy(220,370,"7"); outtextxy(160,160,"10"); outtextxy(160,310,"8"); } init(); setwritemode(1); /*設置畫線的輸出模式*/ if(k!=0) { getdate(d); /*獲得系統日期函數*/ o=d[0].da_year; p=d[0].da_mon; q=d[0].da_day; gettime(t); /*獲得系統時間函數*/ h=t[0].ti_hour; m=t[0].ti_min; s=t[0].ti_sec; } setcolor(7); /*設置時針顏色*/ n=(float)h+(float)m/60; d(150,n,30); /*畫出時針*/ setcolor(14); /*設置分針顏色*/ d(170,m,6); /*畫出分針*/ setcolor(4); /*設置秒針顏色*/ d(190,s,6); /*畫出秒針*/ while(!kbhit()) /*控制程序按下任意鍵退出*/ { while(t[0].ti_sec==s) gettime(t); gotoxy(44,18); /*使光標移動到指定坐標*/ printf("\b\b\b\b\b\b\b\b\b"); /*退格,使表示時間的字符串不斷變化*/ sound(400); /*按給定的頻率打開PC揚聲器*/ delay(70); /*中斷程序的執行,時間為70毫秒*/ sound(200); delay(30); nosound(); /*按給定的頻率關閉PC揚聲器*/ setcolor(4); d(190,s,6); s=t[0].ti_sec; d(190,s,6); if(t[0].ti_min!=m) { setcolor(14); d(170,m,6); m=t[0].ti_min; d(170,m,6); } if(t[0].ti_hour!=h) { setcolor(7); d(150,h,30); h=t[0].ti_hour; d(150,h,30); sound(1000); delay(240); nosound(); delay(140); sound(2000); delay(240); nosound(); } if(s<10) /*用字符的形式輸出時間*/ { if(m<10) printf("%u:0%u:0%u",h,m,s); else printf("%u:%u:0%u",h,m,s); } else { if(m<10) printf("%u:0%u:%u",h,m,s); else printf("%u:%u:%u",h,m,s); } gotoxy(34,19); /*在指定坐標上輸出日期*/ printf("%d年%d月%d日",o,p,q); printf("\b\b\b\b\b\b\b\b\b"); } getch(); closegraph(); }

  • 上一篇:上海市西南位育高中的學費壹年是多少?
  • 下一篇:有關聖鬥士的問題
  • copyright 2024編程學習大全網