martes, 7 de junio de 2016

Tercer parcial

Practica 8
Codigo
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<cstring>

using namespace std;

class figura
{
    protected:
          int base,h,l,hip;
          double area1,semi_p,area2;
    public:
          figura()
                                 {}
          void calcular_area(int altura,int b)
          {
          h=altura;
          base=b;
          h=(sqrt(3)*(l))/2;
          area1=(h*l)/2;
          }
          virtual void pinta()
                                 {
                                 cout<<"noj"<<endl;
                                 }
          virtual void muestra_Datos()
                                 {}

};



class triangulo:public figura
{
      private :
              double area;

      public:
      triangulo()
      {
          cout<<"TRIANGULO EQUILATERO"<<endl;
          cout<<"Ingresa lado : "<<endl;
          cin>>l;
      }
      void pinta()
      {
          cout<<"Lado : "<<l<<endl;
          h=(sqrt(3)*(l))/2;
          area1=(h*l)/2;
          }


      void muestra_Datos()
      {
             figura::muestra_Datos();
             cout<<"Altura: "<<h<<endl;
             cout<<"Area: "<<area1<<endl;
             }
      };



class triangulo_rec:public figura
{
      private :
              double area2;
      public:
      triangulo_rec()
      {
          cout<<endl<<"TRIANGULO RECTANGULO"<<endl;
            cout<<"Ingresa la 'base': "<<endl;
            cin>>base;
            cout<<"Ingresa la 'altura': "<<endl;
            cin>>h;
            cout<<"Ingresa la 'hipotenusa' : "<<endl;
            cin>>hip;
      }
      void pinta()
      {
          cout<<"Base:  "<<base<<endl;
          cout<<"Altura : "<<h<<endl;
          cout<<"Hipotenusa :   "<<hip<<endl;

          semi_p=(h+base+hip)/2;
          area2=sqrt(semi_p*(semi_p-base)*(semi_p-h)*(semi_p-hip));

          }
      void muestra_Datos()
      {
             figura::muestra_Datos();
             cout<<"Semiperimetro: "<<semi_p<<endl;
             cout<<"Area: "<<area2<<endl;
             }
      };
      int main()
 {
     figura *area_t;
     area_t=new triangulo();
     area_t->pinta();
     area_t->muestra_Datos();
     area_t=new triangulo_rec();//va a adoptar la forma del triangulo rectangulo
     area_t->pinta();
     area_t->muestra_Datos();
     system("pause>null");

}




Practica 9
Código
#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;

template<class TG0>
TG0 raiz(TG0 num1)
{
    if(0>num1)
                {
                cout<<"No exite su raiz en los reales"<<endl;return 1;
                }
    else
                {
                return sqrt(num1);
                }}
    void raiz()
                {
    int num1;
    double num11;
    char num111;
    cout<<"Ingresa 1 numero 'enteros'"<<endl;
    cin>>num1;
    cout<<"La raiz es : "<<raiz(num1)<<endl;
    cout<<"Ingresa 1 numero 'doubles'"<<endl;
    cin>>num11;
    cout<<"La raiz es : "<<raiz(num11)<<endl;
                }


template<class TG1>
TG1 mayor(TG1 num1,TG1 num2)
{
    if(num1>num2)
                {
                return num1;
                }
    else
                {
                return num2;
                }}
    void maximos()
                {
    int num1,num2;
    double num11,num12;
    char num111,num112;
    cout<<"Ingresa 2 numeros 'enteros'" <<endl;
    cin>>num1>>num2;
    cout<<"El numero mayor es : "<<mayor(num1,num2)<<endl;
    cout<<"Ingresa 2 numeros 'doubles'"<<endl;
    cin>>num11>>num12;
    cout<<"El numero mayor es : "<<mayor(num11,num12)<<endl;
                }

