Ir ao conteúdo
  • Cadastre-se

Problema ao gerar e exibir relatorio de prod.cadastrados e C++!


gutoeto_26

Posts recomendados

Olá rapaziada do forum GHD !

Bom é o seguinte galera,to fazendo um trabalho da faculdade,que consiste hem:

desenvolver um programa que:

cadastre prod.

altere prod.cadast.

gere um relatorio na tela.

faça backup.

tudo isso usando procedimentos , e *arquivos.

estou tendo dificuldades em gerar o relatorio,pois não importa o nº de produtos q cadastro,toda vez q peço pra mostrar o relatorio o programa só me mostra o ÚLTIMO prod.que cadastrei e não todos os prod.com deveria mostrar.

vou colocar o codigo aqui pra rapaziada dar uma olhada, e se possível indicar onde estou errando.

quem puder dar uma força, eu agradeço!!!

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <stdlib.h>

struct produto{

char nome[10];

int codigo;

int quantidade;

float preco_unitario;

}p1[10];

void proc_menu(){

printf("------------------------- PROGRAMA CONTROLE E ESTOQUE -------------------------\n\n\n");

printf(" MENU:\n");

printf("\n [1] - CADASTRAR PRODUTOS\n [2] - ALTERAR PRODUTOSn [3] - RELATORIO DE PRODUTOS");

printf("\n [4] - FAZER BACKUP\n [0] - SAIR\n\n DIGITE SUA OPCAO: ");

}

void proc_menu_cad_prod(){

printf("\n [0] - VOLTAR AO MENU INICIAL\n [1] - CADASTRAR PRODUTOS\n\n OPCAO: ");

}

void proc_menu_alt_prod(){

printf("\n --ALTERAR PRODUTOS!--\n\n\n");

printf("\n [0] - VOLTAR AO MENU INICIAL\n [1] - ALTERA PRODUTOS\n\n OPCAO: ");

}

void proc_menu_relatorio(){

printf("\n --RELATORIO DE PRODUTOS!--\n\n\n");

printf("\n [0] - VOLTAR AO MENU INICIAL\n [1] - MOSTRA RELATORIO\n\n OPCAO: ");

}

int main(){

system("color 1E");

int i,j;

int menu;

int menu_cad_prod;

int menu_alt_prod;

int menu_relatorio;

FILE *prod;

p1.codigo=0;

while(true){

system("cls");

proc_menu();

scanf("%d",&menu);

if(menu==0){

break;

}

if (menu==1){

while(true){

system("cls");

proc_menu_cad_prod();

scanf("%d",&menu_cad_prod);

if(menu_cad_prod ==0){

break;

}

if(menu_cad_prod ==1){

for(i=0;i<1;i++){

system("cls");

p1.codigo=p1.codigo+1;

printf("\n --CADASTRO DE PRODUTOS!--\n\n\n");

printf("\n CODIGO : %d ",p1.codigo);

printf("\n PRODUTO : ");

scanf("%s",&p1.nome);

printf("\n QUANTIDADE DISPONIVEL DO PRODUTO : ");

scanf("%d",&p1.quantidade);

printf("\n PRECO UNITARIO : ");

scanf("%f",&p1.preco_unitario);

prod=fopen("produt.txt","ab");

fwrite(&p1, sizeof (struct produto), 1, prod);

}

}

}

}

if(menu == 3){

while(true){

system("cls");

proc_menu_relatorio();

scanf("%d",&menu_relatorio);

if(menu_relatorio == 0){

break;

}

if(menu_relatorio == 1){

for(i=0;i<1;i++){

prod=fopen("produt.txt","rb");

fread(&p1,sizeof(struct produto),1,prod);

printf("\n --RELATORIO DE PRODUTOS!--\n\n\n");

printf("\n CODIGO : %d ",p1.codigo);

printf("\n PRODUTO : %s", p1.nome);

printf("\n QUANTIDADE DISPONIVEL DO PRODUTO : %d", p1.quantidade);

printf("\n PRECO UNITARIO : R$ %.2f",p1.preco_unitario);

fclose(prod);

getch();

}

}

}

}

}

}

DESDE JÁ AGRADEÇO A ATENÇÃO E BOA VONTADE DE TODOS.

VALEU!!!!!!!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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