SlideShare una empresa de Scribd logo
LIBRO 5  CODIGOS EN C++ REFERENTES A TELEMÁTICA
LIBRO 5  CODIGOS EN C++ REFERENTES A TELEMÁTICA
LIBRO 5  CODIGOS EN C++ REFERENTES A TELEMÁTICA
EJERCICIO1
#include <iostream>
#include <vector>
#include <string>
enum MessageStatus {
SENT,
RECEIVED,
READ,
FAILED
};
class Message {
public:
Message(std::string content, std::string sender, std::string receiver)
: content(content), sender(sender), receiver(receiver), status(SENT) {}
void markAsReceived() {
status = RECEIVED;
}
void markAsRead() {
status = READ;
}
void markAsFailed() {
status = FAILED;
}
void displayStatus() const {
std::cout << "Message from " << sender << " to " << receiver << ": "" << content << ""n";
std::cout << "Status: " << getStatusString() << std::endl;
}
private:
std::string content;
std::string sender;
std::string receiver;
MessageStatus status;
std::string getStatusString() const {
switch (status) {
case SENT: return "Sent";
case RECEIVED: return "Received";
case READ: return "Read";
case FAILED: return "Failed";
default: return "Unknown";
}
}
};
class Chat {
public:
void sendMessage(const std::string& content, const std::string& sender, const std::string& receiver) {
Message message(content, sender, receiver);
messages.push_back(message);
std::cout << "Message sent from " << sender << " to " << receiver << std::endl;
}
void receiveMessage(size_t index) {
if (index < messages.size()) {
messages[index].markAsReceived();
std::cout << "Message at index " << index << " marked as received" << std::endl;
}
}
void readMessage(size_t index) {
if (index < messages.size()) {
messages[index].markAsRead();
std::cout << "Message at index " << index << " marked as read" << std::endl;
}
}
void failMessage(size_t index) {
if (index < messages.size()) {
messages[index].markAsFailed();
std::cout << "Message at index " << index << " marked as failed" << std::endl;
}
}
void displayMessages() const {
for (const auto& message : messages) {
message.displayStatus();
}
}
private:
std::vector<Message> messages;
};
int main() {
Chat chat;
chat.sendMessage("Hello, how are you?", "Alice", "Bob");
chat.sendMessage("I'm good, thanks!", "Bob", "Alice");
chat.receiveMessage(0);
chat.readMessage(0);
chat.displayMessages();
return 0;
}
EJERCICIO2
#include <iostream>
#include <unordered_map>
#include <string>
// Simulación de una base de datos de usuarios
std::unordered_map<std::string, std::string> users = {
{"user1", "password1"},
{"user2", "password2"}
};
// Función para autenticar usuarios
bool authenticate(const std::string& username, const std::string& password) {
auto it = users.find(username);
if (it != users.end() && it->second == password) {
return true;
}
return false;
}
void handleClient(int clientId) {
std::string username;
std::string password;
// Simulación de la recepción de credenciales del cliente
std::cout << "Cliente " << clientId << ": Ingrese nombre de usuario: ";
std::cin >> username;
std::cout << "Cliente " << clientId << ": Ingrese contraseña: ";
std::cin >> password;
if (authenticate(username, password)) {
std::cout << "Cliente " << clientId << ": Autenticación exitosa.n";
std::cout << "Cliente " << clientId << ": Conexión segura establecida.n";
} else {
std::cout << "Cliente " << clientId << ": Autenticación fallida.n";
}
}
int main() {
int numClients = 2; // Simulación de dos clientes
for (int i = 1; i <= numClients; ++i) {
handleClient(i); }
return 0; }
EJERCICIO3
#include <iostream>
#include <queue>
#include <string>
enum TrafficType {
MISSION_CRITICAL,
ENTERTAINMENT
};
struct Packet {
TrafficType type;
std::string content;
Packet(TrafficType t, std::string c) : type(t), content(std::move(c)) {}
};
class WiFiNetwork {
public:
void receivePacket(const Packet& packet) {
if (packet.type == MISSION_CRITICAL) {
missionCriticalQueue.push(packet);
} else {
entertainmentQueue.push(packet);
}
}
void processPackets() {
// Procesar todos los paquetes de misión crítica primero
while (!missionCriticalQueue.empty()) {
Packet packet = missionCriticalQueue.front();
missionCriticalQueue.pop();
std::cout << "Procesando paquete de misión crítica: " << packet.content << std::endl;
}
// Luego procesar los paquetes de entretenimiento
while (!entertainmentQueue.empty()) {
Packet packet = entertainmentQueue.front();
entertainmentQueue.pop();
std::cout << "Procesando paquete de entretenimiento: " << packet.content << std::endl;
}
}
private:
std::queue<Packet> missionCriticalQueue;
std::queue<Packet> entertainmentQueue;
};
int main() {
WiFiNetwork network;
// Simulación de la recepción de paquetes
network.receivePacket(Packet(MISSION_CRITICAL, "Pago en tienda"));
network.receivePacket(Packet(ENTERTAINMENT, "Video de YouTube"));
network.receivePacket(Packet(MISSION_CRITICAL, "Transacción bancaria"));
network.receivePacket(Packet(ENTERTAINMENT, "Navegación en redes sociales"));
// Procesar los paquetes
network.processPackets();
return 0;
}
EJERCICIO4
#include <iostream>
#include <vector>
#include <string>
enum PowerPolicy {
HIGH_PERFORMANCE,
BALANCED,
POWER_SAVER
};
class Computer {
public:
Computer(std::string id) : id(id), powerPolicy(BALANCED), workload(0) {}
void setWorkload(int wl) {
workload = wl;
adjustPowerPolicy();
}
void displayStatus() const {
std::cout << "Computer ID: " << id << "n";
std::cout << "Current Workload: " << workload << "%n";
std::cout << "Power Policy: " << getPowerPolicyString() << "nn";
}
private:
std::string id;
PowerPolicy powerPolicy;
int workload;
void adjustPowerPolicy() {
if (workload > 80) {
powerPolicy = HIGH_PERFORMANCE;
} else if (workload > 30) {
powerPolicy = BALANCED;
} else {
powerPolicy = POWER_SAVER;
}
}
std::string getPowerPolicyString() const {
switch (powerPolicy) {
case HIGH_PERFORMANCE: return "High Performance";
case BALANCED: return "Balanced";
case POWER_SAVER: return "Power Saver";
default: return "Unknown";
}
}
};
class EnergyManagementSystem {
public:
void addComputer(const Computer& computer) {
computers.push_back(computer);
}
void monitorAndAdjust() {
for (auto& computer : computers) {
// Simulación de la detección de carga de trabajo (en un caso real, esto sería dinámico)
int detectedWorkload = detectWorkload(computer);
computer.setWorkload(detectedWorkload);
}
}
void displayAllStatuses() const {
for (const auto& computer : computers) {
computer.displayStatus();
}
}
private:
std::vector<Computer> computers;
int detectWorkload(const Computer& computer) const {
// Simulación: Devolver una carga de trabajo aleatoria
return rand() % 101; // Devuelve un valor entre 0 y 100
}
};
int main() {
// Inicialización del sistema
EnergyManagementSystem ems;
// Agregar computadoras al sistema
ems.addComputer(Computer("PC1"));
ems.addComputer(Computer("PC2"));
ems.addComputer(Computer("PC3"));
// Moitorear y ajustar las políticas de energía
ems.monitorAndAdjust();
// Mostrar el estado de todas las computadoras
ems.displayAllStatuses();
return 0;
}
EJERCICIO5
#include <iostream>
#include <cstdlib> // Para usar rand() y srand()
#include <ctime> // Para usar time()
bool llamadaContestada() {
// Simula si la llamada es contestada o no
return rand() % 2; // 50% de probabilidad de que sea contestada
}
bool tieneSaldoSuficiente() {
// Simula si hay saldo suficiente o no
return rand() % 2; // 50% de probabilidad de que haya saldo suficiente
}
int main() {
srand(time(0)); // Inicializa la semilla para rand()
std::cout << "Haciendo una llamada...n";
if (llamadaContestada()) {
std::cout << "La llamada ha sido contestada.n";
// Continuar con la llamada
} else {
std::cout << "La llamada no ha sido contestada.n";
if (tieneSaldoSuficiente()) {
std::cout << "Redirigiendo al correo de voz...n";
// Lógica para redirigir al correo de voz
} else {
std::cout << "Saldo insuficiente. Por favor, recargue su saldo.n";
// Lógica para manejar saldo insuficiente
}
}
return 0;
}

