A maior rede de estudos do Brasil

Grátis
3 pág.
exemplo_professora_alocacao_

Pré-visualização | Página 1 de 1

// Cria um registro com os campos desejados
typedef struct {
int CPF;
char nome[30];
char end[30];
} REG; // Usa o typedef para criar um Tipo REG
typedef struct {
 int contador;
 int tamanho;
 REG *dados; // o vetor declarado como um ponteiro pois sera alocado dinamicamente
} NOVO_VETOR;
// **********************************************************************************************
void inicializa (NOVO_VETOR *v, int quantidade_de_alunos)
{
 
 v->contador=0;
 v->tamanho=quantidade_de_alunos;
 v->dados = (REG *) malloc (quantidade_de_alunos * sizeof(REG));
 printf("==>contador %d\n", v->contador);
 printf("==>tamanho %d\n", v->tamanho); 
}
// **********************************************************************************************
void insere_dados (NOVO_VETOR *x, char parametro_nome[], char parametro_end[], int parametro_CPF)
{
 if (x->contador < x->tamanho)
 {
 printf("insere dados contador ==> %d\n", x->contador);
 printf("insere dados tamanho ==> %d\n", x->tamanho);
 x->dados[ x-> contador ].CPF = parametro_CPF;
 strcpy( x->dados[ x-> contador ].nome, parametro_nome);
 strcpy( x->dados[ x-> contador ].end, parametro_end);
 x->contador = x->contador+1;
 } else printf("Erro: Nao posso inserir aluno, capacidade estourada");
}
// **********************************************************************************************
void mostra (NOVO_VETOR K)
{
int x;
for ( x=0; x < K.contador; x++)
printf("|%d| Nome=%s |CPF=%d End=%s \n", x, K.dados[x].nome, K.dados[x].CPF, K.dados[x].end);
}
//
//**************************** mostra_elemento *****************************************************
// * Mostra na tela um elemento especifico informado como posicao
// deve verificar se a posicao e' valida e caso seja, acessa o vetor nesta posicao
void mostra_elemento( NOVO_VETOR K, int posicao)
{
if (posicao == -1)
{
printf("Elemento nao existe");
return;
}
if (posicao < K.contador)
printf("Nome=%s CPF=%d END=%s\n", K.dados[posicao].nome, K.dados[posicao].CPF, K.dados[posicao].end );
else printf("Tentando acessar posicao invalida");
}
int pesquisa (NOVO_VETOR X, char st[])
{ int x;
for (x=0;x<X.contador;x++)
{
if (strcmp (st, X.dados[x].nome)==0)
{
return x;
}
}
return -1;
}
int main (void)
{
int i=0, posicao;
NOVO_VETOR v1, v2, v3;
inicializa (&v1,100); // pode-se cadastrar ate 100 alunos em v1
inicializa (&v2,20); // pode-se cadastrar ate 20 alunos em v2
inicializa (&v3, 10);
insere_dados (&v1, "Ana Maria", "Rua Tupy 34", 123); i++;
insere_dados (&v1, "Paula Silva", "Rua 24 de Marco 345", 545645);i++;
insere_dados (&v2, "Michelle Mendes", "Av. Silva Paes 90", 567);i++;
insere_dados (&v1, "Ana Claudia", "Rua 25 de janeiro 23", 45678); i++;
insere_dados (&v2, "Ana Paula", "Rua Benjamin Constant 12", 234);i++;
printf("\n\n===> MOSTRA TODOS OS ELEMENTOS DO VETOR!\n\n\n");
mostra(v1);
mostra(v2);
printf("\n\n\n ===> COM PESQUISA DOS ELEMENTOS DO VETOR!\n\n");
posicao = pesquisa (v1, "Paula Silva");
mostra_elemento(v1, posicao); // mostra os dados completos da Paula Silva
posicao = pesquisa (v1, "Ana Paula"); // Nao existe Ana Paula em v1, apenas em v2
mostra_elemento(v1, posicao); // mostra na tela 'Elemento nao existe'
}