#include <iostream>
#include <cstdlib>
#include <ctime>
class
TemperatureControlSystem {
private
:
bool
primaryControllerWorking;
bool
backupControllerWorking;
public
:
TemperatureControlSystem() {
primaryControllerWorking =
true
;
backupControllerWorking =
true
;
}
void
simulateTemperatureControl() {
std::cout <<
"Simulating temperature control system..."
<< std::endl;
srand
(
time
(0));
while
(
true
) {
if
(primaryControllerWorking) {
int
temperature = generateRandomTemperature();
std::cout <<
"Primary Controller: Temperature is "
<< temperature <<
" degrees."
<< std::endl;
if
(temperature > 100) {
std::cout <<
"Temperature is too high. Activating Backup Controller."
<< std::endl;
primaryControllerWorking =
false
;
}
}
else
if
(backupControllerWorking) {
std::cout <<
"Backup Controller: Activated."
<< std::endl;
coolDownEngine();
primaryControllerWorking =
true
;
backupControllerWorking =
false
;
}
else
{
std::cout <<
"Both controllers failed. System failure."
<< std::endl;
exit
(1);
}
}
}
private
:
int
generateRandomTemperature() {
return
rand
() % 150;
}
void
coolDownEngine() {
std::cout <<
"Engine cooling in progress..."
<< std::endl;
std::cout <<
"Engine cooled down. Primary Controller reactivated."
<< std::endl;
}
};
int
main() {
TemperatureControlSystem controlSystem;
controlSystem.simulateTemperatureControl();
return
0;
}