Beispiel #1
0
int main(int argc, char *argv[]) {
	fila *fi;
	fi = create();
	
	entra(fi, 5);
	print(fi);
	entra(fi, 1);
	print(fi);
	entra(fi, 6);
	print(fi);
	entra(fi, 0);
	print(fi);
	entra(fi, 2);
	print(fi);
	entra(fi, 3);
	print(fi);
	entra(fi, 7);
	print(fi);
	entra(fi, 9);
	print(fi);
	
	sai(fi);
	print(fi);
	sai(fi);
	print(fi);
	sai(fi);
	print(fi);
	sai(fi);
	print(fi);
	sai(fi);
	print(fi);
	sai(fi);
	print(fi);
	sai(fi);
	print(fi);
	sai(fi);
	print(fi);
	
	destroy(fi);
	
	return 0;
}
Beispiel #2
0
void load_entrada_saida(FUNDO*pf,FILE*fp,DATA data, int val,char*op)
{
    int j=0;
    float valor=0;
    char str1[MAX]="", str2[MAX]="";
    JOGADOR *paux=(JOGADOR*)malloc(sizeof(JOGADOR)*val);



    for(j=0;j<val;j++)
    {
            fscanf(fp,"%[^,] , %[^\n]\n",str1,str2); //o formato %[^,] faz com que a string seja lida até que apareça a vírgula. O formato %[^\n] faz o mesmo até que apareça o new line

            (paux+j)->nome=(char*)malloc(strlen(str1)+1);
            strcpy((paux+j)->nome,str1);


            (paux+j)->clube=(char*)malloc(strlen(str2)+1);
            strcpy((paux+j)->clube,str2);

    }
    if(strcmp(op,"ENTRAM")==0)
    {
        insert_string(paux,val-1);  //FUNÇÃO QUE ORDENA O BLOCO DE JOGADOR A SER INSERIDO NA ESTRUTURA

        pf->plantel_ativo+=val;
        entra(pf,paux,data,val);     //REALIZA A INCLUSÃO DOS NOVOS JOGADOR NA ESTRUTURA DEFINITIVA

        imprime_txt(paux,"ENTRAM",val,data);    //IMPRIME EM TXT O RESUMO DA OPERAÇÃO REALIZADA
        imprime_bin(paux,"ENTRAM",val,data);
    }
    else if(strcmp(op,"SAEM")==0)
    {
        valor=pf->mealheiro/pf->plantel_ativo;
        for(j=0;j<val;j++)
        {
            saida(pf,(paux+j)->nome,data,valor);
        }
        pf->plantel_ativo-=val;
        imprime_txt(paux,"SAEM",val,data);
        imprime_bin(paux,"SAEM",val,data);
    }
}
Beispiel #3
0
void load_entrada_saida_bin(FUNDO*pf,FILE*fp,DATA data, int val,char*op)
{
    int j=0,size1=0,size2=0,n=0;
    float valor=0;
    JOGADOR *paux=(JOGADOR*)malloc(sizeof(JOGADOR)*val);

    for(j=0;j<val;j++)
    {
            //fscanf(fp,"%[^,] , %[^\n]\n",str1,str2); //o formato %[^,] faz com que a string seja lida até que apareça a vírgula. O formato %[^\n] faz o mesmo até que apareça o new line
			n=fread(&size1,sizeof(int),1,fp);
			if(n==1)
			{
				(paux+j)->nome=(char*)malloc(size1);
			}
			else
			{
				printf("load_entrada_saida_bin():ocorreu erro ao tentar copiar o tamanho do nome do jogador\n");
				return;
			}
			n=fread((paux+j)->nome,sizeof(char)*size1,size1,fp);
			if(n!=size1)
			{
				printf("load_entrada_saida_bin():ocorreu erro ao tentar copiar o nome do jogador\n");
				return;
			}
			n=fread(&size2,sizeof(int),1,fp);
			if(n==1)
			{
				(paux+j)->clube=(char*)malloc(size2);
			}
			else
			{
				printf("load_entrada_saida_bin():ocorreu erro ao tentar copiar o tamanho do nome do clube\n");
				return;
			}
			n=fread((paux+j)->clube,sizeof(char)*size2,size2,fp);
			if(n!=size1)
			{
				printf("load_entrada_saida_bin():ocorreu erro ao tentar copiar o nome do jogador\n");
				return;
			}
    }
    if(strcmp(op,"ENTRAM")==0)
    {
        insert_string(paux,val-1);  //FUNÇÃO QUE ORDENA O BLOCO DE JOGADOR A SER INSERIDO NA ESTRUTURA

        pf->plantel_ativo+=val;
        entra(pf,paux,data,val);     //REALIZA A INCLUSÃO DOS NOVOS JOGADOR NA ESTRUTURA DEFINITIVA

        imprime_txt(paux,"ENTRAM",val,data);    //IMPRIME EM TXT O RESUMO DA OPERAÇÃO REALIZADA
        imprime_bin(paux,"ENTRAM",val,data);
    }
    else if(strcmp(op,"SAEM")==0)
    {
        valor=pf->mealheiro/pf->plantel_ativo;
        for(j=0;j<val;j++)
        {
            saida(pf,(paux+j)->nome,data,valor);
        }
        pf->plantel_ativo-=val;
        imprime_txt(paux,"SAEM",val,data);
        imprime_bin(paux,"SAEM",val,data);
    }
}