Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // EF_201502_Pregunta2.cpp : main project file.
- #include <iostream>
- #include <conio.h>
- using namespace System;
- using namespace std;
- struct Empleado
- {
- int hor; //horas
- char ofi; //oficina
- int min; //minutos
- };
- #define N 15
- void Genera_Arreglo(Empleado *Arr)
- {
- Random x; int aux;
- for (int i = 0; i < N; i++)
- {
- Arr[i].hor = x.Next(20, 51);
- Arr[i].min = x.Next(0, 181);
- aux = x.Next(0, 3);
- switch (aux)
- {
- case 0: Arr[i].ofi = 'C'; break;
- case 1: Arr[i].ofi = 'S'; break;
- case 2: Arr[i].ofi = 'L'; break;
- }
- }
- }
- void Imprime_Arreglo(Empleado * Arr)
- {
- cout << "horas" << '\t' << "oficina" << '\t' << "minuto" << endl;
- for (int i = 0; i < N; i++)
- cout << Arr[i].hor << '\t' << Arr[i].ofi << '\t' << Arr[i].min << endl;
- }
- void Empleados_Mas_Tardones(Empleado * Arr)
- { //hallando la maxima tardanza
- int max = Arr[0].min;
- for (int i = 1; i < N; i++)
- if (Arr[i].min > max)
- max = Arr[i].min;
- cout << "El codigo o codigos de los empleados mas tardones son:" << endl;
- for (int i = 0; i < N; i++)
- if (Arr[i].min == max) //comparando quienes tienen la maxima tardanza
- cout << i << " ";
- cout << endl;
- }
- void promedio_de_horas_por_oficina(Empleado * Arr)
- {
- int sumS, sumC, sumL, C, S, L;
- sumS = sumC = sumL = C = S = L = 0;
- for (int i = 0; i < N; i++)
- switch (Arr[i].ofi)
- {
- case 'C':sumC += Arr[i].hor; C++; break;
- case 'S':sumS += Arr[i].hor; S++; break;
- case 'L':sumL += Arr[i].hor; L++; break;
- }
- if (C>0) cout << "Promedio de C :" << sumC / C << endl;
- if (S>0) cout << "Promedio de S :" << sumS / S << endl;
- if (L>0) cout << "Promedio de L :" << sumL / L << endl;
- }
- void Empleados_Puntuales(Empleado * Arr)
- {
- cout << "Los datos de los empleados puntuales son:" << endl;
- for (int i = 0; i < N; i++)
- if (Arr[i].min == 0)
- cout << i << '\t' << Arr[i].hor << '\t' << Arr[i].ofi << endl;
- }
- void ordena_arreglos(Empleado * Arr)
- {
- Empleado aux;
- for (int i = 0; i<N - 1; i++)
- for (int j = i + 1; j<N; j++)
- if (Arr[i].ofi <Arr[j].ofi
- || Arr[i].ofi == Arr[j].ofi && Arr[i].min > Arr[j].min)
- {
- aux = Arr[i];
- Arr[i] = Arr[j];
- Arr[j] = aux;
- }
- Imprime_Arreglo(Arr);
- }
- int main()
- {
- Empleado * Arr = new Empleado[N];
- Genera_Arreglo(Arr);
- Imprime_Arreglo(Arr);
- Empleados_Mas_Tardones(Arr);
- promedio_de_horas_por_oficina(Arr);
- Empleados_Puntuales(Arr);
- ordena_arreglos(Arr);
- _getch();
- return 0;
- }
Add Comment
Please, Sign In to add comment