Created
May 5, 2026 07:19
-
-
Save m1irka/7f72a91898b4daaae1596c4a98e4c31f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <iostream> | |
| #include <string> | |
| #include <ctime> | |
| #include <cstdlib> | |
| #include <thread> | |
| #include <windows.h> | |
| using namespace std; | |
| bool randomCheck(const string& action) | |
| { | |
| bool ok = rand() % 2; | |
| cout << action << (ok ? " : WORK\n" : " : ERROR\n"); | |
| return ok; | |
| } | |
| class PowerSupply { | |
| public: | |
| void PoverOn() { randomCheck("Power On"); } | |
| void Poveroff() { randomCheck("Power Off"); } | |
| void SupplyToGPU() { randomCheck("Power to GPU"); } | |
| void SupplyToRAM() { randomCheck("Power to RAM"); } | |
| void SupplyToDiskDrive() { randomCheck("Power to Disk Driver"); } | |
| void SupplyToHDD() { randomCheck("Power to HDD"); } | |
| void StopGPU() { randomCheck("Stoped power to GPU"); } | |
| void StopRAM() { randomCheck("Stoped power to RAM"); } | |
| void StopDiskDrive() { randomCheck("Stoped power to Disk Drive"); } | |
| void StopHDD() { randomCheck("Stoped power to HDD"); } | |
| }; | |
| class Sensors | |
| { | |
| public: | |
| void CheckVoltage() { randomCheck("Sensors: Check Voltage "); } | |
| void CheckTempPSU() { randomCheck("Sensors: Check Temperature PSU"); } | |
| void CheckTempGPU() { randomCheck("Sensors: Check Temperature GPU"); } | |
| void CheckTempRAM() { randomCheck("Sensors: Check Temperature RAM"); } | |
| void CheckAllSystems() { randomCheck("Sensors: All system"); } | |
| }; | |
| class GPU | |
| { | |
| public: | |
| void Start() { randomCheck("GPU STARTED"); } | |
| void CheckMonitor() { randomCheck("GPU: Checked Monitor"); } | |
| void ShowRAMInfo() { randomCheck("GPU: Show RAM info"); } | |
| void ShowDiskDriverInfo() { randomCheck("GPU: Show Disk Driver Info"); } | |
| void ShowHDDInfo() { randomCheck("GPU: Show HDD Info"); } | |
| void ByeMessage() { randomCheck("Goodbye Message on monitor"); } | |
| }; | |
| class RAM | |
| { | |
| public: | |
| void Start() { randomCheck("RAM STARTED"); } | |
| void Analyze() { randomCheck("RAM: Analyze"); } | |
| void Clean() { randomCheck("RAM: Clean"); } | |
| }; | |
| class DiskDriver | |
| { | |
| public: | |
| void Start() { randomCheck("DISK DRIVER STARTED"); } | |
| void CheckDisk() { randomCheck("Disk Driver: Check"); } | |
| void Reset() { randomCheck("Disk Driver: Reset"); } | |
| }; | |
| class HDD | |
| { | |
| public: | |
| void Start() { randomCheck("HDD STARTED"); } | |
| void CheckBootSector() { randomCheck("HDD: Checked Boot Sector"); } | |
| void Stop() { randomCheck("HDD: Stop"); } | |
| }; | |
| class ComputerFacade | |
| { | |
| PowerSupply psu; | |
| Sensors sensors; | |
| GPU gpu; | |
| RAM ram; | |
| DiskDriver diskdriver; | |
| HDD hdd; | |
| public: | |
| void BeginWork() | |
| { | |
| cout << "......-----TURN ON COMPUTER ------..." << endl; | |
| psu.PowerOn(); | |
| sensors.CheckVoltage(); | |
| sensors.CheckTempPSU(); | |
| sensors.CheckTempGPU(); | |
| psu.SupplyToGPU(); | |
| gpu.Start(); | |
| gpu.CheckMonitor(); | |
| sensors.CheckTempRAM(); | |
| psu.SupplyToRAM(); | |
| ram.Start(); | |
| ram.Analyze(); | |
| gpu.ShowRAMInfo(); | |
| psu.SupplyToDiskDrive(); | |
| diskdriver.Start(); | |
| diskdriver.CheckDisk(); | |
| gpu.ShowDiskDriverInfo(); | |
| psu.SupplyToHDD(); | |
| hdd.Start(); | |
| hdd.CheckBootSector(); | |
| gpu.ShowHDDInfo(); | |
| sensors.CheckAllSystems(); | |
| } | |
| void Shutdown() | |
| { | |
| cout << "......-----TURN OFF COMPUTER----......" << endl; | |
| hdd.Stop(); | |
| ram.Clean(); | |
| ram.Analyze(); | |
| gpu.ByeMessage(); | |
| diskdriver.Reset(); | |
| psu.StopGPU(); | |
| psu.StopRAM(); | |
| psu.StopDiskDrive(); | |
| psu.StopHDD(); | |
| sensors.CheckVoltage(); | |
| psu.PowerOff(); | |
| } | |
| }; | |
| int main() | |
| { | |
| srand(time(0)); | |
| ComputerFacade computer; | |
| computer.BeginWork(); | |
| computer.Shutdown(); | |
| system("pause"); | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment