Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida em programa de c++


thunder

Pergunta

Boa tarde a todos,

Gostaria de recolher informações para um programa que estou fazendo, na verdade um programa de uma livraria...está quase pronto. o programa lê os livros inserido, isere mais livros e remove os livros a partir de seu codigo inscrito...o problema que estou encontrando é na parte de remover os livros...não sei porque quando tento remover o compilador c++ builder trava do nada....se puderem dar sugestoes agradeço.

Peço desculpas mas terei que colocar o código inteiro para ficar entendivel.

Agradeço desde já qualquer sugestão.

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

struct livro{

struct livro *prox;

int codigo;

char nome [50];

char autor [50];

char genero [50];

int ano;

float preço;

};

void insere_lista(struct livro **inicio);

int menu();

void consulta(struct livro *lista);

void remove_lista(struct livro **endlista,struct livro *lista);

int main(){

struct livro *inicio=NULL;

int opcao=0, pos;

char elem;

while (opcao!=4){

opcao=menu();

switch (opcao){

case 1:

insere_lista(&inicio);

break;

case 2:

consulta(inicio);

system("pause>null");

break;

case 3:

remove_lista(&inicio, inicio);

printf("\n Elemento Removido: %s\n",elem);

system("pause>null");

break;

case 4: exit(1);

}

}

}

int menu(){

int op;

system("cls");

printf("========================================\n");

printf("= Sistema de Gerenciamento de Livraria =\n");

printf("========================================\n");

printf("\nOpcoes:\n");

printf("\n 1. Inserir novo livro");

printf("\n 2. Consultar livros");

printf("\n 3. Excluir livro");

printf("\n 4. Sair\n");

printf("\n Informe a opcao desejada: ");

scanf("%d",&op);

return op;

}

void insere_lista(struct livro **inicio){

struct livro *novo;

novo = (struct livro*) malloc(sizeof(struct livro));

system("cls");

printf("==================================\n");

printf("= 1. Inserir novo livro =\n");

printf("==================================\n");

fflush(stdin);

printf("\nInforme o codigo do livro: ");

scanf("%d", &novo->codigo);

fflush(stdin);

printf("Informe o nome do livro: ");

gets(novo->nome);

fflush(stdin);

printf("Informe o autor do livro: ");

gets(novo->autor);

fflush(stdin);

printf("Informe o genero do livro: ");

gets(novo->genero);

printf("Informe o ano do livro: ");

scanf("%i", &novo->ano);

printf("Informe o preço do livro: ");

scanf("%f", &novo->preço);

if ( (*inicio) == NULL ){

(*inicio) = novo;

(*inicio)->prox = NULL;

} else {

novo->prox = (*inicio);

(*inicio) = novo;

}

}

void consulta(struct livro *lista){

printf("\n Imprimindo a Lista Singularmente Encadeada \n");

int i = 1;

while(lista != NULL) {

printf("\n=====================================");

printf("\nCodigo do Livro: %d", lista->codigo);

printf("\nNome: %s", lista->nome);

printf("\nAutor: %s", lista->autor);

printf("\nGenero: %s", lista->genero);

printf("\nAno: %i", lista->ano);

printf("\nPreço: %f", lista->preço);

printf("\n=====================================");

lista=lista->prox;

i++;

}

}

void remove_lista(struct livro **endlista,struct livro *lista){

struct livro *aux = lista;

int num;

fflush(stdin);

printf("\nInforme o codigo do livro a ser excluido: \n");

scanf("%d",&num);

while (lista->prox!=NULL){

if (lista->codigo==num){

aux->prox=lista->prox;

free(lista);

}else{

aux=lista;

lista=lista->prox;

}}} // fecha else } // fecha while } // fecha remove

A parte do remove aqui no final não funciona...não sei porque.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...