Last active
April 15, 2026 10:07
-
-
Save XoLinA/3da701fa6d896ef31d9aa540a2a6228f 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> | |
| using namespace std; | |
| class PowerSupply | |
| { | |
| public: | |
| void PowerOn() { cout << "Power Supply: power on\n"; } | |
| void PowerOff() { cout << "Power Supply: shutdown\n"; } | |
| void SupplyVideo() { cout << "Power Supply: supply power to video card\n"; } | |
| void SupplyRAM() { cout << "Power Supply: supply power to RAM\n"; } | |
| void SupplyDrive() { cout << "Power Supply: supply power to optical drive\n"; } | |
| void SupplyHDD() { cout << "Power Supply: supply power to hard drive\n"; } | |
| void StopVideo() { cout << "Power Supply: stop power to video card\n"; } | |
| void StopRAM() { cout << "Power Supply: stop power to RAM\n"; } | |
| void StopDrive() { cout << "Power Supply: stop power to optical drive\n"; } | |
| void StopHDD() { cout << "Power Supply: stop power to hard drive\n"; } | |
| }; | |
| class Sensors | |
| { | |
| public: | |
| void CheckVoltage() { cout << "Sensors: check voltage\n"; } | |
| void CheckTempPSU() { cout << "Sensors: check PSU temperature\n"; } | |
| void CheckTempGPU() { cout << "Sensors: check GPU temperature\n"; } | |
| void CheckTempRAM() { cout << "Sensors: check RAM temperature\n"; } | |
| void CheckAllTemps() { cout << "Sensors: check all system temperatures\n"; } | |
| }; | |
| class VideoCard | |
| { | |
| public: | |
| void Start() { cout << "Video Card: start\n"; } | |
| void CheckMonitor() { cout << "Video Card: check connection with monitor\n"; } | |
| void ShowRAMInfo() { cout << "Video Card: display RAM info\n"; } | |
| void ShowDriveInfo() { cout << "Video Card: display optical drive info\n"; } | |
| void ShowHDDInfo() { cout << "Video Card: display hard drive info\n"; } | |
| void Goodbye() { cout << "Video Card: display goodbye message\n"; } | |
| }; | |
| class RAM | |
| { | |
| public: | |
| void Start() { cout << "RAM: start devices\n"; } | |
| void Analyze() { cout << "RAM: analyze memory\n"; } | |
| void Clear() { cout << "RAM: clear memory\n"; } | |
| }; | |
| class HDD | |
| { | |
| public: | |
| void Start() { cout << "Hard Drive: start\n"; } | |
| void CheckBoot() { cout << "Hard Drive: check boot sector\n"; } | |
| void Stop() { cout << "Hard Drive: stop\n"; } | |
| }; | |
| class OpticalDrive | |
| { | |
| public: | |
| void Start() { cout << "Optical Drive: start\n"; } | |
| void CheckDisk() { cout << "Optical Drive: check disk presence\n"; } | |
| void Reset() { cout << "Optical Drive: reset position\n"; } | |
| }; | |
| class ComputerFacade | |
| { | |
| private: | |
| PowerSupply psu; | |
| Sensors sensors; | |
| VideoCard gpu; | |
| RAM ram; | |
| HDD hdd; | |
| OpticalDrive drive; | |
| public: | |
| void BeginWork() | |
| { | |
| cout << "\n---------- COMPUTER START -------------\n"; | |
| psu.PowerOn(); | |
| sensors.CheckVoltage(); | |
| sensors.CheckTempPSU(); | |
| sensors.CheckTempGPU(); | |
| psu.SupplyVideo(); | |
| gpu.Start(); | |
| gpu.CheckMonitor(); | |
| sensors.CheckTempRAM(); | |
| psu.SupplyRAM(); | |
| ram.Start(); | |
| ram.Analyze(); | |
| gpu.ShowRAMInfo(); | |
| psu.SupplyDrive(); | |
| drive.Start(); | |
| drive.CheckDisk(); | |
| gpu.ShowDriveInfo(); | |
| psu.SupplyHDD(); | |
| hdd.Start(); | |
| hdd.CheckBoot(); | |
| gpu.ShowHDDInfo(); | |
| sensors.CheckAllTemps(); | |
| } | |
| void Shutdown() | |
| { | |
| cout << "\n--------- COMPUTER SHUTDOWN --------\n"; | |
| hdd.Stop(); | |
| ram.Clear(); | |
| ram.Analyze(); | |
| gpu.Goodbye(); | |
| drive.Reset(); | |
| psu.StopVideo(); | |
| psu.StopRAM(); | |
| psu.StopDrive(); | |
| psu.StopHDD(); | |
| sensors.CheckVoltage(); | |
| psu.PowerOff(); | |
| } | |
| }; | |
| int main() | |
| { | |
| ComputerFacade computer; | |
| computer.BeginWork(); | |
| cout << "\n-----------------------------\n"; | |
| computer.Shutdown(); | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment