miércoles, 4 de junio de 2014

Practica No. 7



1. 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                  1 322                     86

      97                    235                     14

Codigo:


#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
int main()
{  
int numero, millas, galones;  
float promedio;  
string nombre_archivo = "C:\\problema_1.txt";  
ifstream entrada;  
entrada.open(nombre_archivo.c_str());  
if(entrada.fail())  
{  
cout << "El archivo no se abrio";  
exit(1);  
}  
while(!entrada.eof())  
{  
entrada >> numero >> millas >> galones;  
promedio = millas/galones;  
cout << "Num. de automovil: " << numero << endl << "Millas recorridas: " << millas << endl << "Galones utilizados: " << galones << endl << "Millas por galon: " << promedio << endl << endl;  
}  
return 0;
}

2. Cree un archivo de texto con los siguientes datos (sin los encabezados):

Número de parte Cantidad inicial Cantidad vendida Cantidad mínima

       QA310           95               47              50
       CM145          320              162             200
       MS514           34               20              25

       EN212          163              150             160

Escriba un programa en C++ para crear un reporte de inventario basado en los datos en el archivo creado en el ejercicio 9a. El despliegue deberá consistir en el número de parte, balance actual y la cantidad que es necesaria para mantener el inventario en el nivel mínimo.

Codigo:

#include <iostream>
#include <conio.h>
#include <fstream>
#include <iomanip>
#include <stdlib.h>

using namespace std;

void leer_datos(char nombre[4][20], int ci[4], int cv[4], int cm[4]);
void operacion(char nombre[4][20], int ci[4], int cv[4], int cm[4],int valance[4]);
void enviar_datos(char nombre[4][20], int ci[4], int cv[4], int cm[4],int valance[4]);

int main()
{
 char nombre[4][20];
 int ci[4],cv[4],cm[4],valance[4];

 leer_datos(nombre,ci,cv,cm);
 operacion(nombre,ci,cv,cm,valance);
 enviar_datos(nombre,ci,cv,cm,valance);


getch();
return 0;
}


void leer_datos(char nombre[4][20], int ci[4], int cv[4], int cm[4])
{

ifstream archivo_entr;
int i;


archivo_entr.open("C:\\Users\\K4rlos\\Documents\\Datos (2).txt");
for(i=0;i<4;i++)
{
archivo_entr>>nombre[i]>>ci[i]>>cv[i]>>cm[i];
}
}


void operacion(char nombre[4][20], int ci[4], int cv[4], int cm[4],int valance[4])
{
int i;

        for(i=0; i<4; i++)
        {

valance[i]=ci[i]-cv[i];
}
}

void enviar_datos(char nombre[4][20], int ci[4], int cv[4], int cm[4],int valance[4])
{
int i;
cout<<"Datos inicial de la tabla"<<endl;
cout<<" "<<endl;
     for(i=0; i<4; i++)
     {

   cout<<nombre[i]<<setw(4)<<ci[i]<<setw(4)<<cv[i]<<setw(4)<<cm[i]<<endl;

     }

cout<<" "<<endl;
cout<<"El valance actual de la tabla es: "<<endl;
cout<<" "<<endl;
cout<<"QA310   CM145   MS514   EN212"<<endl;
cout<<" "<<endl;

     for(i=0; i<4; i++)
     {
     cout<<valance[i]<<setw(9);
     }

cout<<" "<<endl;
cout<<" "<<endl;
     for(i=0; i<4; i++)
     {
     if(valance[i]<cm[i])
        cout<<nombre[i]<<"  "<<"esta debajo de la cantidad minima"<<endl;
     else{
        cout<<nombre[i]<<"  "<<"se encuentra encima o igual que la cantidad minima"<<endl;
     }
     }

}


3. 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

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:

Codigo:

#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <iomanip>

using namespace std;


void obtener_datos(char nombre[4][17], float tarifa[4], float horas[4]);
void calcular(float tarifa[4], float horas[4], float Pregular[4], float Ptextra[4], float Pbruto[4]);
float regular(float Pregular[4], float Ptextra[4], float Pbruto[4]);
float extra(float Pregular[4], float Ptextra[4], float Pbruto[4]);
float bruto(float Pregular[4], float Ptextra[4], float Pbruto[4]);
void enviar_datos(char nombre[4][17], float tarifa[4], float horas[4], float Pregular[4], float Ptextra[4], float Pbruto[4], float R, float E, float B);


int main()
{
    char nombre[4][17];
    float tarifa[4];
    float horas[4];
    float Pregular[4];
    float Ptextra[4];
    float Pbruto[4];
    float R,E,B;

        obtener_datos(nombre,tarifa,horas);
        calcular(tarifa,horas,Pregular,Ptextra,Pbruto);
        R = regular(Pregular,Ptextra,Pbruto);
        E = extra(Pregular,Ptextra,Pbruto);
        B = bruto(Pregular,Ptextra,Pbruto);
        enviar_datos(nombre,tarifa,horas,Pregular,Ptextra,Pbruto,R,E,B);

    getch();
    return 0;
}

void obtener_datos(char nombre[4][17], float tarifa[4], float horas[4])
{
    ifstream entrada;
    int i;
    entrada.open("C:\\Users\\marco_000\\Documents\\Segundo semestre\\Programación\\Practica 7\\3\\Informacion.txt");

    for(i=0; i<4; i++)
        {
            entrada>>nombre[i]>>tarifa[i]>>horas[i];
        }
}

