Mauriciocaradenepe

viernes x2

Jun 15th, 2018
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. // EF_201502_Pregunta2.cpp : main project file.
  2.  
  3. #include <iostream>
  4. #include <conio.h>
  5.  
  6. using namespace System;
  7. using namespace std;
  8.  
  9. struct Empleado
  10. {
  11. int hor; //horas
  12. char ofi; //oficina
  13. int min; //minutos
  14. };
  15.  
  16. #define N 15
  17. void Genera_Arreglo(Empleado *Arr)
  18. {
  19. Random x; int aux;
  20. for (int i = 0; i < N; i++)
  21. {
  22. Arr[i].hor = x.Next(20, 51);
  23. Arr[i].min = x.Next(0, 181);
  24. aux = x.Next(0, 3);
  25. switch (aux)
  26. {
  27. case 0: Arr[i].ofi = 'C'; break;
  28. case 1: Arr[i].ofi = 'S'; break;
  29. case 2: Arr[i].ofi = 'L'; break;
  30. }
  31. }
  32. }
  33. void Imprime_Arreglo(Empleado * Arr)
  34. {
  35. cout << "horas" << '\t' << "oficina" << '\t' << "minuto" << endl;
  36. for (int i = 0; i < N; i++)
  37. cout << Arr[i].hor << '\t' << Arr[i].ofi << '\t' << Arr[i].min << endl;
  38. }
  39.  
  40. void Empleados_Mas_Tardones(Empleado * Arr)
  41. { //hallando la maxima tardanza
  42. int max = Arr[0].min;
  43. for (int i = 1; i < N; i++)
  44. if (Arr[i].min > max)
  45. max = Arr[i].min;
  46.  
  47. cout << "El codigo o codigos de los empleados mas tardones son:" << endl;
  48. for (int i = 0; i < N; i++)
  49. if (Arr[i].min == max) //comparando quienes tienen la maxima tardanza
  50. cout << i << " ";
  51. cout << endl;
  52. }
  53.  
  54. void promedio_de_horas_por_oficina(Empleado * Arr)
  55. {
  56. int sumS, sumC, sumL, C, S, L;
  57. sumS = sumC = sumL = C = S = L = 0;
  58. for (int i = 0; i < N; i++)
  59. switch (Arr[i].ofi)
  60. {
  61. case 'C':sumC += Arr[i].hor; C++; break;
  62. case 'S':sumS += Arr[i].hor; S++; break;
  63. case 'L':sumL += Arr[i].hor; L++; break;
  64. }
  65. if (C>0) cout << "Promedio de C :" << sumC / C << endl;
  66. if (S>0) cout << "Promedio de S :" << sumS / S << endl;
  67. if (L>0) cout << "Promedio de L :" << sumL / L << endl;
  68. }
  69.  
  70. void Empleados_Puntuales(Empleado * Arr)
  71. {
  72. cout << "Los datos de los empleados puntuales son:" << endl;
  73. for (int i = 0; i < N; i++)
  74. if (Arr[i].min == 0)
  75. cout << i << '\t' << Arr[i].hor << '\t' << Arr[i].ofi << endl;
  76. }
  77.  
  78. void ordena_arreglos(Empleado * Arr)
  79. {
  80. Empleado aux;
  81.  
  82. for (int i = 0; i<N - 1; i++)
  83. for (int j = i + 1; j<N; j++)
  84. if (Arr[i].ofi <Arr[j].ofi
  85. || Arr[i].ofi == Arr[j].ofi && Arr[i].min > Arr[j].min)
  86. {
  87. aux = Arr[i];
  88. Arr[i] = Arr[j];
  89. Arr[j] = aux;
  90. }
  91.  
  92. Imprime_Arreglo(Arr);
  93. }
  94. int main()
  95. {
  96. Empleado * Arr = new Empleado[N];
  97. Genera_Arreglo(Arr);
  98. Imprime_Arreglo(Arr);
  99. Empleados_Mas_Tardones(Arr);
  100. promedio_de_horas_por_oficina(Arr);
  101. Empleados_Puntuales(Arr);
  102. ordena_arreglos(Arr);
  103. _getch();
  104. return 0;
  105. }
Add Comment
Please, Sign In to add comment