Más contenido relacionado

Similar a LIBRO 5 CODIGOS EN C++ REFERENTES A TELEMÁTICA

ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
Danae Aguilar Guzmán
 
Practicas de programacion 11 20
Practicas de programacion 11 20Practicas de programacion 11 20
Practicas de programacion 11 20
Dariio Lopezz Young
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
Corfapo
 
Informe tecnico
Informe tecnicoInforme tecnico
Java::Acceso a Bases de Datos
Java::Acceso a Bases de DatosJava::Acceso a Bases de Datos
Java::Acceso a Bases de Datos
jubacalo
 
Aplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - ConsolaAplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - Consola
José Antonio Sandoval Acosta
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
MILAGRINAMAGUINAPRINCIPE
 
LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.
SILVA19_PAMELA
 
OBJETO SQLCOMMAND.
OBJETO SQLCOMMAND.OBJETO SQLCOMMAND.
OBJETO SQLCOMMAND.
SILVA19_PAMELA
 
EXAMEN
EXAMENEXAMEN
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
paulcuenca9
 
Ejemplo de aplicación cliente-servidor en C#
Ejemplo de aplicación cliente-servidor  en C#Ejemplo de aplicación cliente-servidor  en C#
Ejemplo de aplicación cliente-servidor en C#
José Antonio Sandoval Acosta
 
