summaryrefslogtreecommitdiff
path: root/cpp/ascensore.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/ascensore.cc')
-rw-r--r--cpp/ascensore.cc90
1 files changed, 90 insertions, 0 deletions
diff --git a/cpp/ascensore.cc b/cpp/ascensore.cc
new file mode 100644
index 0000000..8e69964
--- /dev/null
+++ b/cpp/ascensore.cc
@@ -0,0 +1,90 @@
+#include <iostream>
+#include <stdlib.h>
+#include <string>
+#include <unistd.h>
+
+class Ascensore
+{
+private:
+ unsigned short int floor;
+ bool doors;
+ unsigned short int maxFloor;
+public:
+ Ascensore(unsigned short int plan = 0) {floor = plan; maxFloor = 5;}
+ void Up(void);
+ void Down(void);
+ void Doors(void);
+ void getFloor(void);
+};
+
+void _clear(void);
+
+using namespace std;
+
+int main(void)
+{
+ char choose;
+ Ascensore *ascensore = new Ascensore();
+ do {
+ ascensore->getFloor();
+ cin >> choose;
+ choose = tolower(choose);
+ if(choose == 'u' || choose == 'd') ascensore->Doors();
+ sleep(2);
+ switch(choose)
+ {
+ case 'u' : ascensore->Up(); break;
+ case 'd' : ascensore->Down(); break;
+ case 'e' : break;
+ }
+ _clear();
+ if(choose == 'u' || choose == 'd') ascensore->Doors();
+ } while(choose != 'e');
+
+ cout << "SEI USCITO DALL'ASCENSORE CON SUCCESSO!";
+
+ return 0;
+}
+
+void _clear(void)
+{
+ #ifdef OS_WINDOWS
+ system("CLS");
+ #else
+ system("clear");
+ #endif
+}
+
+void Ascensore::getFloor(void)
+{
+ if(floor == maxFloor) cout << "Sei arrivato all'ultimo piano" << endl;
+ if(floor == 0) cout << "Non puoi scendere più di così" << endl;
+ cout << "SEI ATTUALMENTE AL PIANO " << floor << endl;
+ cout << "\nQUALE AZIONE SI VUOLE COMPIERE?" << endl;
+ cout << "U - salire" << endl;
+ cout << "D - scendere" << endl;
+ cout << "E - Uscire" << endl;
+ cout << "> ";
+}
+
+void Ascensore::Up(void)
+{
+ if(floor < maxFloor) floor+=1;
+}
+
+void Ascensore::Down(void)
+{
+ if(floor > 0) floor-=1;
+}
+
+void Ascensore::Doors(void)
+{
+ if(doors == true)
+ {
+ cout << "> APERTURA PORTE" << endl;
+ doors = false;
+ } else {
+ cout << "> CHIUSURA PORTE..." << endl;
+ doors = true;
+ }
+}