Jump to content
Amanda Estella

Arquivo em C

 Read 4 minutes

Recommended Posts

 Read 4 minutes

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...