Upload
ronilson-ferreira
View
232
Download
1
Embed Size (px)
Citation preview
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()
{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);
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().
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();}
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);
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();
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");
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{
//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]
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++)
{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");}}