template <class TG2>
class matriz
{
   int filas,columnas;
    TG2** matrizbase0=NULL;
    TG2** matrizbase1=NULL;
    TG2** matrizbase2=NULL;
public:
    matriz(){}
    void pide()
                {
    cout<<"Ingresa numero de filas : ";
    cin>>filas;
    cout<<"Ingresa numero de columnas : ";
    cin>>columnas;
  // Generando matriz dinamica
    matrizbase0 =new TG2* [filas];
    matrizbase1 =new TG2* [filas];
    matrizbase2 =new TG2* [filas];
      for(int i=0;i<filas;i++)
                  {
            matrizbase0[i] = new TG2[columnas];
            matrizbase1[i] = new TG2[columnas];
            matrizbase2[i] = new TG2[columnas];           
                  }
  //Ingresando datos m1
     cout<<"Ingresa datos para la matriz 1"<<endl;
          for(int f=0;f<filas;f++)
                                 {
                for(int c=0;c<columnas;c++)
                                                               {
                    cout<<"Valor para la posicion  ["<<f+1<<" , "<<c+1<<"]: ";
                    cin>>matrizbase0[f][c];
                                                                              }}
   //Ingresando datos m2
   cout<<"Ingresa datos para la matirz 2"<<endl;
                      for(int f=0;f<filas;f++)
                                                                                {
                for(int c=0;c<columnas;c++)
                                                               {
                    cout<<"Valor para la posicion  ["<<f+1<<" , "<<c+1<<"]: ";
                    cin>>matrizbase1[f][c];
                                                                              }}
}
    void muestra()
                {
        cout<<"Mostrando datos"<<endl;
        cout<<"Matriz 1"<<endl;
        for(int f=0;f<filas;f++)
                               {
            for(int c=0;c<columnas;c++)
                                               {
                cout<<matrizbase0[f][c];
                cout<<"\t";
                                                               }
                               }
                               cout<<endl;
         cout<<"Matriz 2"<<endl;
        for(int f=0;f<filas;f++)
                               {
            for(int c=0;c<columnas;c++)
                                               {
                cout<<matrizbase1[f][c];
                cout<<"\t";
                                                               }
                   }
        cout<<"La suma de las matrices es : "<<endl;
                for(int f=0;f<filas;f++)
                                                               {
            for(int c=0;c<columnas;c++)
                                               {
                cout<<matrizbase2[f][c];
                cout<<"\t";
                                                               }
                               }
    }
    void suma()
                {
          for(int f=0;f<filas;f++)
                                 {
            for(int c=0;c<columnas;c++)
                                               {
        matrizbase2[f][c]=matrizbase0[f][c]+matrizbase1[f][c]  ;
                cout<<"\t";
                                                               }
        cout<<endl;
                               }
    }
};
template <class TG3>
class vector
{
   int tam;
    TG3* vector0=NULL;
    TG3* vector1=NULL;
    TG3* vector2=NULL;
public:
    vector(){}
    void pide()
                {
    cout<<"Ingresa tamanio ";
    cin>>tam;
  // Generando vector dinaico
    vector0 =new TG3 [tam];
    vector1 =new TG3 [tam];
    vector2 =new TG3 [tam];

  //Ingresando datos v1
     cout<<"Ingresa datos para el vector 1"<<endl;
          for(int t=0;t<tam;t++)
                                 {
                    cout<<"Valor para la posicion  ["<<t+1<<"]: ";
                    cin>>vector0[t];
                                 }
   //Ingresando datos v2
   cout<<"Ingresa datos para el vector 2"<<endl;
          for(int t=0;t<tam;t++)
                                 {
                    cout<<"Valor para la posicion  ["<<t+1<<"]: ";
                    cin>>vector1[t];
                                 }
}
    void muestra()
                {
        cout<<"Mostrando datos"<<endl;
         cout<<"Vector 1"<<endl;
          for(int t=0;t<tam;t++)
                                 {
                    cout<<vector0[t]<<"  ";
                    cout<<"\t";
                                                                              }
                               cout <<endl;
         cout<<"Vector 2"<<endl;
          for(int t=0;t<tam;t++)
                                 {
                    cout<<vector1[t]<<"  ";
                    cout<<"\t";
                                 }
       cout<<endl;
        cout<<"La suma de los vectores es :  "<<endl;
          for(int t=0;t<tam;t++)
                                 {
                    cout<<vector2[t]<<"  ";
        cout<<"\t";
                               }
    }

