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;ib[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