14
ATIVIDADES PRÁTICAS SUPERVISIONADAS Programação Estruturada II Etapa 3 Passo 2 1. Fazer um programa em Linguagem C que implemente a estrutura taxiamento (struct taxiamento) para controlar a Liberação para Taxiamento das Aeronaves para decolagem na pista de voos. O taxiamento e as decolagens devem obedecer uma fila para não haver choques entre as aeronaves a decolar e que estão pousando. A estrutura taxiamento deve ser implementada de forma dinâmica e deve conter as seguintes informações: número do voo; modelo da Aeronave; empresa Aérea; horário de Saída; 2. Implementar a função cadastrarTaxiamento() que deve cadastras as informações do taxiamento e decolagem com as informações acima. O cadastro deve obedecer à disciplina de inserção dos dados FIFO (First In First Out). 3. Implementar a função autorizaTaxiamento() que deve apresentar qual a sequência de taxiamentos e decolagens das aeronaves. Programa em c #include<stdlib.h> #include<stdio.h> #include<conio.h> struct taxiamento { int numvoo; char modelo_aeronave[40]; char empresa_aerea[40]; int horário_saida; }; void menu(); void cadastrarTaxiamento(); void autorizaTaxiamento(); struct taxiamento *inf;

ATPS Conteudo 3 e 4 Etapas

Embed Size (px)

Citation preview

Page 1: ATPS Conteudo 3 e 4 Etapas

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Programação Estruturada II

Etapa 3

Passo 21. Fazer um programa em Linguagem C que implemente a estrutura taxiamento (struct taxiamento) para controlar a Liberação para Taxiamento das Aeronaves para decolagem na pista de voos. O taxiamento e as decolagens devem obedecer uma fila para não haver choques entre as aeronaves a decolar e que estão pousando. A estrutura taxiamento deve ser implementada de forma dinâmica e deve conter as seguintes informações:

número do voo; modelo da Aeronave; empresa Aérea; horário de Saída;

2. Implementar a função cadastrarTaxiamento() que deve cadastras as informações do taxiamento e decolagem com as informações acima. O cadastro deve obedecer à disciplina de inserção dos dados FIFO (First In First Out). 3. Implementar a função autorizaTaxiamento() que deve apresentar qual a sequência de taxiamentos e decolagens das aeronaves.

Programa em c

#include<stdlib.h>#include<stdio.h>#include<conio.h>

struct taxiamento{int numvoo;char modelo_aeronave[40];char empresa_aerea[40];int horário_saida;};

void menu();void cadastrarTaxiamento();void autorizaTaxiamento();struct taxiamento *inf;

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

}void menu()

Page 2: ATPS Conteudo 3 e 4 Etapas

{printf("\n Empresa VOEBEM \n");printf(" ============================ \n\n");printf(" ____________________________\n");printf("| Escolha uma opcao abaixo |\n");printf("|----------------------------|\n");printf("| 1 - Cadastrar Taxiamento |\n");printf("| 2 – Autoriza Taxiamento |\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 0:system("pause");exit(0);break;

default:printf("\n\nOpcao nao encontrada.\nTente Novamente\n\n");system("pause");system("cls");menu();

break;}}

//FUNÇÃO CADASTRAR TAXIAMENTOvoid cadastrarTaxiamento(){int num;do{inf = (struct taxiamento *) malloc(sizeof(struct taxiamento));

printf("\n\n*****CADASTRO DE TAXIMANTO*****\n");

printf("\nNumero do voo: ");scanf("%d", &inf->numvoo);fflush(stdin);

Page 3: ATPS Conteudo 3 e 4 Etapas

printf("\N Modelo da Aeronave: ");fflush(stdin);gets(inf->modelo_aeronave);

printf("\N Empresa Aerea: ");fflush(stdin);gets(inf->empresa_aerea);

printf("\nHorario de saída: ");scanf("%d", &inf->horário_saida);}

//FUNÇÃO AUTORIZA TAXIAMENTOvoid autorizaTaxiamento(){

printf("\n-----------------------------");printf("\nAeronaves autoriazadas para Taxiamento");printf("\nNumero do Voo: %d ", inf->numvoo);printf("\n\nModelo da Aeronave: %s ", inf->modelo_aeronave);printf("\n\nEmpresa Aerea: %d ", inf->empresa_aerea);printf("\n nHorario de saída: %d", inf-> horário_saida);getch();system("cls");menu();

}

Passo 3 1. Fazer um programa em Linguagem C que implemente a estrutura bagagem (struct bagagem) para o controle de armazenamento das bagagens no compartimento de cargas. O programa deve controlar o empilhamento e desempilhamento das bagagens e ser implementado de forma dinâmica, por meio das seguintes informações:

código da Bagagem; número da Passagem; número do Voo; data Embarque; horário de Embarque; portão de Embarque.