    void suma()
                {
          for(int t=0;t<tam;t++)
                                 {
                    vector2[t]=vector0[t]+vector1[t];
        cout<<endl;
                               }
    }
};
void vec()
{
    int op1;
    vector<int> obj10;
    vector<char> obj12;
    vector<double> obj11;
    vector<string> obj13;
    do{
        cout<<"1. Vector con 'enteros'"<<endl;
                               cout<<"2. Vector con 'char'"<<endl;
                               cout<<"3. Vector con 'double'"<<endl;
                               cout<<"4. Vector con 'string'"<<endl;
                               cout<<"5. Regresar"<<endl;
                               cout<<"Ingresa una opcion:  ";
        cin>>op1;
        switch(op1)
                               {
    case 1:
system("cls");
cout<<"Vector con enteros "<<endl;
    obj10.pide();
    obj10.suma();
    obj10.muestra();
system("pause");
system("cls");
    break;
case 2:
system("cls");
cout<<"Vector con char "<<endl;
    obj12.pide();
    obj12.suma();
    obj12.muestra();
system("pause");
system("cls");
    break;
case 3:
system("cls");
cout<<"Vector con double "<<endl;
    obj11.pide();
    obj11.suma();
    obj11.muestra();
system("pause");
system("cls");
    break;
case 4:
system("cls");
cout<<"Vector con string "<<endl;
      obj13.pide();
      obj13.suma();
      obj13.muestra();
system("pause");
system("cls");
    break;
case 5:
    cout<<"Regresando al menu principal "<<endl;
system("pause");
    break;
default:
 cout<<"Opcion incorrecta"<<endl;
 system("pause");
 system("cls");
    }
}while(op1!=5);
}
void mat ()
{
    int op1;
    matriz<int> obj0;
    matriz<char> obj2;
    matriz<double> obj1;
    matriz<string> obj3;
    do{
        cout<<"1. Matriz con 'enteros'"<<endl;
                               cout<<"2. Matriz con 'char'"<<endl;
                               cout<<"3. Matriz con 'double'"<<endl;
                               cout<<"4. Matriz con 'string'"<<endl;
                               cout<<"5. Regresar "<<endl;
                               cout<<"Ingresa una opcion:  ";
        cin>>op1;
        switch(op1){
    case 1:
system("cls");
cout<<"Matriz con enteros "<<endl;
    obj0.pide();
    obj0.suma();
    obj0.muestra();
system("pause");
system("cls");
    break;
case 2:
system("cls");
cout<<"Matriz con char "<<endl;
    obj2.pide();
    obj2.suma();
    obj2.muestra();
system("pause");
system("cls");
    break;
case 3:
system("cls");
cout<<"Matriz con double "<<endl;
    obj1.pide();
    obj1.suma();
    obj1.muestra();
system("pause");
system("cls");
    break;
case 4:
system("cls");
cout<<"Matriz con string "<<endl;
    obj3.pide();
    obj3.suma();
    obj3.muestra();
system("pause");
system("cls");
    break;
case 5:
    cout<<"Regresando al menu principal "<<endl;
system("pause");
    break;
default:
 cout<<"Opcion incorrecta "<<endl;
 system("pause");
 system("cls");
    }
}while(op1!=5);
}

int main()
{
    int op;

    do{
cout<<"Bienvenido"<<endl;
cout<<"1. Comparar mayor y menor "<<endl;
cout<<"2. Raiz"<<endl;
cout<<"3. Vector"<<endl;
cout<<"4. Matriz"<<endl;
cout<<"5. Salir"<<endl;
cout<<"Ingresa una opcion: ";
    cin>>op;
    switch(op){
case 1:
system("cls");
    maximos();
system("pause");
system("cls");
    break;
case 2:
system("cls");
    raiz();
system("pause");
system("cls");
    break;
case 3:
system("cls");
    vec();
system("pause");
system("cls");
    break;
case 4:
system("cls");
    mat();
system("pause");
system("cls");
    break;
case 5:
    cout<<"Hasta luego "<<endl;
    system("pause");
    break;
default:
    cout<<"No es una opcion correcta"<<endl;
    system("pause");
    system("cls");
    }
}while(op!=5);
return 0;
}

Segundo parcial

Practica 4 “Empleado”
Programa que pedirá ingresar a los empplados, y mediante un menú desplegara lo siguiente: reporte de los empleados, el reporte de los empleados según su categoría y departamento. Calculara el sueldo según la categoría y las horas trabajadas, va a hacer una búsqueda según el ID del empleado y calculara el promedio total de las horas trabajadas.
Código
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <cstring>

using namespace std;

class empleado
{
                private:
                               string Nombre, RFC, Departamento;
                               int Edad, HrsTr, Hrs_Ext, Categoria, Sueldo, Id_Empleado;
                               empleado *Apuntador;
                              
                public:
                               empleado();
                               void alta();
                               void reporte();
                               void reporte_cat(int Cat);
                               void reporte_dep(string Dept);
                               void busqueda(int ID);
                               void sueldo();
                               float promedio(float Total, float Promedio, int n);
                              
};

empleado::empleado()
{
                Nombre=" ";
                RFC=" ";
                Departamento=" ";
                Edad=0;
                HrsTr=0;
                Hrs_Ext=0;
                Categoria=0;
                Sueldo=0;
                Id_Empleado=0;
}