Conexión a sql server con c#
Conexión a sql server con c#Conexión a sql server con c#
Conexión a sql server con c#
Mauricio Durán Torres
 
Est
EstEst
Desarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasDesarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capas
Nelson Salinas
 
Sockets en c
Sockets en cSockets en c
Sockets en c
MaShYy
 
Angularjs Lógica de negocio
Angularjs Lógica de negocioAngularjs Lógica de negocio
Angularjs Lógica de negocio
Pedro Hurtado Candel
 
Ejemplos programacion socket java
Ejemplos programacion socket javaEjemplos programacion socket java
Ejemplos programacion socket java
Oscar Damian
 
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO.pdf
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO.pdfESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO.pdf
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO.pdf
JosueValverde8
 
1 er informe
1 er informe1 er informe
1 er informe
Admer Barrios Urbina
 

Similar a LIBRO 5 CODIGOS EN C++ REFERENTES A TELEMÁTICA (20)

ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
 
Practicas de programacion 11 20
Practicas de programacion 11 20Practicas de programacion 11 20
Practicas de programacion 11 20
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 
Java::Acceso a Bases de Datos
Java::Acceso a Bases de DatosJava::Acceso a Bases de Datos
Java::Acceso a Bases de Datos
 
Aplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - ConsolaAplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - Consola
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.
 
OBJETO SQLCOMMAND.
OBJETO SQLCOMMAND.OBJETO SQLCOMMAND.
OBJETO SQLCOMMAND.
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
Ejemplo de aplicación cliente-servidor en C#
Ejemplo de aplicación cliente-servidor  en C#Ejemplo de aplicación cliente-servidor  en C#
Ejemplo de aplicación cliente-servidor en C#
 
Conexión a sql server con c#
Conexión a sql server con c#Conexión a sql server con c#
Conexión a sql server con c#
 
Est
EstEst
Est
 
Desarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasDesarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capas
 
Sockets en c
Sockets en cSockets en c
Sockets en c
 
Angularjs Lógica de negocio
Angularjs Lógica de negocioAngularjs Lógica de negocio
Angularjs Lógica de negocio
 
Ejemplos programacion socket java
Ejemplos programacion socket javaEjemplos programacion socket java
Ejemplos programacion socket java
 
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO.pdf
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO.pdfESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO.pdf
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO.pdf
 
1 er informe
1 er informe1 er informe
1 er informe
 

Último

High End Girls Call Aero City 9873940964 Provide Best And Top Girl Service An...
High End Girls Call Aero City 9873940964 Provide Best And Top Girl Service An...High End Girls Call Aero City 9873940964 Provide Best And Top Girl Service An...
High End Girls Call Aero City 9873940964 Provide Best And Top Girl Service An...
%$A19%
 
Presentación Fisioterapia Clínica Médica Ilustrativo Azul .pdf
Presentación Fisioterapia Clínica Médica Ilustrativo Azul .pdfPresentación Fisioterapia Clínica Médica Ilustrativo Azul .pdf
Presentación Fisioterapia Clínica Médica Ilustrativo Azul .pdf
johanyhernandez868
 
