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

Programa travando


baixinha_25

Pergunta

oi, to colocando meu codigo inteiro aqui ainda não finalizado, no cadastro de categoria preciso fazer a validação do codigo, para que não se repita, então criei uma função para isso, porém o programa está travando.

Alguém pode dar uma olhada e ver se encontram o erro?

Grata

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <windows.h>

#include <string.h>

#include <ctype.h>

#define TAM 25

int menu()

{

system("cls");

fflush(stdin);

int op;

printf("**************MENU DE OPERACOES ***************");

printf("\n\n1 - Cadastra a Categoria");

printf("\n2 - Cadastra o Produto");

printf("\n3 - Registra a Venda");

printf("\n4 - Lista a Venda");

printf("\n5 - Resumo por Categoria");

printf("\n6 - Fim");

printf("\nInforme a opcao: ");

scanf("%d",&op);

if (op > 6 || op <1) {

printf ("\t Opcao errada, escolha entre 1 e 6 !!");

getch();

}

return op;

}

typedef struct categoria{

int cod_categ;

char nome_cat[TAM];

}t_categoria;

typedef struct produto{

int cod_prod;

char nome_prod[TAM];

float preço;

int codcategoria;

}t_produto;

typedef struct venda{

int prod;

int cat;

float total;

}t_venda;

t_categoria categoria;

t_categoria RegCat;

t_produto produto;

t_venda venda;

int achou=0;

FILE *pArqCat, *pArqprod, *pArqVenda;

/*************************VALIDA CATEGORIA*************************************/

int valida_cat()

{

while(!feof(pArqCat))

{

if(categoria.cod_categ == RegCat.cod_categ)

{

achou = 1;

}

}

return achou;

}

/******************************************************************************/

/*************************CRIA ARQUIVO CATEGORIA*******************************/

void criaArqcat()

{

pArqCat = fopen("categoria","rb");

if(pArqCat == NULL)

{

pArqCat = fopen("categoria","wb");

if(pArqCat == NULL)

{

printf("Erro na abertura do arquivo!!");

system("pause > null");

}

}

fclose(pArqCat);

}

/******************************************************************************/

/********************INSERE DADOS DA CATEGORIA NO ARQUIVO**********************/

void inserecat()

{

int found=0;

char resp;

pArqCat = fopen("categoria","ab+");

do{

system("cls");

do{

printf("Informe o codigo: ");

scanf("%i",&categoria.cod_categ);

fread(&RegCat,sizeof(t_categoria),1,pArqCat);

found = valida_cat();

}while(categoria.cod_categ == 0 || found == 1);

printf("\nInforme o nome: ");

fflush(stdin);

gets(categoria.nome_cat);

if(fwrite(&categoria, sizeof(t_categoria), 1, pArqCat) > 0)

{

printf("\nCategoria gravada com sucesso");

getch();

}

printf("\n\nNova categoria: S/N: ");

scanf("%c",&resp);

}while((resp == 'S') || (resp == 's'));

fclose(pArqCat);

}

/******************************************************************************/

/*************************CRIA ARQUIVO PRODUTOS********************************/

void criaArqprod()

{

pArqprod = fopen("produto","rb");

if(pArqprod == NULL)

{

pArqprod = fopen("produto","wb");

if(pArqprod == NULL)

{

printf("Erro na abertura do arquivo!!");

system("pause > null");

}

}

fclose(pArqprod);

}

/******************************************************************************/

/********************INSERE DADOS PRODUTO NO ARQUIVO***************************/

void insereprod()

{

char resp;

pArqprod = fopen("produto","ab+");

do{

system("cls");

do{

printf("Informe o codigo: ");

scanf("%i",&produto.cod_prod);

}while(produto.cod_prod == 0);

printf("\nInforme o nome: ");

fflush(stdin);

gets(produto.nome_prod);

printf("\nInforme o preço: ");

scanf("%f",&produto.preço);

printf("\nInforme a categoria do Produto");

scanf("%d",&produto.codcategoria);

if(fwrite(&produto, sizeof(t_produto), 1, pArqprod) > 0)

{

printf("\nCategoria gravada com sucesso!!");

getch();

}

printf("\n\nNova categoria: S/N: ");

scanf("%c",&resp);

}while((resp == 'S') || (resp == 's'));

fclose(pArqprod);

}

/******************************************************************************/

/******************************BLOCO PRINCIPAL*********************************/

int main()

{

int opcao;

opcao= menu();

criaArqcat();

criaArqprod();

do{

fflush(stdin);

switch(opcao)

{

case 1: inserecat();

break;

case 2: insereprod();

break;

/*case 3: registra();

break;

case 4: exibe();

break;

case 6: exit(1);

break;*/

}

system("cls");

opcao=menu();

}while(opcao != 6);

getch();

}

Editado por quintelab
título alterado
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
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...