Ejercicio 8
(Olvera Vázquez Scarlett)
Núm. de automóvil Millas recorridas Galones utilizados
a. Cree un archivo de texto que contenga los siguientes números de automóviles, número de millas recorridas y número de galones de gasolina utilizados en cada automóvil (no incluya los encabezados):
Núm. de automóvil Millas recorridas Galones utilizados
54 250 19
62 525 38
71 123 6
85 1322 86
97 235 14
b. Escriba un programa en C++ que lea los datos en el archivo creado en el ejercicio 8a y despliegue el número de automóvil, las millas recorridas, los galones utilizados y las millas por galón para cada automóvil. La salida deberá contener el total de millas recorridas, el total de galones utilizados y el promedio de millas por galón para todos los automóviles. Estos totales deberán desplegarse al final del reporte de salida.
Código
#include <fstream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <iomanip.h>
/* Practica:7 Problema:8 Fecha:19/05/2015
Olvera Vázquez Scarlett 14211908*/
void generardatos()
{
ofstream sdatos;
sdatos.open("C://Datos//archivo.txt");
sdatos<<62<<"\t"<<525<<"\t"<<38<<endl;
sdatos<<71<<"\t"<<123<<"\t"<<6<<endl;
sdatos<<85<<"\t"<<1322<<"\t"<<86<<endl;
sdatos<<97<<"\t"<<235<<"\t"<<14<<endl;
sdatos.close();
}
void desplegardatos()
{
ifstream sdatos;
sdatos.open("C://Datos//archivo.txt");
int d1,d2,d3;
float sd2=0,sd3=0,mxg;
sdatos>>d1>>d2>>d3;
cout<<" No. de automovil | Millas recorridas | Galones utilizados | Millas por galon"<<endl;
while(!sdatos.eof())
{
sd2=sd2+d2;
sd3=sd3+d3;
mxg=((d2*1.0)/(d3*1.0));
cout<<setw(10)<<d1<<setw(20)<<d2<<setw(20)<<d3<<setw(20)
<<setiosflags(ios::fixed)<<setprecision(2)<<mxg<<setw(9)<<endl<<endl;
sdatos>>d1>>d2>>d3;
}
sdatos.close();
}
float sumamillas(int m[5])
{
int sumam=0,i=0;
for(i=0;i<5;i++)
{
sumam= sumam + m[i];
}
return sumam;
}
float sumagalones(int g[5])
{
int sumag=0,i=0;
for(i=0;i<5;i++)
{
sumag= sumag + g[i];
}
return sumag;
}
float prommxh(int m[5], int g[5] )
{
float prom=0,sumam=0,sumag=0;
for(int i=0; i<5; i++)
{
sumam = sumam + m[i];
sumag = sumag + g[i];
}
prom=sumam/sumag;
return prom;
}
int main()
{
int M[]={250,525,123,1322,235};
int G[]={19, 38, 6, 86, 14};
generardatos();
desplegardatos();
cout<<"la suma de las millas es: "<< sumamillas(M)<<endl;
cout<<"la suma de los galones usados es: "<< sumagalones(G)<<endl;
cout<<"El promedio de millas por hora es:"<< prommxh(M,G);
getch();
return 0;
}
Ejercicio 10
(Muñoz Organes Alejandro)
a. Cree un archivo de texto que contenga los siguientes datos (sin encabezados):
Nombre Tarifa Horas
Callaway,G. 6.00 40
Hanson,P. 5.00 48
Lasard,D. 6.50 35
Stillman,W. 8.00 50
b. Escriba un programa en C++ que use la información contenida en el archivo
creado en el ejercicio 10a para producir el siguiente reporte de pagos para cada
empleado:
Nombre Tarifaƒtarifa Horas Pago bruto Pago de tiempo extra Pago regular
El pago regular se calculará como cualesquiera horas trabajadas hasta 40 horas inclusive,multiplicadas por la tarifa de pago. El pago de tiempo extra se calculará como cualesquiera horas trabajadas que rebasen las 40 horas por una tarifa de pago de 1.5 multiplicada por la tarifa regular, y el pago bruto es la suma del pago regular y el pago de tiempo extra. Al final del reporte, el programa deberá desplegar los totales de las columnas de pago regular, de tiempo extra y bruto.
Codigo:
#include <fstream>
#include <conio.h>
#include <iomanip.h>
/*
Practica No.7 Problema No.10 Fecha:19/05/2015
Nombre: Muñoz Organes Alejandro No.Control: 14211337
*/
void captura()
{
ofstream file;
file.open("C://DATOS//reporte.txt");
for (int i=0;i<4;i++)
{
clrscr();
char nombre[30];
float tarifa;
int horas;
cout<<"***Datos personal "<<(i+1)<<"***"<<endl;
cout<<"Ingrese nombre: ";
cin>>nombre;
cout<<"Ingrese tarifa: ";
cin>>tarifa;
cout<<"Ingrese Horas: ";
cin>>horas;
file<<nombre<<" "<<tarifa<<" "<<horas<<endl;
}
file.close();
}
void lectura(char nombres[4][30],float tarifas[4],float horas[4])
{
ifstream file;
file.open("C://DATOS//reporte.txt");
for(int i =0;i<4;i++)
{
file>>nombres[i]>>tarifas[i]>>horas[i];
}
file.close();
}
float pagoEx(float horas,float tarifa)
{
float pago=0;
if(horas>40)
{
pago=(horas-40)*(1.5*tarifa);
}
return pago;
}
float pagoR(float horas,float tarifa)
{
float pago=0;
if(horas>40)
{
pago=40*tarifa;
}
else pago=horas*tarifa;
return pago;
}
void tabla(char nombres[4][30],float tarifas[4],float horas[4])
{
clrscr();
cout<<"Nombre | Tarifa | Horas | Pago Bruto | Pago T.Extra | Pago Regular\n\n";
float peTotal=0,pbTotal=0,prTotal=0;
for(int i=0 ;i<4;i++)
{
float ptExtra=pagoEx(horas[i],tarifas[i]);
float pregular=pagoR(horas[i],tarifas[i]);
float pagoBruto=ptExtra+pregular;
cout<<setiosflags(ios::left)<<setw(15)<<nombres[i]<<"| ";
cout<<setiosflags(ios::left)<<setw(8)<<tarifas[i]<<"| ";
cout<<setiosflags(ios::left)<<setw(6)<<horas[i]<<"| ";
cout<<setiosflags(ios::left)<<setw(11)<<pagoBruto<<"| ";
cout<<setiosflags(ios::left)<<setw(13)<<ptExtra<<"| ";
cout<<setiosflags(ios::left)<<setw(15)<<pregular<<endl<<endl;
peTotal+=ptExtra;
pbTotal+=pagoBruto;
prTotal+=pregular;
}
cout<<"Totales:"<<" | ";
cout<<setiosflags(ios::left)<<setw(11)<<pbTotal<<"| ";
cout<<setiosflags(ios::left)<<setw(13)<<peTotal<<"| ";
cout<<setiosflags(ios::left)<<setw(15)<<prTotal<<endl<<endl;
}
int main()
{
char nombres[4][30];
float tarifas[4],horas[4];
captura();
lectura(nombres,tarifas,horas);
tabla(nombres,tarifas,horas);
getch();
return 0;
}