TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

SISTEMAS DE INFORMAÇÃO BACHARELADO 4º PERÍODO

Por:   •  24/3/2017  •  Trabalho acadêmico  •  354 Palavras (2 Páginas)  •  229 Visualizações

Página 1 de 2

[pic 1]

FACULDADE META

SISTEMAS DE INFORMAÇÃO BACHARELADO 4º PERÍODO

LEONARDO SILVA DO NASCIMENTO

 ESTRUTURA DE DADOS I

RIO BRANCO-AC

25-09-2016

#include        

#include

//criação da estrutura e definição da mesma como um tipo de variável mista.

typedef struct registro{

int matricula;

char sexo;

char nome[80], curso[50];

struct registro *p;

}registro;

//função de alocação que permite preparar o novo registro para ser o último da lista.

registro * aloca(){

registro *novo=malloc(sizeof(registro));

if(novo!=NULL){

novo->p=NULL;

return novo;

}

return novo;

}

//função de inserção: insere o novo registro sempre no começo da lista.

registro * inserir(registro *cab, registro *novo){

if(cab==NULL) return novo;

novo->p=cab;

return novo;

}

//função que realizará a listagem.

void listar(registro *cab){

registro *aux;

if(cab==NULL) printf("\nLista Vazia!\n");

aux=cab;

while(aux!=NULL){

printf("\nMatricula: %d", aux->matricula);

printf("\nNome: ");

puts(aux->nome);

printf("Curso: ");

puts(aux->curso);

printf("Sexo: ");

if(aux->sexo=='m' || aux->sexo=='M'){

printf("Masculino");

}else{

printf("Feminino");

}

printf("\n");

aux=aux->p;

}

}

//função para realizar a pesquisa.

void pesquisar(registro *cab, int busca){

registro *aux;

if(cab==NULL) printf("\nLista Vazia!\n");

aux=cab;

while(aux!=NULL){

if(aux->matricula==busca){

printf("\nMatricula: %d", aux->matricula);

printf("\nNome: ");

puts(aux->nome);

printf("Curso: ");

puts(aux->curso);

printf("Sexo: ");

if(aux->sexo=='m' || aux->sexo=='M'){

printf("Masculino");

}else{

printf("Feminino");

}

printf("\n");

}

aux=aux->p;

}

}

//função para realizar exclusão.

registro * excluir(registro *cab, int busca){

registro *aux, *ant;

if(cab==NULL){

printf("\nA lista está vazia\n");

return cab;

}

aux=cab;//aux é a variável usada para percorrer a lista (ela sempre tem o seu valor atualizado para fazer a checagem dos dados do registro).

ant=cab;//ant é a variável que guarda o valor do registro anterior, caso tenhamos que apagar um registro entre outros registros.

while(aux!=NULL){//laço para percorrer a lista.

if(aux->matricula==busca){//condição que diz quando o valor procurado é achado.

if(aux==cab){//condição que diz se o valor encontrado é o primeiro da lista.

cab=aux->p;

free(aux);

printf("\nExcluido!\n");

return cab;

}

if(aux->p!=NULL){//condição que diz que o valor encontrado está entre 2 registros.

ant->p=aux->p;

free(aux);

printf("\nExcluido!\n");

return cab;

}else{//caso não caia em nenhuma das primeiras condições o registro procurado é o último, aqui diz o que fazer nesse caso.

ant->p=NULL;

free(aux);

printf("\nExcluido!\n");

return cab;

}

}

ant=aux;//dentro do while é preciso atualizar o valor da variável 'ant' antes de atualizar o valor de 'aux'.

aux=aux->p;

}

if(aux==NULL){//aux será igual a NULL se o laço percorrer todos os registros em não cair no primeiro 'if'.

printf("\nValor Informado Nao Encontrado!\n");

return cab;

}

}

//função para realizar contagem de sexos.

void contar(registro *cab){

int f=0,m=0;//declaração de variáveis para a contagem dos sexos

registro *aux;

if(cab==NULL) printf("\nLista Vazia\n");

aux=cab;

while(aux){

if(aux->sexo=='m' || aux->sexo=='M'){

m++;

}else{

f++;

}

aux=aux->p;

}

printf("\nHomens: %d\nMulheres: %d",m,f);

printf("\n");

}

...

Baixar como (para membros premium)  txt (4.8 Kb)   pdf (116 Kb)   docx (106 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com