Ejemplos de c++ utilizando programacion separada.

primero utilizar un puntero apuntando a un arreglo y luego un programita pequeñito para calcular facturas y una expresion, espero que el codigo se explique solo y cualquier duda solo comenta la entrada.




preparacion



int Arreglo[5] = {1};int *ptrEntero;
ptrEntero = Arreglo;
for (int i = 0 ; i < 5 ; i++) ptrEntero[i]++;
// incrementamos todos los elementos del arreglo.

------------------------------------------

struct letras
{
double x,y,z;
double res, tot;
};
struct factura
{
double precio, cantidad, pordes;
double neto, montodes, subtotal, iva, total;
principal


#include<iostream.h>
#include<math.h>
#include"examen.h"
#include"mexamen.cpp"

void main()
{
imprimir p;
letras ds;
factura dt;
ds.x=ds.y=ds.z=ds.res=ds.tot=0;
dt.neto=dt.montodes=dt.subtotal=dt.iva=0;
dt.precio=dt.cantidad=dt.pordes=0;
double mtotal=0;
cout<<"ingrese x:";cin>>ds.x;
cout<<"ingrese y:";cin>>ds.y;
cout<<"ingrese z:";cin>>ds.z;
cout<<"ingrese precio:";cin>>dt.precio;
cout<<"ingrese cantidad:";cin>>dt.cantidad;
cout<<"ingrese pordes:";cin>>dt.pordes;
mtotal=p.tres(& ds,& dt);
cout<<"el total es:"<<mtotal<<"\n";
}




examen.h



};
class control
{
private:
double cox,coy,coz;
double cores;
public:
control();
~control();
void uno(letras *);
};
class prueba
{
private:
double px,py;
double pres;
public:
prueba();
~prueba();
void dos(letras &);
};
class imprimir :public control, public prueba
{
private:
double imprecio, imcantidad, impordes;
double imneto,immontodes,imsubtotal,imiva,imtotal;
double imx,imy,imz;
double imres;
letras de;
public:
imprimir();
~imprimir();
double tres(letras *, factura *);
};




mexamen
control::control()
{
cox=coy=coz=0;
cores;
}
control::~control()
{
cout <<"objeto control destruido"<<"/n";
}
void control::uno(letras *acs)
{
cox=acs->x;
coy=acs->y;
coz=acs->z;
if (pow(coz,3)==0)
{
cout<<"error"<<"/n";
}
else
{
cores= (pow(cox,4)-pow(coy,2))/(pow(coz,3));
if (cores<0)
{
cout<<"error complejo"<<"/n";
}
else
{
cores = pow(cores,1/2);
}
}
acs->res=cores;
}
prueba::prueba()
{
px=py=0;
ptot=0;
}
prueba::~prueba()
{
cout<<"objeto prueba destruido"<<"/n";
}
void prueba::dos(letras & bcs)
{
px=bcs.x;
py=bcs.y;
if (py==0)
{
cout<<"error"<<"/n";
}
else
{
ptot= pow(px,2)-(px)/(py);
}
bcs.tot=ptot;
}
imprimir::imprimir()
{
imprecio=imcantidad=impordes=0;
imneto=immontodes=imsubtotal=imiva=imtotal=0;
imx=imy=imz=imres=imtot=0;
de.x=de.y=de.z=de.res=0;
}
imprimir::~imprimir()
{
cout<<"objeto imprimir destruido"<<"/n";
}
double imprimir::tres(letras * ads,factura * adt)
{
imprecio=adt->precio;
imcantidad=adt->cantidad;
impordes=adt->pordes;
imx=ads->x;
imy=ads->y;
imz=ads->z;
de.x=imx;
de.y=imy;
de.z=imz;
uno(&de);
dos(de);
cout<<"resultado de uno="<<de.res<<"\n";
cout<<"resultado de dos="<<de.tot<<"\n";
if (imprecio || imcantidad < 0 || impordes<0)
{
cout<<"total";
}
else
{
imneto= (imprecio * imcantidad);
immontodes=(imneto * impordes)/100;
imsubtotal=immontodes-imneto;
imiva=(imsubtotal*19)/100;
imtotal=imsubtotal+imiva;
cout<<"neto="<<imneto<<"\n";
cout<<"monto descuento="<<immontodes<<"\n";
cout<<"subhtotal="<<imsubtotal<<"\n";
cout<<"iva="<<imiva<<"\n";
}


return imtotal;
}


Comentarios

  1. Hola grisUno,

    Algunos comentarios de tu programa:

    1) iostream.h esta deprecated, los headers de la STL de C++ se incluyen sin el .h al final (ej: #include <iostream>, <cmath>, <vector>, etc etc.

    2) la funcion main() JAMAS retorna void. El estandard de C++ define main unicamente de las siguientes 2 maneras:

    int main(int argc, char* argv[]) { /* ... */ }
    int main() { /* ... */ }

    3) en C++ en general es recomendado pasar referencias en vez de punteros a funciones.

    Saludos,
    elkrammer

    ResponderEliminar

Publicar un comentario

Entradas populares