Ir ao conteúdo
  • Cadastre-se

Christiano Bremm

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

posts postados por Christiano Bremm

  1. Ao Inserir a mercadoria, programa acusa que ja existe. Não estou achando o problema, alguém consegue?

     

    -----------------------------------------------------------------------------------------------------------------

     


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

    struct loja
    {
        int cod;
        char fornecedor[20];
        float val_forn;
    };

    struct Comp_forn
    {
        int cod;
        int cod_prod;
        char nome_prod[20];
        float val_unit;
        int quantidade;
    };
    int VerifForn(FILE *arq, char arquivo[100],int cod);

    void inserir (FILE *arq, char arquivo[100],int alt);
    void verificarF(FILE *arq,char arquivo[100]);
    void consultar (FILE *arq, char arquivo[100], int alt);
    void apagar(FILE *arq, char arquivo[100], int alt);
    void alterar(FILE *arq, char arquivo[100], int alt);


    int main()
    {   int    A;
        int  B;

        char C;
        char   fornecedor_arq[100] = "fornecedores.txt";
        char   compra_arq[100]      = "compras.txt";

        struct loja fornec;
        struct Comp_forn compras;

        FILE   *arquivo_fornecedor, *arquivo_compras;

        verificarF(arquivo_fornecedor, fornecedor_arq);
        verificarF(arquivo_compras, compra_arq);

        do{
            system("cls");
            printf("=======LOJA DE CHOCOLATE======= \n");
            printf("(1) - INSERIR informações\n");
            printf("(2) - MODIFICAR informações\n");
            printf("(3) - CONSULTAR informações\n");
            printf("(4) - APAGAR informações \n");
            printf("(0) - SAIR\n\n");
            printf("OPCAO DESEJADA : ");
            fflush(stdin);
            C=tolower(getchar());
            system("cls");
            switch (C) {
                case 49:
                    printf("==INSERIR==\n");
                    printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: ");
                    scanf("%i",&A);
                    while(A==1 || A==2){
                        if (A==1)
                            inserir(arquivo_fornecedor, fornecedor_arq,A);
                        else
                            inserir(arquivo_compras, compra_arq,A);

    system("cls");
                        printf("==INSERIR==\n");
                        printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: ");
                        scanf("%i",&A);
                    }
                    break;
                case 51:
                    printf("==CONSULTAR==\n");
                    printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: ");
                    scanf("%d",&A);
                    while(A==1 || A==2){
                        if (A == 1)
                            consultar(arquivo_fornecedor, fornecedor_arq,A);
                        else
                            consultar(arquivo_compras, compra_arq,A);

    system("cls");
                        printf("==CONSULTAR==\n");
                        printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: ");
                        scanf("%d",&A);
                    }
                    break;
                case 50:
                    printf("==MODIFICAR==\n");
                    printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: ");
                    scanf("%d",&A);
                    while(A==1 || A==2){
                        if (A == 1)
                            alterar(arquivo_fornecedor, fornecedor_arq,A);
                        else
                            alterar(arquivo_compras, compra_arq,A);

    system("cls");
                        printf("==MODIFICAR==\n");
                        printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: ");
                        scanf("%d",&A);
                    }
                    break;
                case 52:
                    printf("==APAGAR==\n");
                    printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: ");
                    scanf("%d",&A);
                    while(A==1 || A==2){
                        if (A == 1)
                            APAGAR(arquivo_fornecedor, fornecedor_arq,A);
                        else
                            APAGAR(arquivo_compras, compra_arq,A);

    system("cls");
                        printf("==APAGAR==\n");
                        printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: ");
                        scanf("%d",&A);
                    }
                    break;
                case 48:
                    exit(1);
                default:
                    printf("==OPCAO INVALIDA==\n");
                    getch();
                    break;

            }
        } while (C != 48);

        return 0;
    }


    void verificarF(FILE *arq, char arquivo[100]){
        arq = fopen(arquivo, "rb+");
        if(arq == NULL){
            arq = fopen(arquivo,"wb+");
            if(arq == NULL){
                printf("==ARQUIVO COM PROBLEMA NA CRIACAO OU ABERTURA==\n");
                exit(1);
            }
        }
    }


    void inserir(FILE *arq, char arquivo[100],int alt)
    {
        arq = fopen(arquivo, "rb+");
        char XYZ[25];
        int  iXYZ;

        if (alt == 1){

            struct loja sXYZ;

            printf("INSIRA O CODIGO DO FORNECEDOR:\n");
            fflush(stdin);
            gets(XYZ);
            iXYZ = VerifForn(arq, arquivo,atoi(XYZ));
            while(iXYZ==1){
                printf("==JA CRIADO==\n");
                printf("INSIRA O CODIGO DO FORNECEDOR: ");
                gets(XYZ);
                iXYZ = VerifForn(arq, arquivo,XYZ);
                fflush(stdin);

            }
            sXYZ.cod = atoi(XYZ);
            printf("INSIRA O NOME DO FORNECEDOR: \n");
            gets(sXYZ.fornecedor);
            fflush(stdin);
            sXYZ.val_forn=0;
            fseek(arq,0,SEEK_END);
            fwrite(&sXYZ, sizeof(struct loja), 1, arq);
        }
        else{
            struct Comp_forn sXYZ;
            printf("INSIRA O CODIGO DO FORNECEDOR: \n");
            fflush(stdin);
            gets(XYZ);

            iXYZ = VerifForn(arq, arquivo,XYZ);
            while(iXYZ==0){
                printf("==JA CRIADO==\n");
                printf("INSIRA O CODIGO DO FORNECEDOR:\n");
                fflush(stdin);
                gets(XYZ);
                iXYZ = VerifForn(arq, arquivo,XYZ);
            }

            sXYZ.cod=atoi(XYZ);
            fflush(stdin);
            printf("INSIRA O CODIGO DO PRODUTO: \n");
            gets(XYZ);
            sXYZ.cod_prod = atoi(XYZ);
            fflush(stdin);
            printf("INSIRA O NOME DO PRODUTO: \n");
            gets(sXYZ.nome_prod);
            fflush(stdin);
            printf("INSIRA O PRECO DO PRODUTO:\n");
            scanf("%.2f", &sXYZ.val_unit);
            fflush(stdin);
            printf("INSIRA A QUANTIDADE COMPRADA DO PRODUTO: \n");
            scanf("%i", &sXYZ.quantidade);
            fflush(stdin);

            fseek(arq,0,SEEK_END);
            fwrite(&sXYZ,sizeof(struct Comp_forn),1, arq);
        }

        fclose(arq);
        printf("REGISTRO EXECUTADO! PRESSIONE ENTER PARA PROSSEGUIR\n");
        getch();
        system("cls");
    }

    void consultar (FILE *arq, char arquivo[100], int alt)
    {


        if (alt == 1){
            struct loja fornecedor;
            int cod, ok = 0;
            char XYZ[25];

            fflush(stdin);
            arq = fopen(arquivo, "rb+");

            printf("INSIRA O CODIGO DO FORNECEDOR\n");
            fflush(stdin);
            gets(XYZ);
            cod = atoi(XYZ);

            rewind(arq);
            while(!feof(arq) && ok==0){

                fread(&fornecedor, sizeof(struct loja), 1, arq);

                if(fornecedor.cod == cod) {
                     printf("NOME DO FORNECEDOR: %s\n", fornecedor.fornecedor);
                     ok = 1;
                }
            }

            if (ok == 0){
                printf("NADA ENCONTRADO!\n");
            }

        } else {


            struct Comp_forn compras;
            int cod, ok = 0;
            char XYZ[25];
            fflush(stdin);
            arq = fopen(arquivo, "rb+");
            printf("INFORME O CODIGO DO PRODUTO: \n");
            fflush(stdin);
            gets(XYZ);
            cod = atoi(XYZ);
            rewind(arq);
            while(!feof(arq) && ok==0){

                fread(&compras, sizeof(struct Comp_forn), 1, arq);

                if(compras.cod_prod == cod) {
                     printf("CODIGO DO FORNECEDOR: %i \n", compras.cod);
                     printf("CODIGO DO PRODUTO: %i \n", compras.cod_prod);
                     printf("NOME DO PRODUTO: %s \n", compras.nome_prod);
                     printf("QUANTIDADE COMPRADA: %i \n", compras.quantidade);
                     printf("VALOR (und): %.2f \n", compras.val_unit);
                     ok = 1;
                }
            }

            if (ok == 0){
                printf("NADA ENCONTRADO\n");
            }

        }

         fclose(arq);
         printf("PRESSIONE ENTER\n");
         getch();
    }

    void APAGAR(FILE *arq, char arquivo[100], int alt)
    {


        if (alt == 1){
            struct loja fornecedor;
            int cod, ok = 0, stop = -1;
            char XYZ[25];
            fflush(stdin);
            arq = fopen(arquivo, "rb+");
            printf("INFORME O CODIGO DO FORNECEDOR: \n");
            fflush(stdin);
            gets(XYZ);
            cod = atoi(XYZ);
            rewind(arq);
            while(!feof(arq) && ok == 0){
                stop++;
                fread(&fornecedor, sizeof(struct loja), 1, arq);

                if(fornecedor.cod == cod) {
                     printf("NOME DO FORNECEDOR: %s \n", fornecedor.fornecedor);
                     ok = 1;
                }
            }

            if (ok != 0){

                int escolha;
                printf("DESEJA APAGAR FORNECEDOR? %s (SIM = 1, NAO = 0)?", fornecedor.fornecedor);
                fflush(stdin);
                scanf("%i", &escolha);

                if (escolha == 1){
                    fornecedor.cod = 999;
                    fseek(arq, sizeof(struct loja) *stop, SEEK_SET);
                    fwrite(&fornecedor,sizeof(struct loja),1, arq);
                    printf("==REGISTRO APAGADO==\n");
                }
            } else {
                printf("==NADA ENCONTRADO==\n");
            }
        } else {


            struct Comp_forn compras;
            int cod, ok = 0, stop = -1;
            char XYZ[25];

            fflush(stdin);
            arq = fopen(arquivo, "rb+");
            printf("INFORME O CODIGO DO PRODUTO:\n");
            fflush(stdin);
            gets(XYZ);
            cod = atoi(XYZ);
            rewind(arq);

            while(!feof(arq) && ok==0){

                stop++;
                fread(&compras, sizeof(struct Comp_forn), 1, arq);

                if(compras.cod_prod == cod) {
                     ok = 1;
                }
            }

            if (ok != 0){

                int escolha;
                printf("APAGAR PRODUTO? %s (SIM = 1, NAO = 0)?", compras.nome_prod);
                fflush(stdin);
                scanf("%i", &escolha);

                if (escolha == 1){
                    compras.cod_prod = 999;
                    compras.cod  = 999;
                    fseek(arq, sizeof(struct Comp_forn) *stop, SEEK_SET);
                    fwrite(&compras,sizeof(struct Comp_forn),1, arq);
                    printf("==REGISTRO EXCLUIDO==\n");
                }
            } else {
                printf("==NADA ENCONTRADO==\n");
            }

        }

         fclose(arq);
         printf("TECLE ENTER\n");
         getch();
    }

    void alterar(FILE *arq, char arquivo[100], int alt)
    {


        if (alt == 1){
            struct loja fornecedor;
            int cod, ok = 0, stop = -1;
            char XYZ[25];

            fflush(stdin);
            arq = fopen(arquivo, "rb+");
            printf("INFORME O CODIGO DO FORNECEDOR: \n");
            fflush(stdin);
            gets(XYZ);
            cod = atoi(XYZ);
            rewind(arq);
            while(!feof(arq) && ok==0){

                stop++;
                fread(&fornecedor, sizeof(struct loja), 1, arq);
                if(fornecedor.cod == cod) {
                     printf("NOME DO FORNECEDOR: %s \n", fornecedor.fornecedor);
                     ok = 1;
                }
            }

            if (ok != 0){

                struct loja insertdados;

                insertdados.cod = fornecedor.cod;
                insertdados.val_forn = fornecedor.val_forn;
                printf("INSIRA NOVO NOME: \n");
                fflush(stdin);
                scanf("%s", &insertdados.fornecedor);
                fseek(arq, sizeof(struct loja) *stop, SEEK_SET);
                fwrite(&insertdados, sizeof(struct loja),1, arq);
                printf("==informações ALTERADAS==\n");

            } else {
                printf("==NADA ENCONTRADO==\n");
            }
        } else {

            struct Comp_forn compras;
            int cod, ok = 0, stop = -1;
            char XYZ[25];

            fflush(stdin);
            arq = fopen(arquivo, "rb+");
            printf("INSIRA O CODIGO DO PRODUTO:\n");
            fflush(stdin);
            gets(XYZ);
            cod = atoi(XYZ);
            rewind(arq);
            while(!feof(arq) && ok==0){

                stop++;
                fread(&compras, sizeof(struct Comp_forn), 1, arq);

                if(compras.cod_prod == cod) {
                     ok = 1;
                }
            }

            if (ok != 0){
                struct Comp_forn insertdados;

                insertdados.cod = compras.cod;
                insertdados.cod_prod = compras.cod_prod;

                printf("NOVO NOME DO PRODUTO:\n");
                fflush(stdin);
                scanf("%s", &insertdados.nome_prod);
                printf("NOVO VALOR (und):\n");
                fflush(stdin);
                scanf("%s", &insertdados.val_unit);
                printf("NOVA QUANTIDADE DE COMPRA:\n");
                fflush(stdin);
                scanf("%s", &insertdados.quantidade);

                fseek(arq, sizeof(struct Comp_forn) *stop, SEEK_SET);
                fwrite(&insertdados, sizeof(struct Comp_forn),1, arq);
                printf("==informações ALTERADAS==\n");
            } else {
                printf("==NADA ENCONTRADO==\n");
            }

        }

         fclose(arq);
         printf("==PRESSIONE ENTER==\n");
         getch();
    }

        struct loja fornecedor;
        int VerifForn(FILE *arq, char arquivo[100],int cod){
        int ok = 0;

        rewind(arq);
        while(!feof(arq) && ok==0){
            fread(&fornecedor, sizeof(struct loja), 1, arq);
            if(fornecedor.cod == cod) {
                ok = 1;
            }
        }

        return(ok);
    }
     

     

     

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!