Girls Call Kolkata 000XX00000 Provide Best And Top Girl Service And No1 in City
Girls Call Kolkata 000XX00000 Provide Best And Top Girl Service And No1 in CityGirls Call Kolkata 000XX00000 Provide Best And Top Girl Service And No1 in City
Girls Call Kolkata 000XX00000 Provide Best And Top Girl Service And No1 in City
mukeshagarwal5411
 
New Girls Call Aero City 9873940964 Provide Best And Top Girl Service And No1...
New Girls Call Aero City 9873940964 Provide Best And Top Girl Service And No1...New Girls Call Aero City 9873940964 Provide Best And Top Girl Service And No1...
New Girls Call Aero City 9873940964 Provide Best And Top Girl Service And No1...
%$A19%
 
El internet como apoyo al proceso de enseñanza
El internet como apoyo al proceso de enseñanzaEl internet como apoyo al proceso de enseñanza
El internet como apoyo al proceso de enseñanza
JeanCarlosMB
 
cultura chavin- culturas preincas...pptx
cultura chavin- culturas preincas...pptxcultura chavin- culturas preincas...pptx
cultura chavin- culturas preincas...pptx
KateTejadaAguirre
 
RCP NEONATAL NEONATOLOGIAAAAAexpooo.pptx
RCP NEONATAL NEONATOLOGIAAAAAexpooo.pptxRCP NEONATAL NEONATOLOGIAAAAAexpooo.pptx
RCP NEONATAL NEONATOLOGIAAAAAexpooo.pptx
DEYSIYAQUELINCONTOCC
 
RUTA DE ATENCION ICBF.pptx ruta de antencion
RUTA DE ATENCION ICBF.pptx ruta de antencionRUTA DE ATENCION ICBF.pptx ruta de antencion
RUTA DE ATENCION ICBF.pptx ruta de antencion
JhonathanRodriguez10
 
La ciberseguridad, sus tres tipos y que se nesecita.
La ciberseguridad, sus tres tipos y que se nesecita.La ciberseguridad, sus tres tipos y que se nesecita.
La ciberseguridad, sus tres tipos y que se nesecita.
olivarescalderonyami
 

Último (9)

High End Girls Call Aero City 9873940964 Provide Best And Top Girl Service An...
High End Girls Call Aero City 9873940964 Provide Best And Top Girl Service An...High End Girls Call Aero City 9873940964 Provide Best And Top Girl Service An...
High End Girls Call Aero City 9873940964 Provide Best And Top Girl Service An...
 
Presentación Fisioterapia Clínica Médica Ilustrativo Azul .pdf
Presentación Fisioterapia Clínica Médica Ilustrativo Azul .pdfPresentación Fisioterapia Clínica Médica Ilustrativo Azul .pdf
Presentación Fisioterapia Clínica Médica Ilustrativo Azul .pdf
 
Girls Call Kolkata 000XX00000 Provide Best And Top Girl Service And No1 in City
Girls Call Kolkata 000XX00000 Provide Best And Top Girl Service And No1 in CityGirls Call Kolkata 000XX00000 Provide Best And Top Girl Service And No1 in City
Girls Call Kolkata 000XX00000 Provide Best And Top Girl Service And No1 in City
 
New Girls Call Aero City 9873940964 Provide Best And Top Girl Service And No1...
New Girls Call Aero City 9873940964 Provide Best And Top Girl Service And No1...New Girls Call Aero City 9873940964 Provide Best And Top Girl Service And No1...
New Girls Call Aero City 9873940964 Provide Best And Top Girl Service And No1...
 
El internet como apoyo al proceso de enseñanza
El internet como apoyo al proceso de enseñanzaEl internet como apoyo al proceso de enseñanza
El internet como apoyo al proceso de enseñanza
 
cultura chavin- culturas preincas...pptx
cultura chavin- culturas preincas...pptxcultura chavin- culturas preincas...pptx
cultura chavin- culturas preincas...pptx
 
RCP NEONATAL NEONATOLOGIAAAAAexpooo.pptx
RCP NEONATAL NEONATOLOGIAAAAAexpooo.pptxRCP NEONATAL NEONATOLOGIAAAAAexpooo.pptx
RCP NEONATAL NEONATOLOGIAAAAAexpooo.pptx
 
