Ir ao conteúdo
  • Cadastre-se

Pedro Torres D

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Tudo que Pedro Torres D postou

  1. @Lucca Rodrigues Opa e qual seria o argumento correto para o tipo float?
  2. Opa, boa tarde a todos, poderiam me ajudar? Estou com um erro na linha 173 e 175, mas não consigo chegar em uma lógica para resolve-lo Código completo: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <locale.h> #include <ctype.h> #include <windows.h> struct produto{ char nome[30]; int diaValidade; int mesValidade; int codigoProduto; float precoProduto; }; int exibirMenu(void); void inserirProduto(void); void verificarProduto(void); void atualizarPreco(void); void excluirproduto(void); int main(void){ setlocale(LC_ALL,""); int opcao; do{ opcao = exibirMenu(); switch (opcao){ case 1: inserirProduto(); break; case 2: verificarProduto(); break; case 3: atualizarPreco(); break; case 4: excluirproduto(); break; case 0: printf("\nPrograma encerrado..."); break; default: printf("\n Opção inválida!"); } Sleep(1000); // Serve para parar o programa durante 1 segundo. } while(opcao != 0); return 0; } int exibirMenu(void){ int opcao; system("cls"); printf("|\t| MENU |\t|\n|\n"); printf("| 1 | Inserir produto\n"); printf("| 2 | Verificar produto\n"); printf("| 2 | Listar produto\n"); printf("| 3 | Alterar precos\n"); printf("| 4 | Remover produto\n"); printf("| 0 | Sair\n\n"); printf(" Digite a opcao desejada: "); scanf("%d", &opcao); return opcao; } void inserirProduto(void){ struct produto produtoSalvo; FILE *arquivo; system("cls"); printf("\tHBS | Inserir Produto\n\n"); printf("Nome: "); fflush(stdin); // limpar o buffer de saída do teclado // gets(produtoSalvo.nome); printf("Código: "); scanf("%d", &produtoSalvo.codigoProduto); printf("Dia da validade: "); scanf("%d", &produtoSalvo.diaValidade); printf("Mês da validade: "); scanf("%d", &produtoSalvo.mesValidade); printf("Preço: "); scanf("%f", &produtoSalvo.precoProduto); arquivo = fopen("listaProdutos.dat", "ab"); if (!arquivo){ arquivo = fopen("produto.dat", "wb"); } fwrite(&produtoSalvo, 1, sizeof(struct produto), arquivo); fclose(arquivo); } void verificarProduto(void){ int encontrado = 0; char busca[30]; struct produto produtoSalvo; FILE *arquivo; system("cls"); printf("\tHBS | Lista de Produtos\n\n"); printf(" Nome do produto: "); fflush(stdin); gets(busca); arquivo = fopen("listaProdutos.dat", "rb"); if (arquivo){ fread(&produtoSalvo, 1, sizeof(struct produto), arquivo); while (!feof(arquivo)){ if (strcmp(busca, produtoSalvo.nome) == 0){ printf("\nNome: %s\n", produtoSalvo.nome); printf("\nCódigo: %d\n", produtoSalvo.codigoProduto); printf("Data de validade: %d / %d\n", produtoSalvo.diaValidade, produtoSalvo.mesValidade); printf("Preço: %f", produtoSalvo.precoProduto); Sleep(2000); // Serve para parar o programa durante 2 segundos. encontrado = 1; break; } fread(&produtoSalvo, 1, sizeof(struct produto), arquivo); } if (!encontrado){ printf("\nO produto não foi encontrado!"); Sleep(1000); } fclose(arquivo); } else{ printf("\n Nada encontrado no arquivo!"); Sleep(1000); } } void atualizarPreco(void){ int encontrado = 0; int codigoProduto; float precoProduto; struct produto produtoTemporario; struct produto produtoSalvo; FILE *arquivoAntigo = NULL, *arquivoAtualizado = NULL; system("cls"); printf("\tHBS | Alterar informações\n\n"); printf("Novo código: "); scanf("%d", &produtoSalvo.codigoProduto); printf("Novo preço: "); scanf("%f", &produtoSalvo.precoProduto); arquivoAntigo = fopen("listaProdutos.dat", "rb"); if (arquivoAntigo) { arquivoAtualizado = fopen("temp.dat", "wb"); if (!arquivoAtualizado) { printf("\n Falha na alteração do produto!"); Sleep(1000); return; } fread(&produtoTemporario, 1, sizeof(struct produto), arquivoAntigo); while (!feof(arquivoAntigo)) { if (strcmp(produtoTemporario.codigoProduto, codigoProduto) == 0) { strcpy(produtoTemporario.precoProduto, precoProduto); encontrado = 1; } fwrite(&produtoTemporario, 1, sizeof(struct produto), arquivoAtualizado); fread(&produtoTemporario, 1, sizeof(struct produto), arquivoAntigo); } fclose(arquivoAntigo); fclose(arquivoAtualizado); remove("listaProdutos.dat"); rename("temp.dat", "listaProdutos.dat"); if (!encontrado) { printf("\nNão foi possível encontrar o produto..."); } else { printf("\nA alteração foi concluída!"); } Sleep(1000); } else { printf("\nNenhum produto foi encontrado!"); Sleep(1000); } } void excluirproduto(void) { int encontrado = 0; char nome[30]; struct produto produtoTemporario; FILE *arquivoAntigo = NULL, *arquivoAtualizado = NULL; system("cls"); printf("\tAGENDA TELEFONICA - EXCLUIR precoProduto\n\n"); printf(" Nome do produto: "); fflush(stdin); gets(nome); arquivoAntigo = fopen("listaProdutos.dat", "rb"); if (arquivoAntigo) { arquivoAtualizado = fopen("temp.dat", "wb"); if (!arquivoAtualizado) { printf("\nFalha ao excluir produto!"); fclose(arquivoAntigo); Sleep(1000); return; } fread(&produtoTemporario, 1, sizeof(struct produto), arquivoAntigo); while (!feof(arquivoAntigo)) { if (strcmp(produtoTemporario.nome, nome) == 0) { encontrado = 1; } else { fwrite(&produtoTemporario, 1, sizeof(struct produto), arquivoAtualizado); } fread(&produtoTemporario, 1, sizeof(struct produto), arquivoAntigo); } fclose(arquivoAntigo); fclose(arquivoAtualizado); remove("listaProdutos.dat"); rename("temp.dat", "listaProdutos.dat"); if (!encontrado) { printf("\nNão foi possível encontrar o produto..."); } else { printf("\nExclusão realizada com sucesso!"); } Sleep(1000); } else { printf("\nNenhum produto encontrado!"); Sleep(1000); } }

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