Soyez le premier à donner votre avis sur cette source.
Vue 7 510 fois - Téléchargée 511 fois
// PROGRAMME EN C SOUS DOS TURBO C++2 BORLAND // ecrit le 30-06-2002 par cmarsc // GRAPHIQUE EN HISTOGRAMME MODE GRAPHIQUE #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <time.h> #include <string.h> #include <dos.h> #define COUL_CADRE CYAN #define MAXI 300 #define N_BARRES 12 enum reponse1 { NON,OUI }; int main(void) { int gdriver = DETECT, gmode, errorcode; int i,x; int y1[N_BARRES], reponse[N_BARRES]; int graph1[N_BARRES], graph1_precedent[N_BARRES]; char texte[N_BARRES][5]; initgraph(&gdriver, &gmode, "c:\\tc\\bgi"); errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); } srand( (unsigned) time(NULL) ); memset(texte, '\0', N_BARRES); // initialiser a zero for (i = 0; i < N_BARRES; i++) { y1[i] = 0; reponse[i] = OUI; graph1[i] = 0; graph1_precedent[i] = 0; } // grand cadre setfillstyle(1,COUL_CADRE); bar (1, 00,getmaxx(), 355); setcolor(BLACK); rectangle(2 ,20 , getmaxx()-1,355 ); setcolor(WHITE); rectangle(1 ,22 , getmaxx(),356+00 ); settextstyle(SMALL_FONT, HORIZ_DIR, 5); sprintf(texte[0],"Projections des ventilations : 2003"); // effet d'ombre setcolor(BLACK); outtextxy(180 ,1,texte[0]); // texte en rouge setcolor(RED); outtextxy(181 ,1,texte[0]); // elargir le texte en longueur * 3 et en hauteur * 10 setusercharsize(3, 1,10, 1); setfillstyle(1,CYAN); bar (1,375,getmaxx() , getmaxy()-15); setcolor(YELLOW); rectangle (1,375,getmaxx() , getmaxy()-15); setcolor(LIGHTCYAN); sprintf(texte[0],"APPUYEZ SUR UNE TOUCHE POUR QUITTER"); outtextxy(12 ,360,texte[0]); setcolor(BLACK); // faire un effet 3D for (i = 0; i < 2;i++) { outtextxy(13 +i,360+i,texte[0]); } while( !kbhit() ) { // x = 52 ecart entre les barres for (i = 0, x = 5 ; i < N_BARRES; i++, x +=52) { // determiner la hauteur de la barre if (reponse[i] == OUI) { // garder la valeur de graph1[i] precedente graph1_precedent[i] = graph1[i]; graph1[i] = (rand() % MAXI) +1; // effacer le chiffre en blanc sous la barre setfillstyle(1, COUL_CADRE); bar (15 + x,333 , 50 + x,350 ); // convertir le nombre tire sprintf(texte[i],"%3d",graph1[i]); // afficher ce nombre sous la barre settextstyle(SMALL_FONT, HORIZ_DIR, 6); setcolor(BLACK); outtextxy(15 + x,331,texte[i]); setcolor(WHITE); outtextxy(16 + x,332,texte[i]); } if ( graph1[i] > graph1_precedent[i]) { // faire monter la barre if (y1[i] < graph1[i]) { y1[i]++; reponse[i] = NON; } else if (y1[i] == graph1[i]) { // choisir un autre chiffre reponse[i] = OUI; } } else { // faire descendre la barre y1[i]--; reponse[i] = NON; if (y1[i] == graph1[i] || y1[i] <= 0 ) reponse[i] = OUI; } setcolor(COUL_CADRE); rectangle(8 + x ,326 - y1[i] , 52 + x,327- y1[i] ); // dessiner les 2 traits sur les cotes // trait rouge vif a gauche setcolor(LIGHTRED); rectangle(8 + x,330 - y1[i] , 9 + x,330 ); // barre au milieu en rouge setcolor(RED); rectangle(10 + x,330 - y1[i] , 50 + x,330 ); // trait noir a droite setcolor(BLACK); rectangle(51 + x,330 - y1[i] ,52 + x,330 ); } // fin de for (i) } // fin de while closegraph(); return 0; } // fin de main
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.