You are on page 1of 8

UNIVERSIDADE BANDEIRANTE ANHANGUERA TECNOLOGIA DE ANLISE E DESENVOLVIMENTO DE SISTEMAS

4 SEMESTRE CARLOS ALBERTO DE OLIVEIRA RA 1299875714 FBIO DOS SANTOS DE OLIVEIRA RA 3776762381 JAILTON DE JESUS OLIVEIRA RA 1299903880 MARCOS VINCIUS CASTRO E SILVA RA 3708614962 TANIA MORENO PRADO DE CARVALHO RA 1299931938 VINCIUS TADEU DOS SANTOS RA 4206796562

ESTRUTURA DE DADOS ATPS - ETAPA 2 Alocao Dinmica de Memria Relatrio 2 - Listas Ligadas

ORIENTADOR CSAR KIEL

So Paulo, setembro 2013

ALOCAO DINMICA DE MEMRIA Na alocao dinmica podemos alocar espaos de memria que no precisam estar organizados de maneira sequencial, podendo estar distribudos de forma dispersa (no ordenada) na memria do computador, pois os dados no precisam ter um tamanho fixo e podemos definir para cada dado quanto de memria que desejamos usar. Solicitar para alocar/deslocar blocos de memria, de acordo com a nossa necessidade, reservando ou liberando blocos de memria durante a execuo do programa. Para encontrarmos os blocos que esto dispersos ou espalhados na memria usamos as variveis do tipo Ponteiro (indicadores de endereos de memria).

PROGRAMA EM C #include<stdlib.h> #include<stdio.h> #include<conio.h>

struct voo

{ int num_voo; int data_voo; int horario; char saida[45]; char chegada[45]; char rota[60]; int estimativa; int passabordo; };

void menu(); void consultar(); void cadastro(); void selecao(); void excluir();

struct voo *inf; main()

{ menu(); return 0; system("pause");

void menu() { printf("\n Empresa VOEBEM \n"); printf(". . . . . . . . . . . . . . .\n"); printf("Escolha uma opcao abaixo \n"); printf(". . . . . . . . . . . . . . .\n"); printf("1 - Cadastrar Passagem \n"); printf("2 - Consultar Passagem \n"); printf("3 - Excluir Passagem \n"); printf("0 - Sair \n"); printf(". . . . . . . . . . . . . . .\n"); selecao(); } void selecao(){ int opcao; printf("\nDigite uma das opcoes: ");

scanf("%i", &opcao); switch (opcao){ case 1: cadastro(); menu(); break;

case 2: consultar(); menu(); break;

case 3: excluir(); menu(); break;

case 0: system("pause"); exit(0); break;

default: printf("\n\nOpcaonao encontrada.\nTente Novamente\n\n"); system("pause"); system("cls"); menu(); break; } }

//Funcao Cadastrar void cadastro(){ int num; do{ inf = (struct voo *) malloc(sizeof(struct voo)); printf("\n\n*****CADASTRO DE VOO*****\n"); printf("\nNumero do voo: "); scanf("%d", &inf->num_voo); fflush(stdin);

printf("\nData do voo: "); scanf("%d", &inf->data_voo);

printf("\nHorario do voo: "); scanf("%d", &inf->horario);

printf("\nAeroporto de saida: "); fflush(stdin); gets(inf->saida);

printf("\nAeroporto de chegada: "); fflush(stdin); gets(inf->chegada);

printf("\nRota do voo: "); fflush(stdin); gets(inf->rota);

printf("\nEstimativa de voo: "); scanf("%d", &inf->estimativa); fflush(stdin);

printf("\nPassageiros a bordo: "); fflush(stdin); scanf("%d", &inf->passabordo);

printf(". . . . . . . . . . . . . . .\n"); printf("Escolha uma opcao abaixo: \n"); printf("1 - Cadastrar outra Passagem \n"); printf("0 - Voltar ao menu \n"); printf(". . . . . . . . . . . . . . .\n"); printf("Opcao: "); scanf("%d",&num);

}while(num!=0); system("cls"); }

void excluir(){ menu(); }

//Funcao Consultar void consultar(){ system("cls"); int consult;

printf("Digite o numero do voo: "); scanf("%d", &consult);

if(inf->num_voo!=consult){ printf("Numero nao encontrado\n"); printf("Tente Novamente"); getch(); system("cls"); consultar(); }

else { printf("\n-----------------------------"); printf("\nNumero do Voo encontrado"); printf("\nNumero do Voo: %d ", inf->num_voo); printf("\n\nData do Voo: %d ", inf->data_voo); printf("\nHorario do voo: %d", inf->horario); printf("\nAeroporto de Saida: %s ", &inf->saida); printf("\nAeroporto de Chegada: %s", &inf->chegada); printf("\nRota: %s", &inf->rota); printf("\nEstimativa de voo: %d", inf->estimativa); printf("\nPassageiros a bordo: %d", inf->passabordo); getche();

menu();

} }

BIBLIOGRAFIA Alocao Dinmica de Memria Disponvel no site www.docs.google.com


https://docs.google.com/open?id=0B_uLQd5hdqlWTVFzdzZRYTZSSDJRRm9hLVg1RjRxZw>

Acesso em 28 de setembro de 2013 Estrutura de Dados usando C - Captulo 4: Filas e Listas (TENEMBAUM, A.; LANGSAM,
Y.; AUGESTEIN, M.. 1 ed. So Paulo: Pearson, 2005. p. 223 a 265)

Lista Simplesmente Encadeada. Disponvel no site www.docs.google.com


https://docs.google.com/open?id=0B_uLQd5hdqlWQXdYT19jQUJUd2Vob1BYQ3dWZEkydw

Acesso em 28 de setembro de 2013