- 论坛徽章:
- 1
|
一个用C语言编的时钟程序[原创]
#include <dos.h>;
#include <graphics.h>;
#include <stdlib.h>;
#include <stdio.h>;
struct time mytime;
int linel[5][2]=[0,1},{12,13},{12,43},{0,49},{0,1];
int linel2[5][2]=[0,1},{12,7},{12,37},{0,49},{0,1];
int liner[5][2]=[0,1},{-12,13},{-12,43},{0,49},{0,1];
int liner2[5][2]=[0,1},{-12,7},{-12,37},{0,49},{0,1];
int lineu[5][2]=[1,0},{49,0},{37,12},{13,12},{1,0];
int lineb[5][2]=[1,0},{49,0},{37,-12},{13,-12},{1,0];
int linem[7][2]=[1,0},{13,-6},{37,-6},{49,0},{37,6},{13,6},{1,0];
void num(unsigned char i,int x,int y)
{
int n;
bar(x,y,x+50,y+100);
switch(i)
{
case 1:
moveto(liner[0][0]+x+50,liner[0][1]+y);
for(n=1;n<5;n++) lineto(liner[n][0]+x+50,liner[n][1]+y);
moveto(liner2[0][0]+x+50,liner2[0][1]+y+50);
for(n=1;n<5;n++) lineto(liner2[n][0]+x+50,liner2[n][1]+y+50);
break;
case 2:
moveto(linel2[0][0]+x,linel2[0][1]+y+50);
for(n=1;n<5;n++) lineto(linel2[n][0]+x,linel2[n][1]+y+50);
moveto(liner[0][0]+x+50,liner[0][1]+y);
for(n=1;n<5;n++) lineto(liner[n][0]+x+50,liner[n][1]+y);
moveto(lineu[0][0]+x,lineu[0][1]+y);
for(n=1;n<5;n++) lineto(lineu[n][0]+x,lineu[n][1]+y);
moveto(linem[0][0]+x,linem[0][1]+y+50);
for(n=1;n<7;n++) lineto(linem[n][0]+x,linem[n][1]+y+50);
moveto(lineb[0][0]+x,lineb[0][1]+y+100);
for(n=1;n<5;n++) lineto(lineb[n][0]+x,lineb[n][1]+y+100);
break;
case 3:
moveto(liner[0][0]+x+50,liner[0][1]+y);
for(n=1;n<5;n++) lineto(liner[n][0]+x+50,liner[n][1]+y);
moveto(liner2[0][0]+x+50,liner2[0][1]+y+50);
for(n=1;n<5;n++) lineto(liner2[n][0]+x+50,liner2[n][1]+y+50);
moveto(lineu[0][0]+x,lineu[0][1]+y);
for(n=1;n<5;n++) lineto(lineu[n][0]+x,lineu[n][1]+y);
moveto(linem[0][0]+x,linem[0][1]+y+50);
for(n=1;n<7;n++) lineto(linem[n][0]+x,linem[n][1]+y+50);
moveto(lineb[0][0]+x,lineb[0][1]+y+100);
for(n=1;n<5;n++) lineto(lineb[n][0]+x,lineb[n][1]+y+100);
break;
case 4:
moveto(linel[0][0]+x,linel[0][1]+y);
for(n=1;n<5;n++) lineto(linel[n][0]+x,linel[n][1]+y);
moveto(liner[0][0]+x+50,liner[0][1]+y);
for(n=1;n<5;n++) lineto(liner[n][0]+x+50,liner[n][1]+y);
moveto(liner2[0][0]+x+50,liner2[0][1]+y+50);
for(n=1;n<5;n++) lineto(liner2[n][0]+x+50,liner2[n][1]+y+50);
moveto(linem[0][0]+x,linem[0][1]+y+50);
for(n=1;n<7;n++) lineto(linem[n][0]+x,linem[n][1]+y+50);
break;
case 5:
moveto(linel[0][0]+x,linel[0][1]+y);
for(n=1;n<5;n++) lineto(linel[n][0]+x,linel[n][1]+y);
moveto(liner2[0][0]+x+50,liner2[0][1]+y+50);
for(n=1;n<5;n++) lineto(liner2[n][0]+x+50,liner2[n][1]+y+50);
moveto(lineu[0][0]+x,lineu[0][1]+y);
for(n=1;n<5;n++) lineto(lineu[n][0]+x,lineu[n][1]+y);
moveto(linem[0][0]+x,linem[0][1]+y+50);
for(n=1;n<7;n++) lineto(linem[n][0]+x,linem[n][1]+y+50);
moveto(lineb[0][0]+x,lineb[0][1]+y+100);
for(n=1;n<5;n++) lineto(lineb[n][0]+x,lineb[n][1]+y+100);
break;
case 6:
moveto(linel[0][0]+x,linel[0][1]+y);
for(n=1;n<5;n++) lineto(linel[n][0]+x,linel[n][1]+y);
moveto(linel2[0][0]+x,linel2[0][1]+y+50);
for(n=1;n<5;n++) lineto(linel2[n][0]+x,linel2[n][1]+y+50);
moveto(liner2[0][0]+x+50,liner2[0][1]+y+50);
for(n=1;n<5;n++) lineto(liner2[n][0]+x+50,liner2[n][1]+y+50);
moveto(lineu[0][0]+x,lineu[0][1]+y);
for(n=1;n<5;n++) lineto(lineu[n][0]+x,lineu[n][1]+y);
moveto(linem[0][0]+x,linem[0][1]+y+50);
for(n=1;n<7;n++) lineto(linem[n][0]+x,linem[n][1]+y+50);
moveto(lineb[0][0]+x,lineb[0][1]+y+100);
for(n=1;n<5;n++) lineto(lineb[n][0]+x,lineb[n][1]+y+100);
break;
case 7:
moveto(liner[0][0]+x+50,liner[0][1]+y);
for(n=1;n<5;n++) lineto(liner[n][0]+x+50,liner[n][1]+y);
moveto(liner2[0][0]+x+50,liner2[0][1]+y+50);
for(n=1;n<5;n++) lineto(liner2[n][0]+x+50,liner2[n][1]+y+50);
moveto(lineu[0][0]+x,lineu[0][1]+y);
for(n=1;n<5;n++) lineto(lineu[n][0]+x,lineu[n][1]+y);
break;
case 8:
moveto(linel[0][0]+x,linel[0][1]+y);
for(n=1;n<5;n++) lineto(linel[n][0]+x,linel[n][1]+y);
moveto(linel2[0][0]+x,linel2[0][1]+y+50);
for(n=1;n<5;n++) lineto(linel2[n][0]+x,linel2[n][1]+y+50);
moveto(liner[0][0]+x+50,liner[0][1]+y);
for(n=1;n<5;n++) lineto(liner[n][0]+x+50,liner[n][1]+y);
moveto(liner2[0][0]+x+50,liner2[0][1]+y+50);
for(n=1;n<5;n++) lineto(liner2[n][0]+x+50,liner2[n][1]+y+50);
moveto(lineu[0][0]+x,lineu[0][1]+y);
for(n=1;n<5;n++) lineto(lineu[n][0]+x,lineu[n][1]+y);
moveto(linem[0][0]+x,linem[0][1]+y+50);
for(n=1;n<7;n++) lineto(linem[n][0]+x,linem[n][1]+y+50);
moveto(lineb[0][0]+x,lineb[0][1]+y+100);
for(n=1;n<5;n++) lineto(lineb[n][0]+x,lineb[n][1]+y+100);
break;
case 9:
moveto(linel[0][0]+x,linel[0][1]+y);
for(n=1;n<5;n++) lineto(linel[n][0]+x,linel[n][1]+y);
moveto(liner[0][0]+x+50,liner[0][1]+y);
for(n=1;n<5;n++) lineto(liner[n][0]+x+50,liner[n][1]+y);
moveto(liner2[0][0]+x+50,liner2[0][1]+y+50);
for(n=1;n<5;n++) lineto(liner2[n][0]+x+50,liner2[n][1]+y+50);
moveto(lineu[0][0]+x,lineu[0][1]+y);
for(n=1;n<5;n++) lineto(lineu[n][0]+x,lineu[n][1]+y);
moveto(linem[0][0]+x,linem[0][1]+y+50);
for(n=1;n<7;n++) lineto(linem[n][0]+x,linem[n][1]+y+50);
moveto(lineb[0][0]+x,lineb[0][1]+y+100);
for(n=1;n<5;n++) lineto(lineb[n][0]+x,lineb[n][1]+y+100);
break;
case 0:
moveto(linel[0][0]+x,linel[0][1]+y);
for(n=1;n<5;n++) lineto(linel[n][0]+x,linel[n][1]+y);
moveto(linel2[0][0]+x,linel2[0][1]+y+50);
for(n=1;n<5;n++) lineto(linel2[n][0]+x,linel2[n][1]+y+50);
moveto(liner[0][0]+x+50,liner[0][1]+y);
for(n=1;n<5;n++) lineto(liner[n][0]+x+50,liner[n][1]+y);
moveto(liner2[0][0]+x+50,liner2[0][1]+y+50);
for(n=1;n<5;n++) lineto(liner2[n][0]+x+50,liner2[n][1]+y+50);
moveto(lineu[0][0]+x,lineu[0][1]+y);
for(n=1;n<5;n++) lineto(lineu[n][0]+x,lineu[n][1]+y);
moveto(lineb[0][0]+x,lineb[0][1]+y+100);
for(n=1;n<5;n++) lineto(lineb[n][0]+x,lineb[n][1]+y+100);
break;
}
}
void showtime(unsigned char t,int mode)
{
unsigned char h,l;
h=t/10;
l=t-h*10;
switch(mode)
{
case 0:
num(h,99,190);
num(l,155,190);break;
case 1:
num(h,267,190);
num(l,323,190);break;
case 2:
num(h,435,190);
num(l,491,190);break;
}
}
void showdot()
{
rectangle(211+20,190+20,211+30,190+30);
rectangle(211+20,190+70,211+30,190+80);
rectangle(379+20,190+20,379+30,190+30);
rectangle(379+20,190+70,379+30,190+80);
}
void main(void)
{
int gdriver=VGA,gmode=VGAHI;
unsigned char hour,minute,second;
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver,&gmode,"" ;
setfillstyle(SOLID_FILL,0);
setcolor(2);
showdot();
gettime(&mytime);
second=mytime.ti_sec;
minute=mytime.ti_min;
hour=mytime.ti_hour;
showtime(second,2);
showtime(minute,1);
showtime(hour,0);
printf(" ress any key to exit..." ;
while(1)
{
gettime(&mytime);
if(second!=mytime.ti_sec) {second=mytime.ti_sec;showtime(second,2);}
if(minute!=mytime.ti_min) {minute=mytime.ti_min;showtime(minute,1);}
if(hour!=mytime.ti_hour) {hour=mytime.ti_hour;showtime(hour,0);}
if(kbhit()!=0) break;
}
closegraph();
} |
|