Taller Semana 14
unknown
plain_text
3 years ago
7.1 kB
18
Indexable
/*
#include <iostream>
#include <conio.h>
using namespace std;
using namespace System;
struct Llamada {
int oficina;
int minutos;
int tipo_llamada;
};
void GenerarLlamadas(Llamada* arrLlamadas, int N) {
Random r;
//recorre el arreglo llamadas
for (int i = 0; i < N; i++) {
arrLlamadas[i].oficina = r.Next(1, 4);
arrLlamadas[i].minutos = r.Next(1, 31);
arrLlamadas[i].tipo_llamada = r.Next(1, 4);
}
}
void Imprimir(Llamada* arrLlamadas, int N) {
cout << "Oficina\t" << "| Cant. Minutos\t" << "| Tipo de llamada|\n";
cout << "-----------------------------------------|\n";
for (int i = 0; i < N; i++) {
cout <<" " << arrLlamadas[i].oficina << "\t| " << arrLlamadas[i].minutos << "\t\t| " << arrLlamadas[i].tipo_llamada << endl;
cout << "-----------------------------------------|\n";
}
}
void OficinasconMayorMinutos(Llamada* arrLlamadas, int N) {
//sumatorias de llamadas 1, 2, 3
//1 Logistica
//2 Recursos Humanos
//3 Ventas
int arrMinutosxOficina[3] = { 0,0,0 };
int arrMinutosOficinaVentasxTipoLlamada[3] = { 0,0,0 };
float contadorxOficinaVentas[3] = { 0,0,0 };
cout << "*************" << endl;
for (int i = 0; i < N; i++) {
switch (arrLlamadas[i].oficina) {
case 1:
arrMinutosxOficina[0] = arrMinutosxOficina[0] + arrLlamadas[i].minutos;
break;
case 2:
arrMinutosxOficina[1] += arrLlamadas[i].minutos;
break;
case 3:
arrMinutosxOficina[2] += arrLlamadas[i].minutos;
//Calcular el nro de llamadas por tipo de llamadas en la Oficina Ventas
switch (arrLlamadas[i].tipo_llamada) {
case 1:
arrMinutosOficinaVentasxTipoLlamada[0] += arrLlamadas[i].minutos;
contadorxOficinaVentas[0]++;
break;
case 2:
arrMinutosOficinaVentasxTipoLlamada[1] += arrLlamadas[i].minutos;
contadorxOficinaVentas[1]++;
break;
case 3:
arrMinutosOficinaVentasxTipoLlamada[2] += arrLlamadas[i].minutos;
contadorxOficinaVentas[2]++;
break;
}
break;
}
}
cout << "La oficina Logistica tiene: " << arrMinutosxOficina[0] << " minutos en total" << endl;
cout << "La oficina Recursos Humanos tiene: " << arrMinutosxOficina[1] << " minutos en total" << endl;
cout << "La oficina Ventas tiene: " << arrMinutosxOficina[2] << " minutos en total" << endl;
int mayor_minutos;
//recorrer arrMinutosxOficina para calcular el maximo de minutos
for (int i = 0; i < 3; i++) {
if (i == 0) {
mayor_minutos = arrMinutosxOficina[0]; // suponiendo que oficina 1 tiene mayor minutos
}
else {
if (arrMinutosxOficina[i] > mayor_minutos) {
mayor_minutos = arrMinutosxOficina[i]; // guardamos el valor de minutos de la oficina con mayor minutos
}
}
}
cout << "Las oficinas con " << mayor_minutos << " minutos son:" << endl;
//Se los minutos de cada oficina con el maximo de minutos (mayor_minutos)
//Si es igual a mayor_minutos se imprime el nombre de la oficina
for (int i = 0; i < 3; i++) {
if (arrMinutosxOficina[i] == mayor_minutos) {
switch (i) {
case 0:
cout << "Logistica" << endl;
break;
case 1:
cout << "Recursos Humanos" << endl;
break;
case 2:
cout << "Ventas" << endl;
break;
}
}
}
cout << endl;
cout << "La Oficina Ventas tiene: " << endl;
cout << "En Local un promedio de " << arrMinutosOficinaVentasxTipoLlamada[0] / contadorxOficinaVentas[0] << " minutos\n";
cout << "En Celular un promedio de " << arrMinutosOficinaVentasxTipoLlamada[1] / contadorxOficinaVentas[1] << " minutos\n";
cout << "En Internacional un promedio de " << arrMinutosOficinaVentasxTipoLlamada[2] / contadorxOficinaVentas[2] << " minutos\n";
}
void MontoTotalxTipoLlamada(Llamada* arrLlamadas, int N) {
float montototalxtipo_llamada[3] = { 0,0,0 };
//Tarifas
//1->Local -> 0,30
//2->Celular -> 0.80
//3->Internacional ->1.50
cout << "**************" << endl;
for (int i = 0; i < N; i++) {
switch (arrLlamadas[i].tipo_llamada) {
case 1:
montototalxtipo_llamada[0] = montototalxtipo_llamada[0] + (0.30 * arrLlamadas[i].minutos);
break;
case 2:
montototalxtipo_llamada[1] += (0.80 * arrLlamadas[i].minutos);
break;
case 3:
//montototalxtipo_llamada[0] = montototalxtipo_llamada[0] + (1.50 * arrLlamadas[i].minutos);
montototalxtipo_llamada[2] += (1.50 * arrLlamadas[i].minutos);
break;
}
}
cout << "Tipo de llamada local tiene un total de: " << montototalxtipo_llamada[0]<< " soles" << endl;
cout << "Tipo de llamada Celular tiene un total de: " << montototalxtipo_llamada[1] <<" soles" << endl;
cout << "Tipo de llamada Internacional tiene un total de: " << montototalxtipo_llamada[2] <<" soles" << endl;
}
int main() {
int N = 50;
Llamada* arrLlamadas = new Llamada[N];
GenerarLlamadas(arrLlamadas, N);
Imprimir(arrLlamadas, N);
OficinasconMayorMinutos(arrLlamadas, N);
MontoTotalxTipoLlamada(arrLlamadas, N);
getch();
return 0;
}
*/
/*
#include <iostream>
#include <conio.h>
using namespace std;
using namespace System;
void GenerarTerreno(int** terreno, int f, int c) {
Random r;
//recorrer filas, luego por cada fila se recorren las columnas
for (int j = 0; j < f; j++) {
for (int i = 0; i < c; i++) {
terreno[j][i] = r.Next(1,4);//1 2 3
}
}
}
void ImprimirTerreno(int** terreno, int f, int c) {
for (int j = 0; j < f; j++) {
for (int i = 0; i < c; i++) {
Console::SetCursorPosition(i, j);
Console::BackgroundColor = ConsoleColor::White;
Console::ForegroundColor= ConsoleColor::Black;
cout << terreno[j][i];
}
cout << endl;
}
}
void HallarGuaridaTopos(int** terreno, int f, int c) {
int cc = 0;
for (int j = 1; j < f-1; j++) {
for (int i = 1; i < c-1; i++) {
if (terreno[j - 1][i] == 3
&& terreno[j][i - 1] == 2
&& terreno[j][i + 1] == 2
&& terreno[j + 1][i] == 1
) {
//arriba
Console::SetCursorPosition(i, j-1);
Console::BackgroundColor = ConsoleColor::Green;
cout << terreno[j - 1][i];
//izquierda
Console::SetCursorPosition(i-1, j);
Console::BackgroundColor = ConsoleColor::Green;
cout << terreno[j][i-1];
//derecha
Console::SetCursorPosition(i+1, j);
Console::BackgroundColor = ConsoleColor::Green;
cout << terreno[j][i+1];
//abajo
Console::SetCursorPosition(i, j+1);
Console::BackgroundColor = ConsoleColor::Green;
cout << terreno[j + 1][i];
Console::SetCursorPosition(i, j);
Console::BackgroundColor = ConsoleColor::Yellow;
terreno[j][i] = 0;
cout<<0;
Console::SetCursorPosition(0, 14+cc);
cout << "Hay un topo en fila = " << j + 1 << " y en columna = " << i + 1 << endl;
cc++;
}
}
}
}
int main() {
//10 filas
//15 columnas
int f = 10, c = 15;
int** terreno = new int* [f];
for (int i = 0; i < f; i++) {
terreno[i] = new int[c];
}
GenerarTerreno(terreno, f, c);
ImprimirTerreno(terreno, f, c);
HallarGuaridaTopos(terreno, f, c);
getch();
return 0;
}
*/Editor is loading...