Ir para conteúdo
Fórum Script Brasil

Eduardo Felipe

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Eduardo Felipe postou

  1. Estou tentando desenvolver um algoritmo de uma LOJA de CD's utilizando LSE, o codigo consegue compilar porém quando eu executo e tento acessar a função cadastrar ou remover ele dá erro e feche o executavel. Já testei em vários compiladores e o erro continua, segue o código abaix #include <stdio.h> #include <stdlib.h> //Estrutura que sera utilizada para realizar o cadastros de Mercadorias; struct cadastro { int cod; char cantor[60]; char nomecd[60]; int qntd; int anofab; float precovenda; char produtora[60]; cadastro* prox; }Cadastro; //ASSINATURA DAS FUNÇÕES //FUNÇÃO CADASTRO void cadastrar(cadastro *inicio, cadastro *fim); //FUNÇÃO VENDA void vender (cadastro *inicio, cadastro *fim); //FUNÇÃO REMOVER void remover (cadastro *inicio, cadastro *fim); //FUNÇÃO PESQUISAR - LISTAR (ARVORE BINARIA DE BUSCA) //BLOCO PRINCIPAL DO CÓDIGO main (){ int op = 0; cadastro* inicio; cadastro* fim; //MENU PRINCIPAL while ( op != 5 ) { printf("\t\t|--------->BEM VINDO A MUSIC STORE<-----------|"); printf("\n_______________________________________________________________________________\n\n"); printf("\t\t\t|---------->MENU<----------|"); printf("\n\t\t\t|__________________________|\n"); printf("\t\t\t| 1 - CADASTRAR |\n"); printf("\t\t\t| 2 - VENDER |\n"); printf("\t\t\t| 3 - PESQUISAR |\n"); printf("\t\t\t| 4 - EXCLUIR |\n"); printf("\t\t\t| 5 - SAIR DO PROGRAMA |\n"); printf("\t\t\t|__________________________|\n"); printf("\t\t\t\n\t\t\t Agora, entre com sua opcao: \a"); scanf ("%d",&op); system ("cls"); switch ( op ){ // CADASTRAR case 1:{ printf("\t\t|--------->CADASTRO DE PRODUTOS<-----------|"); printf("\n_______________________________________________________________________________\n\n"); cadastrar (inicio, fim); } // VENDER case 2:{ printf("\t\t|--------->VENDA DE PRODUTOS<-----------|"); printf("\n_______________________________________________________________________________\n\n"); vender (inicio, fim); } //PESQUISAR case 3:{ break; } //EXCLUIR case 4:{ printf("\t\t|--------->REMOÇÃO DE PRODUTOS<-----------|"); printf("\n_______________________________________________________________________________\n\n"); remover (inicio, fim); } //SAIR DO PROGRAMA case 5:{ printf("\n\t A MUSIC STORE AGRADECE!\n\n"); getchar(); // ESPERA O USUARIO PRESSIONAR ALGUMA TECLA PARA CONTINUAR A EXECUÇÃO DO CÓDIGO break; } //OUTROS NUMEROS DIGITADOS default : printf("Opcao Invalida!"); break; }// FIM MENU } // FIM ESTRUTURA DE REPETIÇÃO system ("pause"); }//FIM DO CÓDIGO PRINCIPAL // PROCEDIMENTO DE CADASTRO void cadastrar (cadastro *inicio, cadastro *fim){ cadastro *novo; novo = (cadastro *) malloc (sizeof (cadastro)); if (inicio == NULL){ inicio = novo; fim = novo; } else { fim -> prox = novo; fim = novo; } fim -> prox = NULL; printf ("\nCodigo do Produto (Digite Apenas Números)\n"); scanf ("%d",&novo->cod); fflush (stdin); printf("\nProdutora:\n"); gets(novo->produtora); fflush (stdin); // LIMPA O REGISTRO DAS TECLAS DIGITAS PELO O USUÁRIO NO SISTEMA printf("\nNome do CD:\n"); gets(novo->nomecd); fflush (stdin); printf("\nNome do cantor[a] ou banda:\n"); gets(novo->cantor); fflush (stdin); printf("\nAno de Fabricacao:\n"); scanf("%d",&novo->anofab); fflush (stdin); printf("\nPreco de Venda:\n"); scanf("%f", &novo->precovenda ); fflush (stdin); printf ("\nQuantidade de CDs Comprados:\n"); scanf ("%d",&novo->qntd); fflush (stdin); printf("\nCadastro Realizado com Sucesso!\n\n"); system ("pause"); system("cls"); } // FIM DO CADASTRO //REMOVER void remover (cadastro *inicio, cadastro *fim){ cadastro *aux; cadastro *ant; aux = inicio; ant = inicio; int busca; printf ("DIGITE O CODIGO DO PRODUTO:\n"); scanf ("%d",&busca); fflush (stdin); while (aux != NULL){ if (aux->cod == busca){ if (aux == inicio && aux == fim){ inicio = NULL; fim = NULL; free (aux); break; } else if (aux == inicio) { inicio = aux ->prox; free (aux); break; } else if (aux == fim) { fim = ant; free (aux); break; } else { ant -> prox = aux -> prox; free (aux); } }// FIM ESTRUTURA CONDICIONAL ant = aux; aux = aux -> prox; }//FIM ESTRUTURA DE REPETIÇÃO }//FIM DO PROCEDIMENTO DE REMOVER //PROCEDIMENTO DE VENDA void vender (cadastro *inicio, cadastro *fim){ cadastro *aux; aux = inicio; int busca; printf ("DIGITE O CÓDIGO DO PRODUTO:\n"); scanf ("%d",busca); fflush (stdin); while (aux -> prox != NULL){ if (aux->cod == busca){ aux -> qntd = aux -> qntd - 1; break; } else { aux = aux -> prox; } } }
×
×
  • Criar Novo...