void empleado::alta()
{
                fflush(stdin);
                cout<<"Ingresar nombre: "<<endl;
                getline(cin, Nombre);
                cout<<"Ingresar la ID del empleado: "<<endl;
                cin>>Id_Empleado;
                cout<<"Edad: "<<endl;
                cin>>Edad;
                fflush(stdin);
                cout<<"RFC: "<<endl;
                getline(cin, RFC);
                cout<<"Categoria (1, 2 o 3): "<<endl;
                cin>>Categoria;
                if(Categoria>3)
                               {
                                               cout<<"Solo Categoria 1, 2 o 3: ";
                                               cin>>Categoria;
                               }
               
                fflush(stdin);
                cout<<"Departamento (Ventas, Compras, MKT):  "<<endl;
                getline(cin, Departamento);
                cout<<"Horas trabajadas: "<<endl;
                cin>>HrsTr;
               
                if(HrsTr>8)
                               {
                                               cout<<"Se excede el limite de horas laborales (8hrs). Volver a ingresar horas laborales: ";
                                               cin>>HrsTr;
                               }
                              
                               cout<<"Horas extras: ";
                               cin>>Hrs_Ext;
                               if(Hrs_Ext>5)
                               {
                                               cout<<"Se excede el limite de Horas extras (5hrs). Volver a ingresar horas extras: ";
                                               cin>>Hrs_Ext;
                               }
}
void empleado::reporte()
{
                                cout<<"ID del empleado: "<<Id_Empleado<<endl;
                                cout<<"Nombre: "<<Nombre<<endl;
                               cout<<"Edad: "<<Edad<<endl;
                               cout<<"RFC: "<<RFC<<endl;
                               cout<<"Categoria: "<<Categoria<<endl;
                               cout<<"Departamento: "<<Departamento<<endl;
                               cout<<"Horas de trabajo: "<<HrsTr<<endl;
                               cout<<"Horas extras: "<<Hrs_Ext<<endl;
                               cout<<endl;
}

void empleado::reporte_cat(int Cat)
{
                if (Categoria==Cat)
                {
                               cout<<"ID del empleado: "<<Id_Empleado<<endl;
                                cout<<"Nombre: "<<Nombre<<endl;
                               cout<<"Edad: "<<Edad<<endl;
                               cout<<"RFC: "<<RFC<<endl;
                               cout<<"Categoria: "<<Categoria<<endl;
                               cout<<"Departamento: "<<Departamento<<endl;
                               cout<<"Horas de trabajo: "<<HrsTr<<endl;
                               cout<<"Horas extras: "<<Hrs_Ext<<endl;
                               cout<<endl;
                }                             
}
void empleado::reporte_dep(string Dept)
{
                if (Departamento==Dept)
                {
                               cout<<"ID del empleado: "<<Id_Empleado<<endl;
                                cout<<"Nombre: "<<Nombre<<endl;
                               cout<<"Edad: "<<Edad<<endl;
                               cout<<"RFC: "<<RFC<<endl;
                               cout<<"Categoria: "<<Categoria<<endl;
                               cout<<"Departamento: "<<Departamento<<endl;
                               cout<<"Horas de trabajo: "<<HrsTr<<endl;
                               cout<<"Horas extras: "<<Hrs_Ext<<endl;
                               cout<<endl;
                }                             
}
void empleado::busqueda(int ID)
{
                if (Id_Empleado==ID)
                {
                               cout<<"ID del empleado: "<<Id_Empleado<<endl;
                                cout<<"Nombre: "<<Nombre<<endl;
                               cout<<"Edad: "<<Edad<<endl;
                               cout<<"RFC: "<<RFC<<endl;
                               cout<<"Categoria: "<<Categoria<<endl;
                               cout<<"Departamento: "<<Departamento<<endl;
                               cout<<"Horas de trabajo: "<<HrsTr<<endl;
                               cout<<"Horas extras: "<<Hrs_Ext<<endl;
                               cout<<endl;
                }                             
}
void empleado::sueldo()
{
                if (Categoria==1)
                {
                               Sueldo=(60*HrsTr)+(120*Hrs_Ext);
                }
                if (Categoria==2)
                {
                               Sueldo=(100*HrsTr)+(200*Hrs_Ext);
                }
                if (Categoria==3)
                {
                               Sueldo=(120*HrsTr)+(240*Hrs_Ext);
                }
                cout<<"ID del empleado: "<<Id_Empleado<<endl;
                                cout<<"Nombre: "<<Nombre<<endl;
                               cout<<"Edad: "<<Edad<<endl;
                               cout<<"RFC: "<<RFC<<endl;
                               cout<<"Categoria: "<<Categoria<<endl;
                               cout<<"Departamento: "<<Departamento<<endl;
                               cout<<"Horas de trabajo: "<<HrsTr<<endl;
                               cout<<"Horas extras: "<<Hrs_Ext<<endl;
                               cout<<"Sueldo: "<<"$"<<Sueldo<<endl;
                               cout<<endl;
}

