www.pudn.com > 5bank.rar > BANK.C
#include#include #include #include #include #define N 5 #define M 3 #define false 0 #define true 1 int Available[M]; int Max[N][M]; int Allocation[N][M]; int Need[N][M]; int Request[N][M]; int lower(int*,int*); int test(); void putoff(int); void init_data(); void init_image(); void init_ground(); void drawrect(int,int,int); void drawanimation(int); void recycle(int); void request_display(); void init_image(){ int gdrive=DETECT,gmode; initgraph(&gdrive,&gmode,""); } void drawrect(int x,int y,int color){ setfillstyle(1,color); bar3d(x,y,x+19,y+9,0,0); } int lower(int a[],int b[]){ int i; for(i=0;i b[i]) break; if(i==M) return true; else return false; } int test(){ int finish[N]; char temp[3]; int i,j,m=0,k=0; for(i=0;i =temp-Request[k][i];j--) { screen=malloc(imagesize(80*2+10+20*i,100-Available[i]*10,80*2+10+20*i+19,100-Available[i]*10+9)); getimage(80*2+10+20*i,100-Available[i]*10,80*2+10+20*i+19,100-Available[i]*10+9,screen); putoff(5); setcolor(BLACK); drawrect(80*2+10+20*i,100-Available[i]--*10,BLACK); /* remove a resource */ putoff(2); for(m=1;m<=8;m++){ putimage(80*k+10+20*i,110+10*m,screen,COPY_PUT); putoff(0); putimage(80*k+10+20*i,110+10*m,screen,XOR_PUT); } free(screen); setcolor(WHITE); switch(i){ case 0: drawrect(80*k+10+20*i,300-(++Allocation[k][i])*10,RED); break; case 1: drawrect(80*k+10+20*i,300-(++Allocation[k][i])*10,YELLOW); break; case 2: drawrect(80*k+10+20*i,300-(++Allocation[k][i])*10,BLUE); break; } /* get a resource */ putoff(5); setcolor(BLACK); drawrect(80*k+10+20*i,450-Need[k][i]--*10,BLACK); /* remove a need */; } } } void putoff(int i){ int k; for(k=0;k<=i;k++) delay(10000000); } void recycle(int k){ int i,j; setcolor(BLACK); setfillstyle(1,BLACK); bar(80*k+10,200,80*(k+1)-10,300-1) ; for(i=0;i