consolidate all repos to one for archive
This commit is contained in:
11
semester_2/programiranje_2/naloga0602/Lokomotiva.cpp
Normal file
11
semester_2/programiranje_2/naloga0602/Lokomotiva.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
//
|
||||
// Created by Nik on 11/04/2022.
|
||||
//
|
||||
|
||||
#include "Lokomotiva.h"
|
||||
|
||||
Lokomotiva::Lokomotiva(double dolzina, double sirina, double moc) : Prikljucek(dolzina, sirina), moc(moc){}
|
||||
|
||||
std::string Lokomotiva::toString() const {
|
||||
return "dolzina: " + std::to_string(dolzina) + " sirina: " + std::to_string(sirina) + " Moc: " + std::to_string(moc) + "\n";
|
||||
}
|
19
semester_2/programiranje_2/naloga0602/Lokomotiva.h
Normal file
19
semester_2/programiranje_2/naloga0602/Lokomotiva.h
Normal file
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// Created by Nik on 11/04/2022.
|
||||
//
|
||||
|
||||
#ifndef NALOGA0602_LOKOMOTIVA_H
|
||||
#define NALOGA0602_LOKOMOTIVA_H
|
||||
|
||||
#include "Prikljucek.h"
|
||||
|
||||
class Lokomotiva : public Prikljucek{
|
||||
private:
|
||||
double moc;
|
||||
public:
|
||||
Lokomotiva(double dolzina, double sirina, double moc);
|
||||
std::string toString() const override;
|
||||
};
|
||||
|
||||
|
||||
#endif //NALOGA0602_LOKOMOTIVA_H
|
11
semester_2/programiranje_2/naloga0602/Prikljucek.cpp
Normal file
11
semester_2/programiranje_2/naloga0602/Prikljucek.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
//
|
||||
// Created by Nik on 11/04/2022.
|
||||
//
|
||||
|
||||
#include "Prikljucek.h"
|
||||
|
||||
Prikljucek::Prikljucek(double dolzina, double sirina) : dolzina(dolzina), sirina(sirina) {}
|
||||
|
||||
unsigned int Prikljucek::getLenght() {
|
||||
return dolzina;
|
||||
}
|
20
semester_2/programiranje_2/naloga0602/Prikljucek.h
Normal file
20
semester_2/programiranje_2/naloga0602/Prikljucek.h
Normal file
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// Created by Nik on 11/04/2022.
|
||||
//
|
||||
|
||||
#ifndef NALOGA0602_PRIKLJUCEK_H
|
||||
#define NALOGA0602_PRIKLJUCEK_H
|
||||
|
||||
#include <string>
|
||||
|
||||
class Prikljucek {
|
||||
protected:
|
||||
double dolzina, sirina;
|
||||
public:
|
||||
Prikljucek(double dolzina, double sirina);
|
||||
virtual std::string toString() const = 0;
|
||||
unsigned int getLenght();
|
||||
};
|
||||
|
||||
|
||||
#endif //NALOGA0602_PRIKLJUCEK_H
|
12
semester_2/programiranje_2/naloga0602/README.md
Normal file
12
semester_2/programiranje_2/naloga0602/README.md
Normal file
@@ -0,0 +1,12 @@
|
||||
Izmislite si svoj smiselni primer, ki vsebuje abstraktni razred. Pri tem pa morate imeti:
|
||||
|
||||
abstraktni razred (torej mora imeti vsaj eno abstraktno metodo),
|
||||
vsaj dva razreda, ki dedujeta iz abstraktnega razreda,
|
||||
en razred, ki ima kot instančno spremenljivko seznam kazalcev na abstraktni razred,
|
||||
glavni program, naj bo smiselno zaokrožen in ima tudi menu.
|
||||
|
||||
Ni dovoljena uporaba primera iz predavanj ali pa primerov iz prejšnih nalog kot tudi ne:
|
||||
|
||||
Animal
|
||||
Vehicle
|
||||
Shape
|
24
semester_2/programiranje_2/naloga0602/Vagon.cpp
Normal file
24
semester_2/programiranje_2/naloga0602/Vagon.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
//
|
||||
// Created by Nik on 11/04/2022.
|
||||
//
|
||||
|
||||
#include "Vagon.h"
|
||||
|
||||
Vagon::Vagon(double dolzina, double sirina, TipVag tip) : Prikljucek(dolzina,sirina), tip(tip) {}
|
||||
|
||||
std::string Vagon::tipV() const {
|
||||
switch (tip) {
|
||||
case TipVag::Potniski:
|
||||
return "Potniski";
|
||||
case TipVag::Tovorni:
|
||||
return "Tovorni";
|
||||
default:
|
||||
return "?";
|
||||
}
|
||||
}
|
||||
|
||||
std::string Vagon::toString() const {
|
||||
return "dolzina: " + std::to_string(dolzina) + " sirina: " + std::to_string(sirina) + " Tip Vagona: " + tipV() + "\n";
|
||||
}
|
||||
|
||||
|
25
semester_2/programiranje_2/naloga0602/Vagon.h
Normal file
25
semester_2/programiranje_2/naloga0602/Vagon.h
Normal file
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// Created by Nik on 11/04/2022.
|
||||
//
|
||||
|
||||
#ifndef NALOGA0602_VAGON_H
|
||||
#define NALOGA0602_VAGON_H
|
||||
|
||||
#include "Prikljucek.h"
|
||||
|
||||
enum TipVag{
|
||||
Potniski = 0,
|
||||
Tovorni = 1
|
||||
};
|
||||
|
||||
class Vagon : public Prikljucek{
|
||||
private:
|
||||
TipVag tip;
|
||||
public:
|
||||
Vagon(double dolzina, double sirina, TipVag tip);
|
||||
std::string tipV() const;
|
||||
std::string toString() const override;
|
||||
};
|
||||
|
||||
|
||||
#endif //NALOGA0602_VAGON_H
|
54
semester_2/programiranje_2/naloga0602/Vlak.cpp
Normal file
54
semester_2/programiranje_2/naloga0602/Vlak.cpp
Normal file
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// Created by Nik on 11/04/2022.
|
||||
//
|
||||
|
||||
#include "Vlak.h"
|
||||
|
||||
|
||||
void Vlak::addPriklucek(Prikljucek *p) {
|
||||
vlak.push_back(p);
|
||||
}
|
||||
|
||||
std::string Vlak::toString() const {
|
||||
std::string ret;
|
||||
for(auto v:vlak){
|
||||
ret += v->toString();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::vector<Prikljucek*> Vlak::generate(unsigned int amount) {
|
||||
std::vector<Prikljucek*> ret;
|
||||
|
||||
for(int i = 0; i < amount; i++) {
|
||||
if (rand() % 2 == 1) {
|
||||
int y = (int) rand() % 2;
|
||||
TipVag tp;
|
||||
switch (y) {
|
||||
case 0:
|
||||
tp = TipVag::Potniski;
|
||||
break;
|
||||
case 1:
|
||||
tp = TipVag::Tovorni;
|
||||
break;
|
||||
}
|
||||
//Vagon j(rand() % 100, rand() % 100, tp);
|
||||
ret.push_back(new Vagon(100, 100, tp));
|
||||
|
||||
} else {
|
||||
// Lokomotiva k(rand()%100, rand()%100,rand()%1000+1);
|
||||
ret.push_back(new Lokomotiva(rand() % 100, rand() % 100, rand() % 1000 + 1));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
unsigned int Vlak::lenghtOfTranin() const {
|
||||
unsigned int len = 0;
|
||||
for(auto t: vlak){
|
||||
len += t->getLenght();
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
|
25
semester_2/programiranje_2/naloga0602/Vlak.h
Normal file
25
semester_2/programiranje_2/naloga0602/Vlak.h
Normal file
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// Created by Nik on 11/04/2022.
|
||||
//
|
||||
|
||||
#ifndef NALOGA0602_VLAK_H
|
||||
#define NALOGA0602_VLAK_H
|
||||
|
||||
#include <vector>
|
||||
#include "Prikljucek.h"
|
||||
#include "Lokomotiva.h"
|
||||
#include "Vagon.h"
|
||||
#include <random>
|
||||
|
||||
class Vlak {
|
||||
private:
|
||||
std::vector<Prikljucek*> vlak;
|
||||
public:
|
||||
void addPriklucek(Prikljucek *p);
|
||||
std::string toString() const;
|
||||
static std::vector<Prikljucek*> generate(unsigned int amount);
|
||||
unsigned int lenghtOfTranin() const;
|
||||
};
|
||||
|
||||
|
||||
#endif //NALOGA0602_VLAK_H
|
27
semester_2/programiranje_2/naloga0602/main.cpp
Normal file
27
semester_2/programiranje_2/naloga0602/main.cpp
Normal file
@@ -0,0 +1,27 @@
|
||||
#include <iostream>
|
||||
#include "Vlak.h"
|
||||
|
||||
int main() {
|
||||
Vlak nik;
|
||||
Vagon pot(34,56,TipVag::Potniski);
|
||||
Vagon tov(23,67,TipVag::Tovorni);
|
||||
Lokomotiva lok(56,78,1000);
|
||||
nik.addPriklucek(&pot);
|
||||
nik.addPriklucek(&tov);
|
||||
nik.addPriklucek(&lok);
|
||||
|
||||
std::cout << nik.toString();
|
||||
std::cout << nik.lenghtOfTranin();
|
||||
std::cout << "\n\n\n";
|
||||
|
||||
|
||||
|
||||
std::vector<Prikljucek*> gen = Vlak::generate(6);
|
||||
|
||||
for(auto t: gen){
|
||||
std::cout << t->toString();
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user