Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
20:04:2008, 16:04
|
|
Новенький ![]() Группа: Программист Сообщений: 6 Регистрация: 30:03:2008 Пользователь №: 16 264 Репутация: 0
|
Пожалуйста, напишите построчные комменты к данной программе (Часы), чтобы можно было легко понять что за что отвечает... и для чего нужно ....
CODE #include <stdio.h> #include <math.h> #include <graphics.h> #include <conio.h> #include <dos.h> //--------------------------------------------------------------------------- void timetext(int x, int y, int hour,int min,int sec) { char c[9]; setfillstyle(1, WHITE); bar(x-32,2*y+10,x+32,2*y+18); c[0]=hour/10+'0'; c[1]=hour%10+'0'; c[2]=':'; c[3]=min/10+'0'; c[4]=min%10+'0'; c[5]=':'; c[6]=sec/10+'0'; c[7]=sec%10+'0'; c[8]=0; outtextxy(x-32 ,2*y+10, c); } //--------------------------------------------------------------------------- void draw(int x, int y, int r, int &color) { struct time t,b; int g,j,k; gettime(&t); if(color>13)color=0; setcolor(color++); if(color>13)color=0; if(t.ti_hour>12)t.ti_hour-=12; for(j=-5;j<=5;j++) { line(x+j,y,x+cos((3-t.ti_hour)*M_PI/6)*(r-70),y-sin((3-t.ti_hour)*M_PI/6)*(r-70));line(x,y,x+cos((3-t.ti_hour)*M_PI/6)*(r-70),y-sin((3-t.ti_hour)*M_PI/6)*(r-70)); line(x,y+j,x+cos((3-t.ti_hour)*M_PI/6)*(r-70),y-sin((3-t.ti_hour)*M_PI/6)*(r-70)); }; setcolor(color++); if(color>13)color=0; for(j=-2;j<=2;j++) { line(x+j,y,x+cos((15-t.ti_min)*M_PI/30)*(r-50),y-sin((15-t.ti_min)*M_PI/30)*(r-50)); line(x,y+j,x+cos((15-t.ti_min)*M_PI/30)*(r-50),y-sin((15-t.ti_min)*M_PI/30)*(r-50)); }; setcolor(color++); if(color>13)color=0; line(x,y,x+cos((15-t.ti_sec)*M_PI/30)*(r-25),y-sin((15-t.ti_sec)*M_PI/30)*(r-25)); setcolor(GREEN); setfillstyle(1,GREEN); pieslice(x,y,0,360,5); timetext(x,y,t.ti_hour, t.ti_min, t.ti_sec); gettime(&b); while(t.ti_sec==b.ti_sec)gettime(&b); if(b.ti_hour>12)b.ti_hour-=12; if(t.ti_hour!=b.ti_hour)for(k=1; k<=b.ti_hour; k++){nosound();sound(130);delay(10);}else if(t.ti_min!=b.ti_min)sound(349.2),delay(50);else sound(493.9),delay(50); nosound(); setcolor(YELLOW); setfillstyle(1, YELLOW); pieslice(x,y,0,360,r-24); } //--------------------------------------------------------------------------- void main () { int gdriver=DETECT,gmode=VGAHI,errorcode; initgraph(&gdriver, &gmode, "d:\\turboc\\bgi"); errorcode=graphresult(); if(errorcode!=grOk) { printf("Graphics error: %s\n",grapherrormsg(errorcode)); getch(); return; }; char hour[12][3]={ " 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9","10","11","12"}; setfillstyle(1,WHITE); setcolor(BLACK); bar(0,0,getmaxx()-1,getmaxy()-1); textcolor(BLACK); textbackground(WHITE); outtextxy(2,2, "created by Melnichenko Alexandr AM-709"); int x=getmaxx()/2; int y=(getmaxy()-40)/2; int r=y-15; circle(x,y,r); setcolor(YELLOW); setfillstyle(1,YELLOW); pieslice(x,y,0,360,r-1); setcolor(BLACK); for(int i=0; i<12; i++) { outtextxy(x-(getmaxx()+1)/64+cos((2-i)*M_PI/6)*(r-10),y-(getmaxy()+1)/160-sin((2-i)*M_PI/6)*(r-10), hour[i]); }; for(i=0;i<60;i++) { if(i%5==0) setcolor(BLUE),line(x+cos((15-i)*M_PI/30)*(r-18),y-sin((15-i)*M_PI/30)*(r-18),x+cos((15-i)*M_PI/30)*(r-23),y-sin((15-i)*M_PI/30)*(r-23)); else setcolor(GREEN),line(x+cos((15-i)*M_PI/30)*(r-18),y-sin((15-i)*M_PI/30)*(r-18),x+cos((15-i)*M_PI/30)*(r-20),y-sin((15-i)*M_PI/30)*(r-20)); }; setfillstyle(1,GREEN); pieslice(x,y,0,360,5); int color=0; while(!kbhit()) { draw(x,y,r,color); }; closegraph(); } ЗАРАНЕЕ БОЛЬШОЕ СПАСИБО!!!! |
|
Сообщение
#1
|
|
![]() |
|
|
22:04:2008, 04:18
|
|
Новенький ![]() Группа: Программист Сообщений: 39 Регистрация: 15:04:2008 Пользователь №: 16 634 Специализация: Программист Репутация: 0
|
ты где такой раритет откопал?
сейчас по средствам graphics.h никто ничего не делает.... не проще ли передти на Windows!!? |
|
Сообщение
#2
|
|
|
|
28:04:2008, 12:03
|
|
Новенький ![]() Группа: Программист Сообщений: 6 Регистрация: 30:03:2008 Пользователь №: 16 264 Репутация: 0
|
=) Это не я откопал.... это у нас в Российских ВУЗах на факультетах автоматики заставляют таким д... заниматься!
Сообщение отредактировал AlexanderNo - 28:04:2008, 12:03 |
|
Сообщение
#3
|
|
![]() |
|
Текстовая версия | Сейчас: 6:07:2008 - 00:27 |