2. Implementar a função cadastraBagagem() que deve permitir o cadastro de bagagens dos passageiros. O cadastro deve obedecer à disciplina de inserção dos dados LIFO (Last In First Out). 3. Implementar a função recuperaBagagem() que deve resgatar as bagagens que foram empilhadas pela função cadastraBagagem().

Page 4: ATPS Conteudo 3 e 4 Etapas

Programa em c

#include<stdlib.h>#include<stdio.h>#include<conio.h>

struct bagagem{int codigo_bagagem;int numpassagem;int numvoo;int dataembarque;int horario_embarque;char portão_embarque[40];};

void menu();void cadastrabagagem();void recuperabagagem();struct bagagem *inf;

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

}void menu(){printf("\n Empresa VOEBEM \n");printf(" ============================ \n\n");printf(" ____________________________\n");printf("| Escolha uma opcao abaixo |\n");printf("|-------------------------- |\n");printf("| 1 - Cadastrar Bagagem |\n");printf("| 2 – Recuperar Bagagem |\n");printf("| 0 - Sair |\n");printf("|__________________________ |\n");selecao();}

Page 5: ATPS Conteudo 3 e 4 Etapas

void selecao(){int opcao;

printf("\nDigite uma das opcoes: ");scanf("%i", &opcao);

switch (opcao){case 1:cadastrabagagem();

menu();break;

case 2:recuperabagagem();

menu();break;

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

default:printf("\n\nOpcao nao encontrada.\nTente Novamente\n\n");system("pause");system("cls");menu();

break;}}

//FUNÇÃO CADASTRAR BAGAGEMvoid cadastrabagagem(){int num;do{inf = (struct bagagem *) malloc(sizeof(struct bagagem));

printf("\n\n*****CADASTRO DE BAGAGEM*****\n");

printf("\nCodigo da bagagem: ");scanf("%d", &inf->codigo_bagagem);fflush(stdin);

printf("\nNumero da passagem: ");scanf("%d", &inf->numpassagem);fflush(stdin);

printf("\nNumero do voo: ");scanf("%d", &inf->numvoo);fflush(stdin);

printf("\nData de Embarque: ");scanf("%d", &inf->dataembarque);fflush(stdin);

Page 6: ATPS Conteudo 3 e 4 Etapas

printf("\nHorario do Embarque: ");scanf("%d", &inf->horario_embarque);fflush(stdin);

printf("\nPortão de Embarque: ");fflush(stdin);gets(inf-> portão_embarque);

printf(" ___________________________________\n");printf("| Escolha uma opcao abaixo |\n");printf("|----------------------------- |\n");printf("| 1 - Cadastrar outra Bagagem |\n");printf("| 0 - Voltar ao menu |\n"); printf("|_____________________________ |\n");

printf("Opcao: ");scanf("%d",&num);}while(num!=0);system("cls");}

//FUNÇÃO RECUPERAR BAGAGEMvoid recuperabagagem(){

system("cls");printf("\n-----------------------------");printf("\nBagagens armazenadas");printf("\nCodigo da bagagem: %d ", inf->codigo_bagagem);printf("\n\nNumero da passagaem: %d ", inf->numpassagem);printf("\nNumero do voo: %d", inf->numvoo);printf("\Data de embarque: %d ", &inf->dataembarque);printf("\nHorario de embarque: %d", &inf->horario_embarque);printf("\nPortao de Embarque: %s", &inf->portao_embarque);getch();system("cls");menu();

Etapa 4

Nesta etapa da atividade, pede-se que seja elaborado um programa em Linguagem C que implemente um levantamento de rotas entre uma Cidade A e uma Cidade B por meio de um Grafo, utilizando Matriz de Adjacência.

Durante a elaboração, deve-se implementar as funções montarGrafo() e caminhaGrafo(), considerando a distância e a ligação entre as cidades

Programa em c

#include<stdlib.h>#include<stdio.h>#include<conio.h>

void menu();void montargrafo();

Page 7: ATPS Conteudo 3 e 4 Etapas

void caminhagrafo()

main(){int I,J,N,N1,N2, menor,T,R,NO_ATUAL,DIST_ATUAL,LUGAR_INICIAL,LUGAR_FINAL;int A[10][10];char cidade[10];int vet_no_ant;int vet_caminho;int vet_peso;int vet_resposta;

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

}void menu(){printf("\n Empresa VOEBEM \n");printf(" ============================ \n\n");printf(" ____________________________\n");printf("| Escolha uma opcao abaixo |\n");printf("|-------------------------- |\n");printf("| 1 - Cadastrar Cidades |\n");printf("| 2 – Melhor rota |\n");printf("| 0 - Sair |\n");printf("|__________________________ |\n");selecao();}

void selecao(){int opcao;

printf("\nDigite uma das opcoes: ");scanf("%i", &opcao);

switch (opcao){case 1:montargrafo();

menu();break;

case 2:caminhagrafo();

menu();break;

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

default:printf("\n\nOpcao nao encontrada.\nTente Novamente\n\n");system("pause");

Page 8: ATPS Conteudo 3 e 4 Etapas

system("cls");menu();

break;}}//FUNÇÃO MONTAR GRAFO (CADASTRO DE CIDADES)void montargrafo(){int num;do{