void calcular(float tarifa[4], float horas[4],  float Pregular[4], float Ptextra[4], float Pbruto[4])
{
    int i;

        for(i=0; i<4; i++)
        {
            if(horas[i] <= 40)
            {
                Pregular[i] = tarifa[i]*horas[i];
                Ptextra[i] = 0;
            }
            if(horas[i] > 40)
            {
                Pregular[i] = tarifa[i]*40;
                Ptextra[i] = (horas[i]-40)*((1.5)*tarifa[i]);
            }

            Pbruto[i] = Pregular[i] + Ptextra[i];
        }
}

float regular(float Pregular[4], float Ptextra[4], float Pbruto[4])
{
    int i;
    float Tregular = 0;

        for(i=0; i<4; i++)
        {
            Tregular = Pregular[i] + Tregular;
        }

    return Tregular;
}

float extra(float Pregular[4], float Ptextra[4], float Pbruto[4])
{
    int i;
    float Textra = 0;

        for(i=0; i<4; i++)
        {
            Textra = Ptextra[i] + Textra;
        }

    return Textra;
}

float bruto(float Pregular[4], float Ptextra[4], float Pbruto[4])
{
    int i;
    float Tbruto = 0;

        for(i=0; i<4; i++)
        {
            Tbruto = Pbruto[i] + Tbruto;
        }

    return Tbruto;
}
void enviar_datos(char nombre[4][17], float tarifa[4], float horas[4], float Pregular[4], float Ptextra[4], float Pbruto[4], float R, float E, float B)
{
    ofstream salida;
    int i;
    salida.open("C:\\Users\\marco_000\\Documents\\Segundo semestre\\Programación\\Practica 7\\3\\Resultado.txt");


        //Programa
        cout<<"\n\n  Nombre     Tarifa   Horas   Pago bruto   Pago de tiempo extra   Pago regular\n"<<endl;
        for(i=0; i<4; i++)
        {
            cout<<setw(11)<<nombre[i]<<setw(6)<<tarifa[i]<<setw(8)<<horas[i]<<setw(12)<<Pbruto[i]<<setw(16)<<Ptextra[i]<<setw(20)<<Pregular[i]<<endl;
        }
        cout<<"\n                  Totales:     "<<B<<"             "<<E<<"               "<<R<<endl;

        //Archivo
        salida<<"\n\n  Nombre     Tarifa   Horas   Pago bruto   Pago de tiempo extra   Pago regular\n"<<endl;
        for(i=0; i<4; i++)
        {
            salida<<setw(11)<<nombre[i]<<setw(6)<<tarifa[i]<<setw(8)<<horas[i]<<setw(12)<<Pbruto[i]<<setw(16)<<Ptextra[i]<<setw(20)<<Pregular[i]<<endl;
        }
        salida<<"\n                  Totales:     "<<B<<"             "<<E<<"               "<<R<<endl;


}

4. Almacene los siguientes datos en un archivo:
5 96 87 78 93 21 4 92 82 85 87 6 72 69 85 75 81 73

b. Escriba un programa en C++ para calcular y desplegar el promedio de cada grupo de números en el archivo creado en el ejercicio 11a. Los datos están ordenados en el archivo de modo que cada grupo de números esté precedido por el número de elementos de datos en el grupo. Por tanto, el primer número en el archivo, 5, indica que los siguientes cinco números deberán agruparse juntos. El número 4 indica que los siguientes cuatro números son un grupo, y el 6 indica que los últimos seis números son un grupo. (Sugerencia: Use un ciclo anidado. El ciclo
exterior deberá terminar cuando se haya encontrado el final del archivo.)

Codigo:


#include <iostream>
#include <fstream>
#include <conio.h>
#include <math.h>

using namespace std;

void escribir_archivo(int n);
void leer_archivo();

int main()
{
    int n;
    cout<<"Cuantos datos desea escribir?, (recuerde que el primer valor es el numero de elementos a los que se le considerara un grupo) ";
    cin>>n;

    escribir_archivo(n);
    leer_archivo();

    getch();
    return 0;
}

void escribir_archivo(int n)
{
    ofstream archivo;
    archivo.open("C://archivo.txt");
    int i,dato;
    for(i=0; i<n; i++)
    {
        if(i<(n-1))
        {
            cout<<"Dato No. "<<i+1<<": ";
            cin>>dato;
            archivo<<dato<<endl;
        }
        else
        {
            cout<<"Dato No. "<<i+1<<": ";
            cin>>dato;
            archivo<<dato;
        }

    }

}

void leer_archivo()
{
    ifstream archivo;
    archivo.open("C://archivo.txt");
    int r=0,calif,c,n;
    float promedio,result;

    while(!archivo.eof())
    {
        archivo>>n;
        promedio=0;
        calif=0;
        for(c=0; c<n; c++)
        {
            cout<<endl;
            archivo>>calif;
            cout<<"la calificacion "<<c+1<<": "<<calif<<" ";
            promedio=(promedio+calif);
        }
        result=(promedio/n);
        cout<<"\n\nEl promedio del grupo "<<r+1<<" es: "<<result;
        r++;
        cout<<endl;
    }

    archivo.close();
}

No hay comentarios:

Publicar un comentario