Está en la página 1de 4

INSTITUTO POLITECNICO NACIONAL

Escuela Superior de Ingeniera Mecnica


Y Elctrica Unidad Zacatenco
Alumno:

Garca Snchez Luis

Boleta:

Grupo:

2015300669

2CM15

Nmero de Practica: 5

Nombre de la prctica: MANEJO DE APERTURA Y


ESCRITURA DE ARCHIVOS
Fecha de entrega: 27/ Mayo/2015

Cdigo del programa.


#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
//estructura global
struct automovil
{
int clave_auto;
float millas;
float galones;
automovil() //contructor por omision
{
clave_auto=0;
millas=0.0;
galones=0.0;
}
void leer(automovil *arreglo, int n)//se declara la funcion dentro de
la estructura, tiene un paso de direccion de memoria, y paso por
valor
{
cout<<"Leyendo datos"<<endl;
for(int i=0;i<n;i++)//ayuda a recorrer el arreglo, declarado
generalmente en la estructura , en notacion arreglo
{
cout<<"Introduce clave de auto"<<endl;
cin>>arreglo[i].clave_auto;
cout<<"Introduce millas"<<endl;
cin>>arreglo[i].millas;
cout<<"Introduce galones"<<endl;
cin>>arreglo[i].galones;
}
}
void imprimir(automovil * arreglo,int n)
{
float total=0.0;//variable acumuladora
system("cls");
cout<<"REPORTE MENSUAL DE MILLAS FLOTILLA DE TAXIS RUTA
44"<<endl<<endl;
cout<<"CLAVE"<<"\t"<<"MILLAS"<<"\t"<<"GALONES"<<endl;
for (int i=0; i<n;i++)
{
cout<<arreglo[i].clave_auto<<"\t"<<arreglo[i].millas<<"\t"<<arreglo[i]
.galones<<endl;
total+=arreglo[i].millas;
}
cout<<"El promedio de millas recorridas ="<<total/n;

}
void guardar(automovil *arreglo, int n)
{
cout<<"Guardando...."<<endl;
ofstream archivoSalida("registros.csv", ios::app);
for(int i=0; i<n; i++)
{
archivoSalida<<arreglo[i].clave_auto<<",";
archivoSalida<<arreglo[i].millas<<",";
archivoSalida<<arreglo[i].clave_auto<<","<<"\r";
}
archivoSalida.close();
}
void mostrar(automovil *arreglo, int
n)//http://www.cplusplus.com/forum/general/13087/ de aqui lo saque :)
{
system("cls");
ifstream file("registros.csv");
string value;
while(file.good())
{
getline(file,value,',');
cout<<string(value)<<endl;;
}
getch();
}
};
int main()
{
int opc,n;
automovil a, *pt_arreglo;//instancias de la estructura llamada
automovil
cout<<"Ingresa el numero de la flotilla"<<endl;
cin>>n;
pt_arreglo=new automovil[n];
do
{
system("cls");
system("color 70");
cout<<"TAXIS RUTA 44"<<endl;
cout<<"1. Lectura de datos"<<endl;
cout<<"2. Genera reporte"<<endl;
cout<<"3. Guardar"<<endl;
cout<<"4. Mopstrar"<<endl;
cout<<"5. Salir"<<endl;
cout<<"Introduce la opcion"<<endl;
cin>>opc;

switch(opc)
{
case 1:
a.leer(pt_arreglo,n);
break;
case 2:
a.imprimir(pt_arreglo,n);
break;
case 3:
a.guardar(pt_arreglo, n);
break;
case 4:
a.mostrar(pt_arreglo, n);
break;
case 5:
exit(0);
default:
cout<<"NO EXISTE OPCION"<<endl;
break;
};
getch();
}
while(opc<=4);
delete[]pt_arreglo;
}

Para crear los archivos de tipo .csv .txt .pdf etc se tuvo que agregar en las libreras
fstream la cual permite la utilizacin de nuevos comandos para que en la opcin
guardar se cree por as llamarlo una pequea base de datos de los datos
previamente llenada por datos del usuario en forma de documento de formato
especificado en la funcin guardar en la parte de ofstream que tiene la misma
funcionalidad que un cout as pues el archivo se guarda en la carpeta donde se
encuentre ubicado el programa. El archivo creado va a poder ser modificado y ser
utilizado a la inversa.

También podría gustarte