me gustaria q me revisaran este programa en c++

Iniciado por eduardo17445, 21 Enero 2013, 15:28 PM

0 Miembros y 1 Visitante están viendo este tema.

eduardo17445

//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<<"
  • Salir ... n";
          cout<<" Digite la opci¢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",&pre;
          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);
    }


durasno

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
Ahorrate una pregunta, lee el man