Ir ao conteúdo
  • Cadastre-se

Problema em fazer funcao retorna


Glestman

Posts recomendados

Boa tarde galera!

 

E o seguinte para minimizar as linhas de codigos de meu programa , utilizei uma funcao para verifica se a quantidade de aeroportos e menor que 10 ou se a lista esta vazia, mas estou com muita dificuldade de , apos a funcao verifica esta condicao retorna para o Case correspondente.

 

OBs: esta dando erro na compilacao

 

Segue abaixo o codigo

 

#include <sys/time.h>
#include <stdlib.h>
#include <stdio.h>
#define MAX 10


using namespace std;

typedef struct TipoCelula *TipoApontador;

typedef struct TipoCelula
{
    char cidade[30];
    int codigo, Cod_Orig, Cod_Dest;
    TipoApontador Prox;
}TipoCelula;

typedef struct 
{
    TipoApontador Primeiro, Ultimo;
} TipoLista;

bool Vazia(TipoLista lista)
{
    return (lista.Primeiro == lista.Ultimo);
}

void FLVazia(TipoLista *lista)
{
    lista->Ultimo = (TipoApontador) malloc (sizeof(TipoCelula));
    lista->Ultimo = lista->Primeiro;
    lista->Ultimo->Prox = NULL;
}

void Cad_Aero(TipoCelula *Celula)
{
    TipoApontador p;
    
}


/* ========================================================================== */

    
        system('cls');
        switch (opcao) 
        {
        
        
            case 1 :
                { 
                    int cont=0,indice;
                    TipoCelula cidade,codigo;
                    checar_info();
                        
                            printf("Digite nome da  cidade :);
                            scanf("%s", &cidade);                        
                      do
                        {
                            cont=cont+1;
                            indice=cont;
                        }while(cont<=10)
                            srand((unsigned)time(NULL));
                            codigo=rand()%1 + 300;
                }
                break;
                case 2 : //Cadastrar Võo
                    {
                        checar_info();
                            printf("Informe o codigo de origem")
                            scanf("%d",Cod_Orig)
                        checar_voo();
                        system("cls");
                            printf("Informe o codigo de destino")
                            scanf("%d",Cod_Dest)
                        checar_voo();
                        break;
                    }
                
                case 3 :  //Remover Voo
                    {
                        checar_info();
                          else
                          {
                            ptr = TipoCelula;
                            TipoCelula = inicio ->prox;
                            free(ptr);
                            return 1;
                          }
                    }
                break;
           
                case 4 :    
                break;
                case 5 :    
                break;
                case 6 :
                break;
            
    }

checar_info()
    {
        if(TipoCelula<=10 || TipoCelula>0)
            {
                return 1;    
            }
    }
    
checar_voo()
    {
        if(Cod_Orig=codigo || Cod_Dest=codigo)
            {
                printf("Voo encontrado");
                system("cls");
                return 1;   
            }
        else if(Cod_Orig!=codigo || Cod_Dest!=codigo)
            {
                printf("Voo nao existe, digite novamente o codigo");
                scanf("%d")
            }

int menu()
{
 
int opcao,TipoLista=10;;
        printf(
            "\t\t\t#########################################\n"
            "\t\t\t#      SISTEMA DE CONTROLE AEREO        #\n"    
            "\t\t\t#########################################\n"
            "\t\t\t#_   1 . Cadastrar Aeroporto              _#\n"            
            "\t\t\t#_   2 . Cadastrar Vôo      _#\n"         
            "\t\t\t#_   3 . Remover Voo               _#\n"
            "\t\t\t#_   4 . Imprimir Võos           _#\n"
            "\t\t\t#_   5 . Imprime Tudo  _#\n"
            "\t\t\t#_   6 . Procura Vôo           _#\n"
            "\t\t\t#_   7 . Sair do programa              _#\n"    
            "\t\t\t#########################################\n"
            );
    scanf("%d", &opcao);
    return opcao;
}

Link para o comentário
Compartilhar em outros sites

@Glestman Percebi que você está meio perdido. fica difícil te ajudar com esse código confuso. sobre as funções, o correto seria algo do tipo:

 


checar_info() {
  if(TipoCelula.codigo <= 10 || TipoCelula.codigo > 0) {
    return 1;
  }
}

checar_voo() {
  if(TipoCelula.Cod_Orig == codigo || TipoCelula.Cod_Dest == codigo) {
    printf("Voo encontrado");
    system("cls");
    return 1;
  } else if(TipoCelula.Cod_Orig != codigo || TipoCelula.Cod_Dest != codigo) {
    printf("Voo nao existe, digite novamente o codigo");
    scanf("%d")
  }
}

Ainda sim isso não deve dar certo, mas em teoria é isso, sua variável do tipo struct+ponto+variável interna da struct.

 

Como você usa listas, creio que isso seja mais complexo ainda. algo do tipo lista->TipoCelula.codigo;

 

Enfim, recomendo que faça seu programa em partes. 1 função por vez, vai testando e depois construindo as outras funções. Isso evita essa confusão toda. Sinceramente até eu estou confuso.

Se tiver dificuldades com struct, assista as aulas 35~38 desse link: https://programacaodescomplicada.wordpress.com/indice/linguagem-c/ 

 

Se tiver dificuldades com Listas, nesse link tem bastante coisa: https://programacaodescomplicada.wordpress.com/indice/estrutura-de-dados/

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...