Ir para conteúdo

Arquivo em C


Amanda Estella

Posts Recomendados

Ola, alguem poderia me ajudar? Tenho que fazer um projeto onde basicamente teria que criar um arquivo em C++ para cadastro/alteração de peças, e vendas tbm. Mas estou travada na parte da venda. Basicamente era pra por o codigo da peca e a quantidade e ela dar baixa no estoque da peça que tinha cadastrado anteriormente mas não vai. Vou por a baixo ate aonde foi feito e anexar de imagem oq é pedido, se alguem puder me ajuda em ficaria muito agradecida.

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

struct pecas
 {
     char nome[34];
     int codigo;
     float valor;
     int e;
     int quantidade;
 } f;

FILE *fptr;

 void cadastro();
 void consulta();
 void alteracao();
 void vendas();
 void exclusao_logica();
 void exclusao_fisica();
 void ordenacao();
 void busca_binaria();

int main()
{
  char opc;

  do
  {   system("cls");
      printf("\n  1 - Cadastro de peca");
      printf("\n  2 - Consultar pecas");
      printf("\n  3 - Alteracao de pecas");
      printf("\n  4 - Vendas");
      printf("\n  5 - Exclusao Logica");
      printf("\n  6 - Exclusao Fisica");
      printf("\n  7 - Ordenacao pelo nome");
      printf("\n  8 - Busca Binaria");
      printf("\n  9 - Sair ");
      printf("\n Opcao: ");
      opc=getche();
      switch (opc)
        {
            case '1':  cadastro();
                       break;
            case '2':  consulta();
                       break;
            case '3':  alteracao();
                       break;
            case '4': vendas();
                       break;
            case '5':  exclusao_logica();
                       break;
            case '6':  exclusao_fisica();
                       break;
            case '7':  ordenacao();
                       break;
            case '8':  busca_binaria();
                       break;
            case '9':  printf("\n\nSaindo...\n");
                       break;
            default :  printf("\n Opcao %c invalida", opc);
                       getch();
                       break;
        }

  } while (opc!='9');
return 0;
}

/***********************************************************************/
void cadastro()
  { char op;
    if ((fptr=fopen("pecas.dados", "rb+"))==NULL)
        {if ((fptr=fopen("pecas.dados", "wb"))==NULL)
            {   printf("\n Erro");
                exit(1);
            }
        }
    do
    {
        printf("\n Entre com os dados para o cadastro de pecas \n");
        printf("\n Nome: ");
        setbuf(stdin, NULL);
        scanf("%[^\n]",f.nome);
        printf("\n Codigo: ");
        scanf("%d",&f.codigo);
        printf("\n Valor: ");
        scanf("%f", &f.valor);
        printf("\n Quantidade: ");
        scanf("%d", &f.quantidade);
        f.e=0;
        fseek(fptr,0,2);
        fwrite(&f,sizeof(f),1,fptr);
        printf("\n Deseja cadastrar outro (S/N): ");
        op=getche();

    } while ((op!= 'N') && (op!='n')); ((op=='S')||(op=='s'));
    fclose(fptr);
  }

  /**************************************************************************************/
 void consulta()
  { if ((fptr=fopen("pecas.dados", "rb"))==NULL)
            {   printf("\n Erro");
                exit(1);
            }
        printf("\n Consulta de todos as pecas \n");

        while (fread(&f,sizeof(f),1,fptr))
        { if (f.e==0)
               {printf("\n\n Nome: %s", f.nome);
                printf("\n Codigo: %d", f.codigo);
                printf("\n Valor: %.2f",f.valor);
                printf("\n Quantidade: %d",f.quantidade);
               }
        }
        getch();
        fclose(fptr);
  }

  /**************************************************************************************/
 void alteracao()
  { char nome[40];
      if ((fptr=fopen("pecas.dados", "rb+"))==NULL)
            {   printf("\n Erro");
                exit(1);
            }
        printf("\n Entre com o nome da pea a ser alterado o valor\n");
        setbuf(stdin, NULL);
        scanf("%[^\n]",nome);

        while (fread(&f,sizeof(f),1,fptr))
        { if (strcmp(f.nome,nome)==0)
             if (f.e==0)
               {fseek(fptr,ftell(fptr)-sizeof(f),0); // fseek(fptr,-sizeof(fptr),1);
                printf("\nNovo Valor ");
                scanf("%f",&f.valor);
                fwrite(&f,sizeof(f),1,fptr);
                fseek(fptr,0,2);
               }
        }
        fclose(fptr);
  }
  /******************************************************/
  void vendas()
  { int codigovendas, quant;
    { if ((fptr=fopen("pecas.dados", "rb"))==NULL)
            {   printf("\n Erro");
                exit(1);
            }
        }
             printf("\n Vendas de pecas cadastradas \n");
             printf("\n Digite o nome da peca que vai ser vendida \n");
             scanf("%d", &codigovendas);
             printf("\n Digite a quantidade de pecas que seram vendidas");
             scanf("%d", quant);


               if(codigovendas == f.codigo){
                printf("\n venda concluida");
                f.quantidade = f.quantidade-quant;
               }
               else
               printf("\n codigo n cadastrado");

        getch();
        fclose(fptr);

  }

  /**************************************************************************************/
 void exclusao_logica()
  { char nome[40];
      if ((fptr=fopen("pecas.dados", "rb+"))==NULL)
            {   printf("\n Erro");
                exit(1);
            }
        printf("\n Entre com o nome da peca a ser excluida logicamente\n");
        setbuf(stdin, NULL);
        scanf("%[^\n]",nome);

        while (fread(&f,sizeof(f),1,fptr))
        { if (strcmp(f.nome,nome)==0)
             if (f.e==0)
               {
                fseek(fptr,ftell(fptr)-sizeof(f),0);
                f.e=1;
                fwrite(&f,sizeof(f),1,fptr);
                fseek(fptr,0,2);
               }
        }
        getch();
        fclose(fptr);

  }


  /**************************************************************************************/
 void exclusao_fisica()
  {

  }


  /**************************************************************************************/
 void ordenacao()
  {

  }

  /**************************************************************************************/
 void busca_binaria()
  {

  }
 

a.png

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...