RUTA DE ATENCION ICBF.pptx ruta de antencion
RUTA DE ATENCION ICBF.pptx ruta de antencionRUTA DE ATENCION ICBF.pptx ruta de antencion
RUTA DE ATENCION ICBF.pptx ruta de antencion
 
La ciberseguridad, sus tres tipos y que se nesecita.
La ciberseguridad, sus tres tipos y que se nesecita.La ciberseguridad, sus tres tipos y que se nesecita.
La ciberseguridad, sus tres tipos y que se nesecita.
 

LIBRO 5 CODIGOS EN C++ REFERENTES A TELEMÁTICA

  • 4. EJERCICIO1 #include <iostream> #include <vector> #include <string> enum MessageStatus { SENT, RECEIVED, READ, FAILED }; class Message { public: Message(std::string content, std::string sender, std::string receiver) : content(content), sender(sender), receiver(receiver), status(SENT) {} void markAsReceived() { status = RECEIVED; } void markAsRead() { status = READ; } void markAsFailed() { status = FAILED; } void displayStatus() const { std::cout << "Message from " << sender << " to " << receiver << ": "" << content << ""n"; std::cout << "Status: " << getStatusString() << std::endl; } private: std::string content; std::string sender; std::string receiver; MessageStatus status; std::string getStatusString() const { switch (status) { case SENT: return "Sent"; case RECEIVED: return "Received"; case READ: return "Read";
  • 5. case FAILED: return "Failed"; default: return "Unknown"; } } }; class Chat { public: void sendMessage(const std::string& content, const std::string& sender, const std::string& receiver) { Message message(content, sender, receiver); messages.push_back(message); std::cout << "Message sent from " << sender << " to " << receiver << std::endl; } void receiveMessage(size_t index) { if (index < messages.size()) { messages[index].markAsReceived(); std::cout << "Message at index " << index << " marked as received" << std::endl; } } void readMessage(size_t index) { if (index < messages.size()) { messages[index].markAsRead(); std::cout << "Message at index " << index << " marked as read" << std::endl; } } void failMessage(size_t index) { if (index < messages.size()) { messages[index].markAsFailed(); std::cout << "Message at index " << index << " marked as failed" << std::endl; } } void displayMessages() const { for (const auto& message : messages) { message.displayStatus(); } } private: std::vector<Message> messages; };
  • 6. int main() { Chat chat; chat.sendMessage("Hello, how are you?", "Alice", "Bob"); chat.sendMessage("I'm good, thanks!", "Bob", "Alice"); chat.receiveMessage(0); chat.readMessage(0); chat.displayMessages(); return 0; }
  • 7. EJERCICIO2 #include <iostream> #include <unordered_map> #include <string> // Simulación de una base de datos de usuarios std::unordered_map<std::string, std::string> users = { {"user1", "password1"}, {"user2", "password2"} }; // Función para autenticar usuarios bool authenticate(const std::string& username, const std::string& password) { auto it = users.find(username); if (it != users.end() && it->second == password) { return true; } return false; } void handleClient(int clientId) { std::string username; std::string password; // Simulación de la recepción de credenciales del cliente std::cout << "Cliente " << clientId << ": Ingrese nombre de usuario: "; std::cin >> username; std::cout << "Cliente " << clientId << ": Ingrese contraseña: "; std::cin >> password; if (authenticate(username, password)) { std::cout << "Cliente " << clientId << ": Autenticación exitosa.n"; std::cout << "Cliente " << clientId << ": Conexión segura establecida.n"; } else { std::cout << "Cliente " << clientId << ": Autenticación fallida.n"; } } int main() { int numClients = 2; // Simulación de dos clientes for (int i = 1; i <= numClients; ++i) { handleClient(i); } return 0; }
  • 8. EJERCICIO3 #include <iostream> #include <queue> #include <string> enum TrafficType { MISSION_CRITICAL, ENTERTAINMENT }; struct Packet { TrafficType type; std::string content; Packet(TrafficType t, std::string c) : type(t), content(std::move(c)) {} }; class WiFiNetwork { public: void receivePacket(const Packet& packet) { if (packet.type == MISSION_CRITICAL) { missionCriticalQueue.push(packet); } else { entertainmentQueue.push(packet); } } void processPackets() { // Procesar todos los paquetes de misión crítica primero while (!missionCriticalQueue.empty()) { Packet packet = missionCriticalQueue.front(); missionCriticalQueue.pop(); std::cout << "Procesando paquete de misión crítica: " << packet.content << std::endl; } // Luego procesar los paquetes de entretenimiento while (!entertainmentQueue.empty()) { Packet packet = entertainmentQueue.front(); entertainmentQueue.pop(); std::cout << "Procesando paquete de entretenimiento: " << packet.content << std::endl; }
  • 9. } private: std::queue<Packet> missionCriticalQueue; std::queue<Packet> entertainmentQueue; }; int main() { WiFiNetwork network; // Simulación de la recepción de paquetes network.receivePacket(Packet(MISSION_CRITICAL, "Pago en tienda")); network.receivePacket(Packet(ENTERTAINMENT, "Video de YouTube")); network.receivePacket(Packet(MISSION_CRITICAL, "Transacción bancaria")); network.receivePacket(Packet(ENTERTAINMENT, "Navegación en redes sociales")); // Procesar los paquetes network.processPackets(); return 0; }
  • 10. EJERCICIO4 #include <iostream> #include <vector> #include <string> enum PowerPolicy { HIGH_PERFORMANCE, BALANCED, POWER_SAVER }; class Computer { public: Computer(std::string id) : id(id), powerPolicy(BALANCED), workload(0) {} void setWorkload(int wl) { workload = wl; adjustPowerPolicy(); } void displayStatus() const { std::cout << "Computer ID: " << id << "n"; std::cout << "Current Workload: " << workload << "%n"; std::cout << "Power Policy: " << getPowerPolicyString() << "nn"; } private: std::string id; PowerPolicy powerPolicy; int workload; void adjustPowerPolicy() { if (workload > 80) { powerPolicy = HIGH_PERFORMANCE; } else if (workload > 30) { powerPolicy = BALANCED; } else { powerPolicy = POWER_SAVER; } } std::string getPowerPolicyString() const { switch (powerPolicy) { case HIGH_PERFORMANCE: return "High Performance";
  • 11. case BALANCED: return "Balanced"; case POWER_SAVER: return "Power Saver"; default: return "Unknown"; } } }; class EnergyManagementSystem { public: void addComputer(const Computer& computer) { computers.push_back(computer); } void monitorAndAdjust() { for (auto& computer : computers) { // Simulación de la detección de carga de trabajo (en un caso real, esto sería dinámico) int detectedWorkload = detectWorkload(computer); computer.setWorkload(detectedWorkload); } } void displayAllStatuses() const { for (const auto& computer : computers) { computer.displayStatus(); } } private: std::vector<Computer> computers; int detectWorkload(const Computer& computer) const { // Simulación: Devolver una carga de trabajo aleatoria return rand() % 101; // Devuelve un valor entre 0 y 100 } }; int main() { // Inicialización del sistema EnergyManagementSystem ems; // Agregar computadoras al sistema ems.addComputer(Computer("PC1")); ems.addComputer(Computer("PC2")); ems.addComputer(Computer("PC3"));
  • 12. // Moitorear y ajustar las políticas de energía ems.monitorAndAdjust(); // Mostrar el estado de todas las computadoras ems.displayAllStatuses(); return 0; } EJERCICIO5 #include <iostream> #include <cstdlib> // Para usar rand() y srand() #include <ctime> // Para usar time() bool llamadaContestada() { // Simula si la llamada es contestada o no return rand() % 2; // 50% de probabilidad de que sea contestada } bool tieneSaldoSuficiente() { // Simula si hay saldo suficiente o no return rand() % 2; // 50% de probabilidad de que haya saldo suficiente } int main() { srand(time(0)); // Inicializa la semilla para rand() std::cout << "Haciendo una llamada...n"; if (llamadaContestada()) { std::cout << "La llamada ha sido contestada.n"; // Continuar con la llamada } else { std::cout << "La llamada no ha sido contestada.n"; if (tieneSaldoSuficiente()) { std::cout << "Redirigiendo al correo de voz...n"; // Lógica para redirigir al correo de voz } else { std::cout << "Saldo insuficiente. Por favor, recargue su saldo.n"; // Lógica para manejar saldo insuficiente } } return 0; }