#include fstream.h> #include iomanip.h> #include <string.h

Anuncio
#include &lt;fstream.h&gt;
#include &lt;iomanip.h&gt;
#include &lt;string.h&gt;
/*********************** Clase Dispositivo ******************/
class Dispositivo
{
char name[20];
double precio;
public:
char *GetName() { return name; }
double GetPrecio( ) { return precio;}
};
friend istream&amp; operator&gt;&gt;(istream&amp; ci, Dispositivo &amp;dp){
cout &lt;&lt; &quot;Nombre:?&quot;; cin&gt;&gt;dp.name;
cout &lt;&lt; &quot;Precio:?&quot;; cin&gt;&gt;dp.precio;
return ci;
}
/*********************** Clase Almacen ******************/
class Almacen
{
public:
Dispositivo lista[40];
int num;
//numero de componentes en la lista
public:
Almacen() { num=0; }
friend istream&amp; operator&gt;&gt;(istream&amp; ci, Almacen &amp;al){
cin &gt;&gt; al.lista[al.num];
al.num++;
return ci;
}
};
/*********************** Clase Compras ******************/
class Compras
{
int ind;
//indice del dispositvo en la Lista de Almacen
int cant;
//numero de componentes que va compra del dispositivo dp;
public:
Compras(){;}
void PonDatos(int i, int c){ ind=i; cant=c;}
void GetDatos(int &amp;i, int &amp;c){ i=ind; c=cant; }
};
/*********************** Programa Principal ******************/
void ImprimePantalla(int Num,Almacen &amp;al,Compras ListaCp[]);
void ImprimeFichero(int Num,Almacen &amp;al,Compras ListaCp[]);
void main()
{
Almacen al;
//Objeto almacen
Compras ListaCp[100]; //array de objetos Compras
int Num=0;
int opc=0;
while(true){
cout &lt;&lt; &quot;\n** Menu **\n1.Introducir Componentes
\n2.Comprar\n3.Reporte Pantalla
\n4.Reporte Ficheros\n5.Salir\n\tOpc:?&quot;;
cin &gt;&gt; opc;
if (opc==1){
cin &gt;&gt; al;
}else if (opc==2){
}
}
int ind,cant;
cout &lt;&lt; &quot;Los componentes disponibles son:\n&quot;;
for (int i=0;i&lt;al.num;i++)
cout &lt;&lt; &quot;\t&quot;&lt;&lt;i+1 &lt;&lt; &quot;. &quot; &lt;&lt; al.lista[i].GetName() &lt;&lt; endl;
cout &lt;&lt; &quot;\nElija el componente:?&quot;;
cin &gt;&gt; ind;
cout &lt;&lt; &quot;Cantidad:?&quot;;
cin &gt;&gt; cant;
//guardar en la ListaCompra
ind--;
ListaCp[Num++].PonDatos(ind,cant);
}else if (opc==3){
ImprimePantalla(Num,al,ListaCp);
}
else if (opc==4) ImprimeFichero(Num,al,ListaCp);// Imprime en fichero
else if (opc==5) break;
void ImprimePantalla(int Num,Almacen &amp;al,Compras ListaCp[])
{
int ind,cant;
cout &lt;&lt; setw(5)&lt;&lt;&quot;Cant&quot; &lt;&lt; setw(20) &lt;&lt; &quot;Componente&quot; &lt;&lt; setw(10)&lt;&lt;&quot;P.Unid&quot; &lt;&lt; setw(10)
&lt;&lt; &quot;P.Total&quot;&lt;&lt;endl;
double Total=0;
for (int i=0;i&lt;Num;i++){
ListaCp[i].GetDatos(ind,cant);
cout &lt;&lt; setw(5)&lt;&lt;cant&lt;&lt; setw(20) &lt;&lt; al.lista[ind].GetName();
cout &lt;&lt; setw(10)&lt;&lt; al.lista[ind].GetPrecio()&lt;&lt; setw(10) &lt;&lt;al.lista[ind].GetPrecio()
*cant &lt;&lt;endl;
Total += al.lista[ind].GetPrecio()*cant;
}
cout &lt;&lt; setw(35) &lt;&lt; &quot;Total&quot; &lt;&lt; setw(10) &lt;&lt; Total &lt;&lt; endl;
}
void ImprimeFichero(int Num,Almacen &amp;al,Compras ListaCp[])
{
int ind,cant;
char file[40];
cout &lt;&lt; &quot;Dar Nombre de fichero:?&quot;; cin &gt;&gt; file;
ofstream fout(file);
fout &lt;&lt; setw(5)&lt;&lt;&quot;Cant&quot; &lt;&lt; setw(20) &lt;&lt; &quot;Componente&quot; &lt;&lt; setw(10)&lt;&lt;&quot;P.Unid&quot; &lt;&lt; setw(10)
&lt;&lt; &quot;P.Total&quot;&lt;&lt;endl;
double Total=0;
for (int i=0;i&lt;Num;i++){
ListaCp[i].GetDatos(ind,cant);
fout &lt;&lt; setw(5)&lt;&lt;cant&lt;&lt; setw(20) &lt;&lt; al.lista[ind].GetName();
fout &lt;&lt; setw(10)&lt;&lt; al.lista[ind].GetPrecio()&lt;&lt; setw(10) &lt;&lt;al.lista[ind].GetPrecio()
*cant &lt;&lt;endl;
Total += al.lista[ind].GetPrecio()*cant;
}
fout &lt;&lt; setw(35) &lt;&lt; &quot;Total&quot; &lt;&lt; setw(10) &lt;&lt; Total &lt;&lt; endl;
}
cout &lt;&lt; &quot;\nDatos escritos en Fichero:&quot; &lt;&lt; file &lt;&lt; endl;
fout.close();
Descargar