Ir ao conteúdo
  • Cadastre-se

C++ Projeto cadastro de produtos


Geraldojunio23

Posts recomendados

Galera beleza, to precisando de ajuda na elaboração de um trabalho. Meu projeto e um programa de cadastro de produtos, estou fazendo o registro dos mesmos em pilhas, preciso criar uma opção que faça busca destes produtos na pilha, por exemplo buscar pelo codigo do produto e ele exibir o registro completo do produto, criei uma opçaõ de ver a pilha completa mas tambem preciso da opção de busca pois é exigida no projeto. Alem disso esta tendo erros para salvar os dados em um arquivo txt, o programa roda normalmente mas sempre da que o arquivo não foi encontrado mesmo ja sendo criado e adicionado na mesma pasta. Se alguém puder solucionar este problemas para mim eu ficaria muito grato!

 

 

 

 

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <locale.h>

using namespace std;


typedef struct cadastro
{
    char produto[30];
    int codigo;
    int quant;
    char valor;
    
    struct cadastro *estoque;
} cadastro;

 cadastro *lista, *topo = NULL;

int i=0;
int n;

FILE *arquivo;

void inserir()
{     printf ("\n\n Quantos produtos deseja cadastrar?: ");
    scanf ("%d",&n);
    
      for (i=0; i<n; i++)
    {
        lista=(cadastro *) malloc (2*sizeof(cadastro));

        fflush(stdin);
        printf("\n\n    Produto: ");
        gets(lista->produto);
         printf("    Codigo: ");
        scanf("%d",&lista->codigo);
        printf("    Quantidade: ");
        scanf("%d",&lista->quant);
        printf("    Valor: R$");
        scanf("%f",&lista->valor);
        lista->estoque=NULL;
        if(topo==NULL) //pilha vazia?
        {
            topo=lista;
                }
        else
        {
            lista->estoque=topo;
            topo=lista;
        }
    }
   
}
void imprimir ()
{
     cadastro *tmp;
    tmp=topo;
    if (tmp==NULL)   //aqui ele testa p/ saber se a pilha está vazia
    {
        printf ("\n\n     PILHA VAZIA! INSIRA UM DADO E TENTE NOVAMENTE.\n");
    }
    else
    {
        while (tmp!=NULL)
        {
            printf("\n\n    Produto: %s\n", tmp->produto);
            printf("    Codigo: %d\n",tmp->codigo);
            printf("    Quantidade: %d\n",tmp->quant);
            printf("    Valor: R$%0.2f\n\n",tmp->valor);
            tmp=tmp->estoque;
        }

    }

}
void deletar ()
{
    char alerta;
    cadastro *del;
    del = topo;
    if (topo == NULL)
    {
        printf ("\n\n     Pilha vazia!\n");
    }
    else
    {
        printf("\n\n      Tem certeza que deseja excluir pilha? (S/N): ");
        scanf("%c",&alerta);
        //tolower
        if (alerta=='s')
        {
            topo = topo -> estoque;
            free(del);
            printf("\n      Pilha apagada! \n");
        }
        if (alerta=='n')
        {
            printf("\n      Pilha apagada! \n");
        }
        if (alerta!='s' && alerta!='n')
        {
            printf("\n\n      Opcao invalida\n");
        }
    }

}
void buscar()
{
    // ?????
}

void backup ()
{
    FILE *arquivo;
    cadastro *tmp;
    tmp = topo;
      arquivo=fopen("estoque.txt","wb");
      
      if(arquivo==NULL)
      {printf("\n Erro na abertura do arquivo \n");
      }else{
      
      if(tmp==NULL)
      {printf("\n Erro ao salvar pois a pilha esta vazia \n");
      }
      while (tmp!=NULL)
    {
        fprintf(arquivo,"\n\n Produto: %s \n",tmp->produto);
        fprintf(arquivo,"     Codigo: %d \n",tmp->codigo);
        fprintf(arquivo,"     Quantidade: %d \n",tmp->quant);
        fprintf(arquivo,"     Valor: %f ",tmp->valor);
        tmp=tmp->estoque;
    }

    fclose(arquivo);
    printf("\n\n    ARQUIVO SALVO COM SUCESSO!\n");
}
}

int main ()
{
    char op_menu=0, op_menu_interno=0; 

    do
    {//Menu
            printf("\n\t____________________\n\n\tREGISTRO DE PRODUTOS\n\t____________________\n\n\n");
            printf("\t1 - Cadastro\n");
            printf("\t2 - Ver cadastros\n");
            printf("\t3 - Excluir cadastro\n");
            printf("\t4 - Buscar produto\n");
            printf("\t5 - Copiar (Backup)\n");
            printf("\t6 - Sair\n\n");
            printf("\tInforme a opcao desejada: ");
            scanf("%d",&op_menu );
        op_menu=tolower(op_menu);
        fflush(stdin); 
        switch(op_menu)
        {
        case 1  :
            fflush(stdin);
            system("cls"); //limpa a tela
            inserir();
            printf("\n");
            do
            {
                printf("    0 - Menu principal: ");
                scanf("%s",&op_menu_interno);
            }
            while (op_menu_interno!='0');
            system("cls");
            break;
            fflush(stdin);
        case 2:
            system("cls");
            imprimir();
            printf("\n");
            do
            {
                printf("    0 - Menu principal: ");
                scanf("%s",&op_menu_interno);
            }
            while (op_menu_interno!='0');
            system("cls");
            break;


        case 3:
            fflush(stdin);
            system("cls");
            deletar();
            printf("\n");
            do
            {
                printf("    0 - Menu principal: ");
                scanf("%s",&op_menu_interno);
            }
            while (op_menu_interno!='0');
            system("cls");
            break;
            
            case 4: // buscar
            
            
            case 5:
            fflush(stdin);
            system("cls");
            backup();
            printf("\n");
            do
            {
                printf("    0 - Menu principal: ");
                scanf("%s",&op_menu_interno);
            }
            while (op_menu_interno!='0');
            system("cls");
            break;
       
        case 6:
            system("cls");
            printf("\n");
            printf("Finalizando programa...");
            printf("\n");
            exit(0);
            break;
        default:
            system("cls");
            printf("Codigo invalido! Digite novamente");
            break;
        }

    }
    while (op_menu!=7);
    return (0);

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Geraldojunio23 Opa colega, isso não é C++ :)

E não vai dar certo se você copiar o código de outro tópico no qual o autor também estava com problemas...

Talvez devesse começar por baixo, sabe o que é uma pilha?

Recomendo C : Como Programar, de Deitel, Paul, Deitel, Harvey.

Capítulo 12 seção 5: Pilhas. Tem um exemplo inclusive :D

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!