Título: me gustaria q me revisaran este programa en c++ Publicado por: eduardo17445 en 21 Enero 2013, 15:28 pm //el programa debe llevar descripsion del producto numero oc monto oc descripcion coo y m piden ingresar datos de factura ingresar modificar
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<<"
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); } Título: Re: me gustaria q me revisaran este programa en c++ Publicado por: durasno en 22 Enero 2013, 04:13 am Si el codigo anda sin problemas entonces dejalo asi, la optimizacion la ganas con el tiempo
Saludos PD: usa la geshi para poner codigo, asi la gente tiene mas ganas de verlo |