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

Arquivos em linguagem C, Projeto peças(cadastro, alteração, consulta e vendas)


AmandaEstella

Pergunta

Ola, alguém 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 também. 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 onde foi feito e anexar de imagem o que é pedido, se alguém 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;

ARQUIVO * 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 peça");
      printf ("\ n 2 - Consultar pecas");
      printf ("\ n 3 - Alteração de peças");
      printf ("\ n 4 - Vendas");
      printf ("\ n 5 - Exclusão Lógica");
      printf ("\ n 6 - Exclusão física");
      printf ("\ n 7 - Ordenação pelo nome");
      printf ("\ n 8 - Busca Binaria");
      printf ("\ n 9 - Sair");
      printf ("\ n Opcao:");
      opc = getche ();
      switch (opc)
        {
            case '1': cadastro ();
                       pausa;
            caso '2': consulta ();
                       pausa;
            caso '3': alteracao ();
                       pausa;
            caso '4': vendas ();
                       pausa;
            caso '5': exclusao_logica ();
                       pausa;
            caso '6': exclusao_fisica ();
                       pausa;
            caso '7': ordenação ();
                       pausa;
            case '8': busca_binaria ();
                       pausa;
            case '9': printf ("\ n \ nSaindo ... \ n");
                       pausa;
            padrão: printf ("\ n Opcao% c invalida", opc);
                       getch ();
                       pausa;

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

/ ************************************************* ********************** /
void cadastro ()
  {char op;
    if ((fptr = fopen ("pecas.dados", "rb +")) == NULL)
        {if ((fptr = fopen ("pecas.dados", "wb")) == NULL)
            {printf ("\ n Erro ");
                saída (1);
            }
        }
    do
    {
        printf ("\ n Entre com os dados para o cadastro de peças \ n");
        printf ("\ n Nome:");
        setbuf (stdin, NULL);
        scanf ("% [^ \ n]", f.nome);
        printf ("\ n Codigo:");
        scanf ("% d", & f.codigo);
        printf ("\ n 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");
                saída (1);
            }
        printf ("\ n Consulta de todos como partes \ n");

        while (fread (& f, sizeof (f), 1, fptr))
        {if (fe == 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);
  }

  / ************************************************* ************************************* /
 alteração nula ()
  {char nome [34];
      if ((fptr = fopen ("pecas.dados", "rb +")) == NULL)
            {printf ("\ n Erro");
                saída (1);
            }
        printf ("\ n Entre com o nome da ervilha alterado no valor \ n");
        setbuf (stdin, NULL);
        scanf ("% [^ \ n]", nome);

        Enquanto (fread (& f, sizeof (f), 1, fptr))
        {if (strcmp (f.nome, nome) == 0)
             if (fe == 0)
               {fseek (fptr, ftell (fptr) -sizeof ( f) 0); // fseek (fptr, -sizeof (fptr), 1);
                printf ("\ nNovo Valor");
                scanf ("% f", & f.valor);
                fwrite (& f, tamanhoof (f), 1, fptr);
                fseek (fptr, 0,2);
               }
        }
        Fclose (fptr);
  }
  / ************************************************** ****** /
  void vendas ()
  {int codigovendas, quant;
    {if ((fptr = fopen ("pecas.dados", "rb")) == NULL)
            {printf ("\ n Erro");
                saída (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 serão 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 [34 ];
      if ((fptr = fopen ("pecas.dados", "rb +")) == NULL)
            {printf ("\ n Erro");
                saída (1);
            }
        printf ("\ n Entre com o nome da peça excluído logicamente \ n");
        setbuf (stdin, NULL);
        scanf ("% [^ \ n]", nome);

        Enquanto (fread (& f, sizeof (f), 1, fptr))
        {if (strcmp (f.nome, nome) == 0)
             if (fe == 0)
               {
                fseek (fptr, ftell (fptr) -sizeof ( f) 0);
                fe = 1;
                fwrite (& f, tamanho de (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

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...