float empleado::promedio(float Total, float Promedio, int n)
{
               
                for (int i=0; i<n; i++)
                {
    Total+=HrsTr;
    }
                Promedio=Total/n;

                //cout<<"Promedio de horas trabajadas: "<<Promedio<<endl;
                return(Promedio);
                system("pause>null");
}

void SWITCH()
{
                cout<<"ELIJA ALGUNA OPCION DEL MENU"<<endl;
               
                cout<<"     MENU    "<<endl;
                cout<<"1.Reporte de empleados."<<endl;
                cout<<"2.Reporte de empleados segun categoria."<<endl;
                cout<<"3.Reporte de empleados segun departamento."<<endl;
                cout<<"4.Calcular el sueldo segun categoria y horas trabajadas."<<endl;
                cout<<"5.Hacer busqueda de empleados segun ID."<<endl;
                cout<<"6.Calcular promedio total de horas trabajadas."<<endl;
                cout<<"7.Salir. "<<endl;
}

void MENU ()
{
                int opciones, n, Cat, ID;
                float Total, Promedio;
                string Dept;
               
                cout<<"Numero de empleados: "<<endl;
                cin>>n;
               
                empleado *Apuntador=new empleado[n];
                cout<<"Ingrese los datos de los empleados: "<<endl;
               
                for(int i=0;i<n;i++)
                {
                               cout<<"  EMPLEADO "<<i+1<<": "<<endl;
                               Apuntador[i].alta();
                }
                system ("PAUSE>null");
                system ("cls");
               
                while (1)
{
                SWITCH();
                cout<<"Ingresar una opcion: "<<endl;
                cin>>opciones;
               
                switch (opciones)
                {
                               case 1: 
                               cout<<"  Reporte de empleados: "<<endl;
                                               for (int i=0;i<n;i++)
                                               {
                                                               cout<<"Empleado "<<i+1<<":"<<endl;
                                                               Apuntador[i].reporte();
                                               }                             
                                               system ("PAUSE>null");
                                               system ("cls");
                               break;
                              
                               case 2:
                                               cout<<"Reporte por categoria: "<<endl;
                                               cout<<"Ingrese la categoria que desea:  "<<endl;
                                               cin>>Cat;
                                               cout<<"Categoria "<<Cat<<":"<<endl;
                                               for (int i=0;i<n;i++)
                                               {
                                                               Apuntador[i].reporte_cat(Cat);
                                               }
                                               system ("PAUSE>null");
                                               system ("cls"); 
                               break;
                              
                              
                               case 3:
            cout<<"Reporte por departamento: "<<endl;
                                               cout<<"Ingresar el departamento deseado:  "<<endl;
                                               fflush(stdin);    
                                               getline(cin, Dept);
                                               cout<<endl<<"Departamento: "<<Dept<<":"<<endl;
                                               for (int i=0;i<n;i++)
                                               {
                                                               Apuntador[i].reporte_dep(Dept);
                                               }             
                                               system ("PAUSE");
                                               system ("cls");
                               break;
                              
                              
                               case 4:
                               cout<<"Sueldos: "<<endl;
                                               for (int i=0;i<n;i++)
                                               {
                                                               Apuntador[i].sueldo();
                                               }
                                               system ("PAUSE");
                                               system ("cls");
                               break;
                              
                              
                               case 5:
                                               cout<<"Busqueda de empleado por ID: "<<endl;
                               cout<<"Ingrese la ID del empleado"<<endl;
                                               fflush(stdin);    
                                               cin>>ID;
                                              
                                               for (int i=0;i<n;i++)
                                               {
                                                               Apuntador[i].busqueda(ID);
                                               }             
                                               system ("PAUSE");
                                               system ("cls");
                                              
                               case 6:
                                               cout<<"Promedio de horas trabajadas: "<<endl;
                                               //            for(int i=0;i<n;i++)
                //{
                               //Total+=Apuntador->HrsTr;
                               cout<<Apuntador->promedio(Total, Promedio, n);                      
               
                system("pause>null");
                                              
                                               break;
                                              
                               case 7:
                                               cout<<"Terminando"<<endl;
                                               exit(1);
                                               system ("PAUSE");
                               system ("cls");
                               break;
                              
                               default: cout<<"Lo ingresado no corresponde a alguna opcion"<<endl;
                               system ("PAUSE");
                               system ("cls");
        break;
                }
}
}

int main()
{
               
                MENU();
                system ("PAUSE");
                return 0;

}