Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Noite amigos, estou apanhando muito pra fazer esse trabalho da faculdade. As vezes da vontade de desistir mas lembrei que tem pessoas que estão dispostas a ajudar/aprender então vamos ao que interessa.
Montei um sistema de uma empresa de aviação, deixei definida 3 structs: Avião/Voo/Passagem.
Nos testes anteriores que fiz a inserção estava funcionando corretamente, pois quando eu usava a função de imprimir os dados os dados saiam corretamente na tela. /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.clubedohardware.com.br/public/style_emoticons/default/smile.png&key=c28d2213ffbc489202ff51745071c871adc3c3b2f8e44a987e89f6f3aa1a4ec7" alt="smile.png" />
Mas eu quiz deixar o programa com um menu para facilitar o usuário, usando o famoso CASE, eu insiro os dados e o programa não exibe nada na tela.
Descobri que quando eu insiro todos os dados na lista ela ainda continua vazia. /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.clubedohardware.com.br/public/style_emoticons/default/sad.png&key=948c6e48a03d76f5797c3dd7e5bae007e47d7c0920274c17b90c5fb55e32c701" alt="sad.png" />
Eu acho que o conceito que utilizei esta correto. Mas o programa da erro na hora de exibir os dados, e quando excluo
diz que não tem nada armazenado.
Vou postas o código aqui porque eu não sei mais o que fazer e meu professor não vai me ensinar /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.clubedohardware.com.br/public/style_emoticons/default/ohmy.png&key=5ca5835166b6d720e625297d8d6e7bce571c09ec21bd9d874a59052fa6e7f393" alt="ohmy.png" />
Por favor me ajudem.
Obrigado.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct estrutura1 {
char modelo [20];
char fabricante [20];
int passageiros;
int comprimento;
int altura;
int velocidade;
int altitude;
char motor [20];
struct estrutura1 *prox_av;
}aviao;
typedef struct estrutura2 {
int n_voo;
char data_voo[15];
char hora_voo[15];
char aero_saida[20];
char aero_chegada[20];
char rota_voo[20];
char tempo_voo[15];
int passageiro_bordo;
struct estrutura2 *prox_voo;
}voo;
typedef struct estrutura3 {
int n_passagem;
int n_voo_pass;
char data_embarque[10];
char hora_embarque[5];
char portao_embarque[5];
struct estrutura3 *prox_pass;
}passagem;
void inserir_aviao(){
aviao * ini_av_ponto;
aviao * prox_av_ponto;
int resp_aviao;
ini_av_ponto = (aviao *)malloc(sizeof(aviao));
prox_av_ponto = ini_av_ponto;
while(1) {
printf("\n");
printf("Digite o Modelo: ");
scanf("%s", &prox_av_ponto->modelo);
printf("Digite o Fabricante do Aviao: ");
scanf("%s", &prox_av_ponto->fabricante);
printf("Digite o Numero de Passageiros: ");
scanf("%d", &prox_av_ponto->passageiros);
printf("Digite o Comprimento do Aviao em Metros: ");
scanf("%d", &prox_av_ponto->comprimento);
printf("Digite a Altura do Aviao em Metros: ");
scanf("%d", &prox_av_ponto->altura);
printf("Digite a Velocidade Media do Aviao em KM: ");
scanf("%d", &prox_av_ponto->velocidade);
printf("Digite a Altitude Suportada do Aviao em Metros: ");
scanf("%d", &prox_av_ponto->altitude);
printf("Digite o Tipo de Motor do Aviao: ");
scanf("%s", &prox_av_ponto->motor);
printf("Deseja continua? <1> SIM <outro valor> NAO: ");
scanf("%d", &resp_aviao);
if(resp_aviao == 1){
prox_av_ponto->prox_av = (aviao *)malloc(sizeof(aviao));
prox_av_ponto = prox_av_ponto->prox_av;
}
else
break;
}
prox_av_ponto->prox_av = NULL;
printf("\n");
}
void imprimir_aviao(){
aviao * ini_av_ponto;
aviao * prox_av_ponto;
prox_av_ponto = ini_av_ponto;
while(prox_av_ponto != NULL){
printf("Modelo do Aviao: %s\n", prox_av_ponto->modelo);
printf("Fabricante: %s\n", prox_av_ponto->fabricante);
printf("Quantidade Suportada de Passageiros: %d\n", prox_av_ponto->passageiros);
printf("Comprimento do Aviao em Metros: %d\n", prox_av_ponto->comprimento);
printf("Altura do Aviao em Metros: %d\n", prox_av_ponto->altura);
printf("Velocidade em KM: %d\n", prox_av_ponto->velocidade);
printf("Altitude Suportada do Aviao em Metros: %d\n", prox_av_ponto->altitude);
printf("Tipo de Motor: %s\n", prox_av_ponto->motor);
prox_av_ponto = prox_av_ponto->prox_av;
}
}
void inserir_voo(){
voo * ini_voo_ponto;
voo * prox_voo_ponto;
int resp_voo;
ini_voo_ponto = (voo *)malloc(sizeof(voo));
prox_voo_ponto = ini_voo_ponto;
while(1) {
printf("\n");
printf("Digite o Numero do Voo: ");
scanf("%d", &prox_voo_ponto->n_voo);
printf("Digite a Data do Voo. EX: 01/01/2000 ===>: ");
scanf("%s", &prox_voo_ponto->data_voo);
printf("Digite o Horario do Voo. EX: 00:00 ===> : ");
scanf("%s", &prox_voo_ponto->hora_voo);
printf("Digite o Aeroporto de Saida: ");
scanf("%s", &prox_voo_ponto->aero_saida);
printf("Digite o Aeroporto de Chegada: ");
scanf("%s", &prox_voo_ponto->aero_chegada);
printf("Digite a Rota: ");
scanf("%s", &prox_voo_ponto->rota_voo);
printf("Digite o Tempo Estimado de Voo em Horas EX: 01:00 ===> : ");
scanf("%s", &prox_voo_ponto->tempo_voo);
printf("Digite a Quantidade de Passageiros a Bordo: ");
scanf("%d", &prox_voo_ponto->passageiro_bordo);
printf("Deseja continua? <1> SIM <outro valor> NAO: ");
scanf("%d", &resp_voo);
if(resp_voo == 1){
prox_voo_ponto->prox_voo = (voo *)malloc(sizeof(voo));
prox_voo_ponto = prox_voo_ponto->prox_voo;
}
else
break;
}
prox_voo_ponto->prox_voo = NULL;
printf("\n");
}
void imprimir_voo(){
voo * ini_voo_ponto;
voo * prox_voo_ponto;
prox_voo_ponto = ini_voo_ponto;
while(prox_voo_ponto != NULL){
printf("Numero do voo: %d\n", prox_voo_ponto->n_voo);
printf("Data do Voo: %s\n", prox_voo_ponto->data_voo);
printf("Horario do Voo: %s\n", prox_voo_ponto->hora_voo);
printf("Aeroporto de Saida: %s\n", prox_voo_ponto->aero_saida);
printf("Aeroporto de Chegada: %s\n", prox_voo_ponto->aero_chegada);
printf("Rota: %s\n", prox_voo_ponto->rota_voo);
printf("Tempo Estimado de Voo em Horas: %s\n", prox_voo_ponto->tempo_voo);
printf("Quantidade de Passageiros a Bordo : %d\n", prox_voo_ponto->passageiro_bordo);
prox_voo_ponto = prox_voo_ponto->prox_voo;
}
}
int pesquisar_voo(int x){
voo * ini_voo_ponto;
voo * prox_voo_ponto;
prox_voo_ponto = ini_voo_ponto;
int flag_voo = 0;
while(prox_voo_ponto != NULL){
if(prox_voo_ponto->n_voo==x){
printf("VOO ENCONTRADO: %d\n", x);
printf("Numero do voo: %d\n", prox_voo_ponto->n_voo);
printf("Data do Voo: %s\n", prox_voo_ponto->data_voo);
printf("Horario do Voo: %s\n", prox_voo_ponto->hora_voo);
printf("Aeroporto de Saida: %s\n", prox_voo_ponto->aero_saida);
printf("Aeroporto de Chegada: %s\n", prox_voo_ponto->aero_chegada);
printf("Rota: %s\n", prox_voo_ponto->rota_voo);
printf("Tempo Estimado de Voo em Horas: %s\n", prox_voo_ponto->tempo_voo);
printf("Quantidade de Passageiros a Bordo : %d\n", prox_voo_ponto->passageiro_bordo);
flag_voo = 1;
prox_voo_ponto = NULL;
}
else{
prox_voo_ponto = prox_voo_ponto->prox_voo;
}
if(flag_voo == 0){
printf("VOO NAO ENCONTRADO");
}
}
}
void inserir_passagem(){
passagem * ini_pass_ponto;
passagem * prox_pass_ponto;
int resp_pass;
ini_pass_ponto = (passagem *)malloc(sizeof(passagem));
prox_pass_ponto = ini_pass_ponto;
while(1) {
printf("\n");
printf("Digite o Numero da Passagem: ");
scanf("%d", &prox_pass_ponto->n_passagem);
printf("Digite o Numero do Voo: ");
scanf("%d", &prox_pass_ponto->n_voo_pass);
printf("Digite a Data de Embarque : ");
scanf("%s", &prox_pass_ponto->data_embarque);
printf("Digite a Hora de Embarque: ");
scanf("%s", &prox_pass_ponto->hora_embarque);
printf("Digite o Portao de Embarque: ");
scanf("%s", &prox_pass_ponto->portao_embarque);
printf("Deseja continua? <1> SIM <outro valor> NAO: ");
scanf("%d", &resp_pass);
if(resp_pass == 1){
prox_pass_ponto->prox_pass = (passagem *)malloc(sizeof(passagem));
prox_pass_ponto = prox_pass_ponto->prox_pass;
}
else
break;
}
prox_pass_ponto->prox_pass = NULL;
printf("\n");
}
void imprimir_passagem(){
passagem * ini_pass_ponto;
passagem * prox_pass_ponto;
prox_pass_ponto = ini_pass_ponto;
while(prox_pass_ponto != NULL){
printf("Numero da Passagem: %d\n", prox_pass_ponto->n_passagem);
printf("Numero do Voo: %d\n", prox_pass_ponto->n_voo_pass);
printf("Data de Embarque: %s\n", prox_pass_ponto->data_embarque);
printf("Hora de Embarque: %s\n", prox_pass_ponto->hora_embarque);
printf("Potao de Embarque: %s\n", prox_pass_ponto->portao_embarque);
prox_pass_ponto = prox_pass_ponto->prox_pass;
}
}
int pesquisar_passagem(int y){
passagem * ini_pass_ponto;
passagem * prox_pass_ponto;
prox_pass_ponto = ini_pass_ponto;
int flag_passagem = 0;
while(prox_pass_ponto != NULL){
if(prox_pass_ponto->n_passagem==y){
printf("PASSAGEM ENCONTRADA: %d\n", y);
printf("Numero da Passagem: %d\n", prox_pass_ponto->n_passagem);
printf("Numero do Voo: %d\n", prox_pass_ponto->n_voo_pass);
printf("Data de Embarque: %s\n", prox_pass_ponto->data_embarque);
printf("Hora de Embarque: %s\n", prox_pass_ponto->hora_embarque);
printf("Potao de Embarque: %s\n", prox_pass_ponto->portao_embarque);
flag_passagem = 1;
prox_pass_ponto = NULL;
}
else{
prox_pass_ponto = prox_pass_ponto->prox_pass;
}
if(flag_passagem == 0){
printf("VOO NAO ENCONTRADO");
}
}
}
void excluir_voo(){
int z,count = 0;
voo * ini_voo_ponto;
voo * atual_voo_ponto;
voo * anterior_voo_ponto;
printf("Digite o voo a ser excluido");
scanf("%d",&z);
if(ini_voo_ponto->prox_voo==NULL){
printf("Nao existe voos cadastrados");
}
else{
anterior_voo_ponto=ini_voo_ponto;
for(atual_voo_ponto=ini_voo_ponto->prox_voo; atual_voo_ponto!=NULL; atual_voo_ponto=atual_voo_ponto->prox_voo){
if(z==atual_voo_ponto->n_voo){
anterior_voo_ponto->prox_voo = atual_voo_ponto->prox_voo;
free(atual_voo_ponto);
count=1;
printf("Dados Deletados com Sucesso: ");
}
if(count==1){
break;
anterior_voo_ponto=atual_voo_ponto;
}
if(atual_voo_ponto->prox_voo==NULL && count==0){
printf("\nRegistro para exclusao nao encontrado!\n");
}
}
}
}
void menu(){
int pesq_voo,pesq_passagem,operacao;
printf("Bem Vindo ao Sistema de VOEBEM 1.0\n");
printf("\nDigite uma Opcao: \n\n01 - Inserir Voo\n02 - Buscar Voo\n03 - Exibir Voo\n04 - Deletar Voo\n05 - Inserir Passagem\n06 - Buscar Passagem\n07 - Exibir Passagem\n08 - Inserir Aviao\n09 - Exibir Aviao\n10 - Sair\n\n");
scanf("%d",&operacao);
system("cls");
switch(operacao){
while (operacao!=11){
case 1:
inserir_voo();
printf("Dados Inseridos com Sucesso");
getch();
system("cls");
menu();
case 2:
printf("Digite o Numero do Voo\n");
scanf("%d", &pesq_voo);
pesquisar_voo(pesq_voo);
getch();
system("cls");
menu();
case 3:
imprimir_voo();
getch();
system("cls");
menu();
case 4:
excluir_voo();
getch();
system("cls");
menu();
case 5:
inserir_passagem();
printf("Dados Inseridos com Sucesso");
getch();
system("cls");
menu();
case 6:
printf("Digite o Numero da Passagem\n");
scanf("%d", &pesq_passagem);
pesquisar_voo(pesq_passagem);
getch();
system("cls");
menu();
case 7:
imprimir_passagem();
getch();
system("cls");
menu();
case 8:
inserir_aviao();
printf("Dados Inseridos com Sucesso");
getch();
menu();
case 9:
imprimir_aviao();
getch();
menu();
case 10:
break;
system("PAUSE");
}
}
}
int main(int argc, char *argv[]) {
menu();
system ("pause");
return 0;
}Carregando comentários...