imprimir revicion luego sumatoria total/*
#include <stdio.h>
#include <conio.h>
void menu();
void ingresarpro();
void listarpro();
void modificarpro();
void ingresarprov();
void listarprov();
void comprarcab();
void listarfacab();
void comprardet();
struct pro
{
int codigo;
char descripcion[30];
float precio;
long stock;
} producto;
struct prov
{
int codigo;
char nombre[30];
char direccion[30];
char telefono[9];
} proveedor;
struct fca
{
int numero;
char fecha[15];
int codigoprv;
float total;
} fccompra;
struct fde
{
int numero;
int codigop;
float precio;
int cantidad;
} fdcompra;
FILE *fp, *fpv, *fde, *fca;
main()
{
menu();
return 0;
}
void menu()
{
char c;
do
{
clrscr;
cout<<" menu n";
cout<<" [1] Ingreso de Productos n";
cout<<" [2] Listado de Productos n";
cout<<" [3] Modificaci¢n de Productos n";
cout<<" [4] Ingreso de Proveedores n";
cout<<" [5] Listado de Proveedores n";
cout<<" [6] Factura de Compra Cabecera n";
cout<<" [7] Lista de Facturas n";
cout<<" [8] Factura de Compra Detalle nn";
cout<<"
- Salir ... n";
getch();
switch (c)
{
case 49: ingresarpro();
break;
case 50: listarpro();
break;
case 51: modificarpro();
break;
case 52: ingresarprov();
break;
case 53: listarprov();
break;
case 54: comprarcab();
break;
case 55: listarfacab();
break;
case 56: comprardet();
break;
}
} while(c!=48);
}
void ingresarpro()
{
float pre;
int g;
fp=fopen("C:\producto.dat","a+b");
do
{
clrscr();
cout<<" PRODUCTOS n";
cout<<"--------------n";
cout<<"Ingrese el c¢digo : ";
cin>>"%d",&producto.codigo;
cout<<"Ingrese la descripci¢n : ";
cin>>"%s",producto.descripcion;
cout<<"Precio : ";
cin>>"%f",⪯
producto.precio=pre;
cout<<"nDesea almacenar [1] si y [2] no ... ";
cin>>"%d",&g;
if(g==1)
fwrite(&producto,sizeof(producto),1,fp);
cout<<"Desea continuar [1] si y [2] no ... ";
cin>>"%d",&g;
} while(g==1);
fclose(fp);
}
void listarpro(void)
{
clrscr();
cout<<" LISTADO DE PRODUCTOS n";
cout<<"------------------------------------------------------n";
cout<<" C¢digo Descripci¢n Precio Stock n";
fp=fopen("C:\producto.dat","r+b");
while (!feof(fp))
{
fread(&producto,sizeof(producto),1,fp);
if(!feof(fp))
cout<<(" %d %30s %7.2f %d n",
producto.codigo,producto.descripcion,producto.precio,producto.stock);
}
fclose(fp);
cout<<"------------------------------------------------------n";
cout<<" Presione cualquier tecla para continuar ... ";
getch();
}
void modificarpro()
{
int codb,incl=0;
long curpos;
clrscr();
cout<<" INCREMENTA 10% PRECIO PRODUCTO n";
cout<<"---------------------------------n";
fp=fopen("C:\producto.dat","rb+");
cout<<"Ingrese el codigo a modificar : ";
cin>>"%d",&codb;
while(!feof(fp) && incl==0)
{
fread(&producto,sizeof(producto),1,fp);
if(producto.codigo==codb)
{
curpos=ftell(fp);
fseek(fp,curpos-sizeof(producto),SEEK_SET);
producto.precio=producto.precio*1.1;
fwrite(&producto,sizeof(producto),1,fp);
incl=1;
}
}
fclose(fp);
}
void ingresarprov(void)
{
int g;
fpv=fopen("c:\proveedor.dat","a+b");
do
{
clrscr();
cout<<" PROVEEDORES n";
cout<<"-------------n";
cout<<"C¢digo : ";
cin>>"%d",&proveedor.codigo;
cout<<"Nombre : ";
cin>>"%s",&proveedor.nombre;
cout<<"Direcci¢n : ";
cin>>"%s",&proveedor.direccion;
cout<<"Tel‚fono : ");
cin>>"%s",&proveedor.telefono;
cout<<"nDesea almacenar [1] si y [2] no ....";
cin>>"%d",&g;
if(g==1)
fwrite(&proveedor,sizeof(proveedor),1,fpv);
cout<<"Desea continuar [1] si y [2] no ....";
cin>>"%d",&g;
} while(g==1);
fclose(fpv);
}
void listarprov()
{
clrscr();
cout<<" LISTADO DE PROVEEDORES n";
cout<<"-------------------------------------------------------------------------------n";
cout<<" C¢digo Nombre Direcci¢n T‚lefono n";
fpv=fopen("c:\proveedor.dat","r+b");
while (!feof(fpv))
{
fread(&proveedor,sizeof(proveedor),1,fpv);
if(!feof(fpv))
cout<<" %d %-30s %-30s %-9s n",
proveedor.codigo,proveedor.nombre,proveedor.direccion,proveedor.telefono);
}
fclose(fpv);
cout<<"-------------------------------------------------------------------------------n";
cout<<" Presione cualquier tecla para continuar ... ";
getche();
}
vvoid comprarcab()
{
int ind=0,c;
clrscr();
cout<<" FACTURA DE COMPRA n";
cout<<"---------------------------n";
fca=fopen("c:\fccabece.dat","a+b");
cout<<" Numero : ";
cin>>"%d",&fccompra.numero;
cout<<" Fecha : ";
cin>>"%s",&fccompra.fecha;
do
{
fpv=fopen("c:\provee.dat","a+b");
cout<<" Codigo Proveedor : ";
cin>>"%d",&fccompra.codigoprv;
while (!feof(fpv) && ind==0)
{
fread(&proveedor,sizeof(proveedor),1,fpv);
if(proveedor.codigo==fccompra.codigoprv)
{
cout<<"n Nombre : %s"<<proveedor.nombre;
ind=1;
}
}
if (ind==0)
cout<<"n Codigo no existe n";
fclose(fpv);
} while (ind!=1);
cout<<"n Datos correctos 1 si o 2 no ... ";
cin>>"%d",&c;
if (c==1)
fwrite(&fccompra,sizeof(fccompra),1,fca);
fclose(fca);
}
void listarfacab(void)
{
clrscr();
cout<<" LISTADO DE FACTURAS n";
cout<<"-------------------------------------------------------------------------------n";
cout<<" N£mero Fecha Proveedor T‚lefono Total n";
fca=fopen("c:\fccabece.dat","r+b");
while (!feof(fca))
{
fread(&fccompra,sizeof(fccompra),1,fca);
fpv=fopen("c:\provee.dat","a+b");
while (!feof(fpv))
{
fread(&proveedor,sizeof(proveedor),1,fpv);
if(fccompra.codigoprv==proveedor.codigo)
{
if((!feof(fca)) && (!feof(fpv)))
cout<<" %d %-10s %-30s %-9s %f n",fccompra.numero,fccompra.fecha,proveedor.nombre,proveedor.telefono,fccompra.total;
}
}
fclose(fpv);
}
fclose(fca);
cout<<"-------------------------------------------------------------------------------n";
cout<<" Presione cualquier tecla para continuar ... ";
getche();
}
void comprardet(void)
{
int ind=0,c;
float total,totalcab=0;
long curpos;
clrscr();
cout<<" FACTURA COMPRA DETALLE n";
cout<<"-----------------------------n";
fde=fopen("c:\fcdetale.dat","a+b");
do
{
cout<<" Numero : ";
cin>>"%d",&fdcompra.numero;
fca=fopen("c:\fccabece.dat","a+b");
while (!feof(fca) && ind==0)
{
fread(&fccompra,sizeof(fccompra),1,fca);
if(fccompra.numero==fdcompra.numero)
{
cout<<"n Fecha : %s",fccompra.fecha;
ind=1;
}
}
if (ind==0)
cout<<"n Cabecera no existe n";
fclose(fca);
} while (ind!=1);
do
{
ind=0;
do
{
cout<<("n Codigo Producto : ");
cin>>"%d",&fdcompra.codigop;
fp=fopen("c:\producto.dat","a+b");
while (!feof(fp) && ind==0)
{
fread(&producto,sizeof(producto),1,fp);
if(fdcompra.codigop==producto.codigo)
{
cout<<(" Descripci¢n : %-30s n",producto.descripcion);
cout<<(" Precio : %f n",producto.precio);
fdcompra.precio=producto.precio;
ind=1;
}
}
if (ind==0)
cout<<("n Producto no existe n");
fclose(fp);
} while (ind!=1);
cout<<(" Cantidad : ");
cin>>("%d",&fdcompra.cantidad);
total=fdcompra.cantidad*fdcompra.precio;
totalcab=totalcab+total;
cout<<(" Total : %7.2f ",total);
cout<<(" Total Factura : %f ",totalcab);
cout<<("n Datos correctos 1 si o 2 no ... ");
cin>>("%d",&c);
if (c==1)
fwrite(&fdcompra,sizeof(fdcompra),1,fde);
cout<<(" Desea continuar 1 si o 2 no ... ");
cin>>("%d",&c);
} while (c!=2);
fclose(fde);
ind=0;
fca=fopen("c:\fccabece.dat","rb+");
while(!feof(fca) && ind==0)
{
fread(&fccompra,sizeof(fccompra),1,fca);
if(fccompra.numero==fdcompra.numero)
{
curpos=ftell(fca);
fseek(fca,curpos-sizeof(fccompra),SEEK_SET);
fccompra.total=totalcab;
fwrite(&fccompra,sizeof(fccompra),1,fca);
ind=1;
}
}
fclose (fde);
}