printf("\n\n*****CADASTRO DE CIDADES*****\n");

for(I=0;I<10;I++) {

printf("\nEntre com a cidade numero %d:”,I);scanf("%c", &cidade[I]);

}

printf("\nEntre com a distancia entre as cidade\n”);

for(I=0;I<10;I++) { for(J=0;J<10;J++) {

Printf(\n“distancia entre %c e %c\n”, cidade[I],cidade[J]); scanf("%d", &A[i][j]);}

}

printf(" ___________________________________\n");printf("| Escolha uma opcao abaixo |\n");printf("|----------------------------- |\n");printf("| 1 - Cadastrar outra Bagagem |\n");printf("| 0 - Voltar ao menu |\n"); printf("|_____________________________ |\n");

printf("Opcao: ");scanf("%d",&num);}while(num!=0);system("cls");}

//FUNÇÃO CAMINHO GRAFO (MELHOR CAMINHO)void caminhagrafo(){int num;do{

Page 9: ATPS Conteudo 3 e 4 Etapas

//PREENCHE OS VETORES CAMINHO E PESO

for(I=0;I<10;I++) {

vet_caminho[I]=-1;int vet_peso [I]=0;

}

printf("\n\n*****Escolha da melhor rota*****\n");printf("\nEscolha a cidade de saída\n”);

for(I=0;I<10;I++) {

printf("\nEscolha o numero %d para %c:\n”,I,cidade[I]);

}

printf("\nEntre a cidade inicial\n”);scanf("%d", &LUGAR_INICIAL);N1=LUGAR_INICIAL;printf("\nEntre a cidade final\n”);scanf("%d", &LUGAR_FINAL);N2=LUGAR_FINAL;

if(LUGAR_INICIAL==LUGAR_FINAL) { printf("cidades iguais escolha novamente); }

printf("\n A cidade inicial escolhida eh %c e a final eh %c\n\n”, cidade[N1],cidade[N2]);

if(LUGAR_INICIAL != LUGAR_FINAL){NO_ATUAL=LUGAR_INICIAL;I=NO_ATUAL;vet_caminho[I]= 1;

if(I<=10){ for(J=0;J<10;J++) {if(A[i][j] != 0){if(vet_caminho[j]== 1){if(vet_peso[j]> A[i][j])

{if(vet_peso[j]>-1){vet_peso[J]= A[I][J];NO_ATUAL=I;}

//verificando se o menor valor do vetor peso é diferente de -1 e a mesma posição no vetor caminho é igual a “F”

menor= vet_peso[0]

Page 10: ATPS Conteudo 3 e 4 Etapas

for (T=0;T<10;T++){if(vet_peso[T]< menor){ menor = vet_peso[T];}if(vet_peso[T]!=1){if(vet_caminho[T]==F){NO_ATUAL=I;Vet_resposta[I]=NO_ATUAL;}if(NO_ATUAL==LUGAR_FINAL;{for (R=0;R<10;R++){if(vet_resposta[R]!=0{aux=vet_resposta[R];printf("\n %d melhor rota é %d\n”, R, vet_resposta[R]);}elseI++}}}}if(LUGAR_INICIAL != LUGAR_FINAL){NO_ATUAL=LUGAR_INICIAL;I=NO_ATUAL;vet_caminho[I]= 1;

if(I<=10){ for(J=0;J<10;J++) {if(A[i][j] != 0){if(vet_caminho[j]== 1){A[i][j]+ vet_peso[j]}if(vet_peso[j]> A[i][j])

{if(vet_peso[j]>-1){vet_peso[J]= A[I][J];NO_ATUAL=I;}

//verificando se o menor valor do vetor peso é diferente de -1 e a mesma posição no vetor caminho é igual a “F”

menor= vet_peso[0]

for (T=0;T<10;T++)

Page 11: ATPS Conteudo 3 e 4 Etapas

{if(vet_peso[T]< menor){ menor = vet_peso[T];}if(vet_peso[T]!=1){if(vet_caminho[T]==F){NO_ATUAL=I;Vet_resposta[I]=NO_ATUAL;}if(NO_ATUAL==LUGAR_FINAL;{for (R=0;R<10;R++){if(vet_resposta[R]!=0{aux=vet_resposta[R];printf("\n %d melhor rota é %d\n”, R, vet_resposta[R]);}}}}

printf(" ___________________________________\n");printf("| Escolha uma opcao abaixo |\n");printf("|----------------------------- |\n");printf("| 1 - Cadastrar outra Bagagem |\n");printf("| 0 - Voltar ao menu |\n"); printf("|_____________________________ |\n");

printf("Opcao: ");scanf("%d",&num);}while(num!=0);system("cls");}}