Ir ao conteúdo
  • Cadastre-se

Christiano Bremm

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

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