consolidate all repos to one for archive
This commit is contained in:
11
semester_2/programiranje_2/naloga0502/Blinds.cpp
Normal file
11
semester_2/programiranje_2/naloga0502/Blinds.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "Blinds.h"
|
||||
|
||||
Blinds::Blinds(std::string id, std::string name, bool shaded) : Device(id, name), shaded(shaded) {}
|
||||
|
||||
std::string Blinds::isShaded() const {
|
||||
return (shaded) ? "open" : "closed";
|
||||
}
|
||||
|
||||
std::string Blinds::toString() const {
|
||||
return " id: " + id + " name: " + name + " is shaded: " + isShaded() + "\n";
|
||||
}
|
19
semester_2/programiranje_2/naloga0502/Blinds.h
Normal file
19
semester_2/programiranje_2/naloga0502/Blinds.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#ifndef NALOGA0502_BLINDS_H
|
||||
#define NALOGA0502_BLINDS_H
|
||||
|
||||
#include "Device.h"
|
||||
|
||||
class Blinds : public Device{
|
||||
private:
|
||||
bool shaded;
|
||||
public:
|
||||
Blinds(std::string id, std::string name, bool shaded);
|
||||
|
||||
std::string isShaded() const;
|
||||
|
||||
std::string toString() const override;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif //NALOGA0502_BLINDS_H
|
9
semester_2/programiranje_2/naloga0502/Device.cpp
Normal file
9
semester_2/programiranje_2/naloga0502/Device.cpp
Normal file
@@ -0,0 +1,9 @@
|
||||
#include "Device.h"
|
||||
|
||||
Device::Device(std::string id, std::string name) : id(id), name(name) {}
|
||||
|
||||
std::string Device::toString() const {
|
||||
return " id: " + id + " name: " + name + "\n";
|
||||
}
|
||||
|
||||
|
16
semester_2/programiranje_2/naloga0502/Device.h
Normal file
16
semester_2/programiranje_2/naloga0502/Device.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#ifndef NALOGA0502_DEVICE_H
|
||||
#define NALOGA0502_DEVICE_H
|
||||
|
||||
#include <string>
|
||||
|
||||
class Device {
|
||||
protected:
|
||||
std::string id, name;
|
||||
public:
|
||||
Device(std::string id, std::string name);
|
||||
|
||||
virtual std::string toString() const;
|
||||
};
|
||||
|
||||
|
||||
#endif //NALOGA0502_DEVICE_H
|
11
semester_2/programiranje_2/naloga0502/GarageDoor.cpp
Normal file
11
semester_2/programiranje_2/naloga0502/GarageDoor.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "GarageDoor.h"
|
||||
|
||||
GarageDoor::GarageDoor(std::string id, std::string name, bool open) :Device(id, name), open(open){}
|
||||
|
||||
std::string GarageDoor::isOpen() const {
|
||||
return (open) ? "open" : "closed";
|
||||
}
|
||||
|
||||
std::string GarageDoor::toString() const {
|
||||
return " id: " + id + " name: " + name + " is open: " + isOpen() + "\n";
|
||||
}
|
19
semester_2/programiranje_2/naloga0502/GarageDoor.h
Normal file
19
semester_2/programiranje_2/naloga0502/GarageDoor.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#ifndef NALOGA0502_GARAGEDOOR_H
|
||||
#define NALOGA0502_GARAGEDOOR_H
|
||||
|
||||
#include "Device.h"
|
||||
|
||||
class GarageDoor: public Device{
|
||||
private:
|
||||
bool open;
|
||||
public:
|
||||
GarageDoor(std::string id, std::string name, bool open);
|
||||
|
||||
std::string isOpen() const;
|
||||
|
||||
std::string toString() const override;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif //NALOGA0502_GARAGEDOOR_H
|
11
semester_2/programiranje_2/naloga0502/Light.cpp
Normal file
11
semester_2/programiranje_2/naloga0502/Light.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "Light.h"
|
||||
|
||||
Light::Light(std::string id, std::string name, bool turnedOn) : Device(id, name), turnedOn(turnedOn) {}
|
||||
|
||||
std::string Light::isOn() const {
|
||||
return (turnedOn) ? "on" : "off";
|
||||
}
|
||||
|
||||
std::string Light::toString() const {
|
||||
return " id: " + id + " name: " + name + " turnedOn: " + isOn() + "\n";
|
||||
}
|
19
semester_2/programiranje_2/naloga0502/Light.h
Normal file
19
semester_2/programiranje_2/naloga0502/Light.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#ifndef NALOGA0502_LIGHT_H
|
||||
#define NALOGA0502_LIGHT_H
|
||||
|
||||
#include "Device.h"
|
||||
|
||||
class Light: public Device{
|
||||
private:
|
||||
bool turnedOn;
|
||||
public:
|
||||
Light(std::string id, std::string name, bool turnedOn);
|
||||
|
||||
std::string isOn() const;
|
||||
|
||||
std::string toString() const override;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif //NALOGA0502_LIGHT_H
|
30
semester_2/programiranje_2/naloga0502/README.md
Normal file
30
semester_2/programiranje_2/naloga0502/README.md
Normal file
@@ -0,0 +1,30 @@
|
||||
Naslednja naloga predstavlja opis pametnega doma:
|
||||
|
||||
Napišite razred Device, ki ima:
|
||||
instančni spremenljivki id in name (oboje tipa string),
|
||||
konstruktor z 2 parametroma in
|
||||
metodo toString.
|
||||
|
||||
Napišite razred Light, ki deduje iz razreda Device. Nov razred naj ima:
|
||||
dodatno instančno spremenljivko turnedOn (bool),
|
||||
konstruktor s 3 parametri in
|
||||
metodo toString.
|
||||
|
||||
Napišite razred SmartHome, ki ima:
|
||||
instančni spremenljivki name (string) in devices (vector<Device*>),
|
||||
konstruktor z 1 parametrom (samo name),
|
||||
destruktor, ki izbriše objekte iz devices (gre za kompozicijo),
|
||||
metodo addDevice in
|
||||
metodo toString.
|
||||
|
||||
Sami dodajte še 2 smiselna razreda, ki bosta dedovala iz razreda Device.
|
||||
|
||||
V glavnem programu zapišite oz. sestavite program, ki bo predstavljal eno pametno hišo, ki ima znotraj devices nekaj primerkov naprav (Device, Light ...).
|
||||
|
||||
Za nalogo narišite diagram UML. Lahko na list papirja, vendar ga je treba slikati ali skenirati in tudi oddati na eštudij. Lahko pa ustvarite uml diagram s pomočjo https://app.diagrams.net/ ali s podobno aplikacijo.
|
||||
|
||||
Napotki pri reševanju naloge:
|
||||
|
||||
Pazite na uporabo protected, virtual in override.
|
||||
|
||||
Pri reševanju naloge upoštevajte vso dosedaj pridobljeno znanje (uporaba inicializacijskega seznama, konstantne metode, zapišite si metode get/set tam, kjer jih potrebujete itd.).
|
20
semester_2/programiranje_2/naloga0502/SmartHome.cpp
Normal file
20
semester_2/programiranje_2/naloga0502/SmartHome.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
#include "SmartHome.h"
|
||||
|
||||
SmartHome::SmartHome(std::string name) : name(name){}
|
||||
|
||||
SmartHome::~SmartHome(){
|
||||
for (Device* device: devices) {
|
||||
delete device;
|
||||
}
|
||||
}
|
||||
|
||||
std::string SmartHome::toString() const {
|
||||
std::string str;
|
||||
str = "House name: " + name + "\n";
|
||||
for (auto device : devices) str += device->toString();
|
||||
return str;
|
||||
}
|
||||
|
||||
void SmartHome::addDevice(Device *device) {
|
||||
devices.push_back(device);
|
||||
}
|
26
semester_2/programiranje_2/naloga0502/SmartHome.h
Normal file
26
semester_2/programiranje_2/naloga0502/SmartHome.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#ifndef NALOGA0502_SMARTHOME_H
|
||||
#define NALOGA0502_SMARTHOME_H
|
||||
|
||||
#include <vector>
|
||||
#include "Device.h"
|
||||
#include "Light.h"
|
||||
#include "Blinds.h"
|
||||
#include "GarageDoor.h"
|
||||
#include "WateringSistem.h"
|
||||
|
||||
class SmartHome {
|
||||
private:
|
||||
std::string name;
|
||||
std::vector<Device*> devices;
|
||||
public:
|
||||
explicit SmartHome(std::string name);
|
||||
|
||||
~SmartHome();
|
||||
|
||||
std::string toString() const;
|
||||
|
||||
void addDevice(Device *device);
|
||||
};
|
||||
|
||||
|
||||
#endif //NALOGA0502_SMARTHOME_H
|
7
semester_2/programiranje_2/naloga0502/WateringSistem.cpp
Normal file
7
semester_2/programiranje_2/naloga0502/WateringSistem.cpp
Normal file
@@ -0,0 +1,7 @@
|
||||
#include "WateringSistem.h"
|
||||
|
||||
WateringSistem::WateringSistem(std::string id, std::string name, int startHour, int endHour) : Device(id,name), startHour(startHour), endHour(endHour) {}
|
||||
|
||||
std::string WateringSistem::toString() const {
|
||||
return " id: " + id + " name: " + name + " start hour: " + std::to_string(startHour) + " end hour: " + std::to_string(endHour) + "\n";
|
||||
}
|
16
semester_2/programiranje_2/naloga0502/WateringSistem.h
Normal file
16
semester_2/programiranje_2/naloga0502/WateringSistem.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#ifndef NALOGA0502_WATERINGSISTEM_H
|
||||
#define NALOGA0502_WATERINGSISTEM_H
|
||||
|
||||
#include "Device.h"
|
||||
|
||||
class WateringSistem : public Device {
|
||||
private:
|
||||
int startHour, endHour;
|
||||
public:
|
||||
WateringSistem(std::string id, std::string name, int startHour, int endHour);
|
||||
|
||||
std::string toString() const override;
|
||||
};
|
||||
|
||||
|
||||
#endif //NALOGA0502_WATERINGSISTEM_H
|
19
semester_2/programiranje_2/naloga0502/naloga0502.cpp
Normal file
19
semester_2/programiranje_2/naloga0502/naloga0502.cpp
Normal file
@@ -0,0 +1,19 @@
|
||||
#include <iostream>
|
||||
#include "SmartHome.h"
|
||||
int main() {
|
||||
SmartHome* nik = new SmartHome("SH");
|
||||
Device* lig = new Light("ha","ja", true);
|
||||
Device* device = new Device("haja", "lada");
|
||||
Device* blind = new Blinds("bli", "ka", true);
|
||||
Device* garage = new GarageDoor("dor", "dore", false);
|
||||
Device* water = new WateringSistem("water", "sistem", 15698,12345);
|
||||
|
||||
nik->addDevice(lig);
|
||||
nik->addDevice(device);
|
||||
nik->addDevice(blind);
|
||||
nik->addDevice(garage);
|
||||
nik->addDevice(water);
|
||||
std::cout << nik->toString();
|
||||
delete nik;
|
||||
return 0;
|
||||
}
|
@@ -0,0 +1 @@
|
||||
<mxfile host="app.diagrams.net" modified="2022-03-28T12:31:55.235Z" agent="5.0 (Windows)" etag="QqLV9jsSKciBJbAK_OLZ" version="17.2.4" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">7VpZb+M2EP41BtICNnT6ePSRo9mkza7TJtmXgLZoWY0kein6ykN/eymROknfVhx3awSIOOIhzjfzzQylit71FtcYTMb3yIJuRVOsRUXvVTRNNTStEv4p1pJJGiYX2NixeKdU0HfeIRcqXDp1LBjkOhKEXOJM8sIh8n04JDkZwBjN891GyM2vOgE2FAT9IXBF6ZNjkTGTNrVGKr+Bjj2OV1brLXbHA3FnvpNgDCw0z4j0y4rexQgRduUtutANlRfr5em35ZN791a/vv0a/AB/dr48/v5XlU12tcuQZAsY+mTvqV869zZuf+ncvfYfutjEt8PbH1WVqyEgy1hh0KL6402EyRjZyAfuZSrtYDT1LRhOq9BW2ucOoQkVqlT4NyRkyY0BTAmiojHxXH4XLhzynLl+CaeqmbzVW/CZo8YybvgEL5+jjopixgI2Utf1WJAOjlq50Q8QOx4kECdCqx1aGG1aDvCQbz2OHZ/duHJcl3cLCEZvifGokQRgEg/1kQ9jWWbUlphxbAM0xUO4DihulXQVG5J1HQ3WMYQx4wHcJq4hohrAS9oBQxcQZ5Z3E8C9zU76pRZFL7hR7WBgnCxmwJ3ylXpw5tCtFs0umDueCyJV7qa6GcQELtZuld81m9yTOZXFzXnKC5rCZeMMJyRCmXb4at8odwHfprtJltMa+eVa4nIN2Wp6fjHgUov1AYGd0O0CAZFkn/uDpAsgVTSKgsKguqAO4Pg2m0TrRrBxgQ88+EtFq7v02TsDTK9sEgEoSjoR8fejkRd0DPWRdmaqgjXMxw6B/QmIfGJOI1OeQIDr2NRRey4cEanBrLXFzQazjGPYlhairrOQg/zHkECjcygKKtwGBZ2Ddh7617ZUf7Ms7auiZ/Q9yvM3yDsJg7UamxlM/xkZTJX5SUg5CVwX+5LWP+kUO4wClsXZk/37NUyho6uU+2Yo9OIzIc/EFbb2XnNL41TN0tzXFKyiekoC3F2HMgaU6VAvTYUtQYXMjANBZXRLRK6lIVVLmHV3wo07tDZr8xueY1mspICB8w4G0VRh9jxBjk+ivZiditkL56JVRMAKCjVJyrvIRTjNwUc0/S6IymLiZj1PjWpDRKouZeKSgIonzjHg/6VdYgg71XRoAv3yazoO0OaSjvvg8Uo6PvQh9LLUphuF+kgt5lVsR3xU9qihMFGrodYoqyc/teAqrVrLaKW/QrrA9CGscqxUIfaLjKMotZr/c9OZAH1dpDOjJDr7fq/MXBhMHM9p39xWrxAMXqti5L5cEBhnjycitZTIXrI8tonUcpSmbqSzhLkGLhq+CdS1PwlJFb0tCWmlcBDdKlhmOnBHWUlR9YKd6kbh0HO3/vSCPcG+DLNOpRnbvYs85hRHXoU0xZCdaJiypNwoy7ObgnbCnJxMsQ+tP/wkLx8g5Aoay3vyoTn6WvAOStFlGi1NoXVJ4hcWjJHRbTi8YyKm6wSD45zo1YEXAuIPgkmi/U8OpSToSaE8xnmT9InjAvGswlvTaOQCXE1R6wfm7MeOfOD18fvMhu+LXhtefpt1nx8WN/x12ebIp5cS+cSkeRVVb8i+dw2hxTNEQ10fQov9N4XchtH6+JArOf9bly/egQF0y0vut+SnlcdBydtwvkol+8JZFuZp4dxQGnm1s9a+Rhl3QaNRAA+tw6S7180z5Dptp1x+hHzCn0RVT5Db69sm90enuIOioC5mNCd05iKIWzp3bN6HO3dVqal1Q895t/bpvVssgq4BBjbsIYQFGD+gEiq+yzLiU6nTVUK6+HYxLIXY4eMpa6AEvPMpgvRVLwBTq9ulFAox+K+UQbuj+ZF10LrUPANmx3Vk/C8Qh4Rut+OS1W96THm+/DHEIVWPKqgn5I3w+0RqSSUfoGxQ8Go4PwV3SB9PDFXMq5nN7UIbDIIzIY7jI1kib9Bm+qUtS1LS75X1y38B</diagram></mxfile>
|
Reference in New Issue
Block a user