Example #1
0
/*Checa se ja existe um time com o nome informado, se sim retorna a sua posicao
 *se nao, retorna a ultima posicao que esta livre para ser escrita
 */
void busca_time(Caracteristicas time[], char nome_time[],int *posicao){
    int i, acabou = 0;
    for(i = 0; i < QUANTIDADEdeTIMES && !acabou; i++){
        if(strcmp(nome_time, time[i].nome) == 0){
            *posicao = i;
            acabou = 1;
        }else if(strcmp("NAOHA", time[i].nome) == 0){
            insere_time(time, i, nome_time);
            *posicao = i;
            acabou = 1;
        }
    }
}
Example #2
0
void armazena_vitoria(entrada* vetor, time* campeonato, time* times_camp, int *i, int* quant_times, int* quant_times_jogaram){

	int j=0, pos1=0, pos2=0, posic1=0, posic2=0;
	time time_a, time_b;
//Verificar os times que jogaram.
	strcpy(time_a.nome, vetor[*i].elemento2);
	strcpy(time_b.nome, vetor[*i].elemento3);
	posic1= consulta_time(time_a, times_camp, quant_times);
	posic2= consulta_time(time_b, times_camp, quant_times);	
	if(posic1!=-1){
		time_a.pontuacao= times_camp[posic1].pontuacao;
		pos1= verifica_ranking(time_a, campeonato, quant_times_jogaram);
	}
	if(posic2!=-1){
		time_b.pontuacao= times_camp[posic2].pontuacao;
		pos2= verifica_ranking(time_b, campeonato, quant_times_jogaram);
	}
//Caso o time vencedor tenha feito sua primeira partida no campeonato e não tenha sido citado anteriormente na entrada, ele será inserido na competição e no vetor para consulta.	
	if(posic1== -1){
		insere_time(time_a, campeonato, quant_times_jogaram);
		insere_time(time_a, times_camp, quant_times);
		pos1= (*quant_times_jogaram);
		posic1= (*quant_times);
	}
//Caso o time perdedor tenha feito sua primeira partida no campeonato e não tenha sido citado anteriormente na entrada, ele será inserido na competição e no vetor para consulta.	
	if(posic2== -1){
		insere_time(time_b, campeonato, quant_times_jogaram);
		insere_time(time_b, times_camp, quant_times);
		pos2= (*quant_times_jogaram);
		posic2= (*quant_times);
	}	
//Caso o time vencedor tenha feito sua primeira partida no campeonato, mas já tenha sido citado anteriormente na entrada, ele será inserido na competição apenas.		
	if(pos1== -1){
		insere_time(time_a, campeonato, quant_times_jogaram);
		pos1= (*quant_times_jogaram);
	}	
//Caso o time perdedor tenha feito sua primeira partida no campeonato, mas já tenha sido citado anteriormente na entrada, ele será inserido na competição apenas.			
	if(pos2== -1){
		insere_time(time_b, campeonato, quant_times_jogaram);
		pos2= (*quant_times_jogaram);
	}		
//Modificar a pontuação dos times que jogaram.			
	modifica_pontuacao(times_camp, posic1, 3, posic2, 0);
	modifica_pontuacao(campeonato, pos1, 3, pos2, 0);
//Reordenar a classificação do campeonato.	
	ordena_ranking(campeonato, *quant_times_jogaram);
	for(j=1; j<= *quant_times_jogaram; j++){
		campeonato[j].ranking=j;
	}
//Reordenar o vetor que contém os times em ordem alfabética.	
	ordena_nome(times_camp, *quant_times, campeonato);
	

}
Example #3
0
void operacao_consulta(FILE* saida, entrada *vetor, time* campeonato, time* times_camp, int *i, int* quant_times, int* quant_times_jogaram){
	
	char *rank="RANKING", *pont="PONTUACAO";
	int pos1=0, posic1=0;
	char *info2;
	time time_a;
//Verificar o time a ser consultado.
	strcpy(time_a.nome, vetor[*i].elemento3);
	posic1= consulta_time(time_a, times_camp, quant_times);
//Se o time for novo, inserir o time no vetor.	
	if(posic1== -1){
		insere_time(time_a, times_camp, quant_times);
		posic1= (*quant_times);
		times_camp[posic1].ranking= (*quant_times_jogaram)+1;
	}
//Verificar o tipo de consulta solicitada.
	info2= vetor[*i].elemento2;
//Caso a consulta seja ao ranking do time.
	if(strcmp(info2, rank)==0){
		//Se o time já jogou, verifica a posição no ranking pelo vetor ordenado por ranking.
			if(times_camp[posic1].flag_jogou==1){
				time_a.pontuacao= times_camp[posic1].pontuacao;
				pos1= verifica_ranking(time_a, campeonato, quant_times_jogaram);
				fprintf(saida, "RANKING,%s,%d\n", campeonato[pos1].nome, campeonato[pos1].ranking);
			}
		//Se o time não jogou ainda, seu ranking é N+1.
			else
				fprintf(saida, "RANKING,%s,%d\n", times_camp[posic1].nome, times_camp[posic1].ranking);
	}
//Caso a consulta seja à pontuação do time.	
	else if(strcmp(info2, pont)==0){
		fprintf(saida, "PONTUACAO,%s,%d\n", times_camp[posic1].nome, times_camp[posic1].pontuacao);
	}	
//Validação da entrada.	
	else{
		printf("ENTRADA INVÁLIDA! Se vai fazer consulta, o segundo campo da linha deve ser RANKING ou PONTUACAO.\n");
		exit(0);
	}
//Reordenar o vetor que contém os times em ordem alfabética.	
	ordena_nome(times_camp, *quant_times, campeonato);	
}