consolidate all repos to one for archive

This commit is contained in:
2025-01-28 13:46:42 +01:00
commit a6610fbc7a
5350 changed files with 2705721 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
Izmislite si dva (izvirna) razreda (ni dovoljena uporaba razredov iz prejšnjih nalog in primerov iz predavanj). Vsak naj ima vsaj dve instančni spremenljivki, privzeti in nastavitveni konstruktor ter metodo toString.
Ustvarite datoteko VectorUtil.h, kjer boste imeli več šablon fukcij. Datoteka naj vsebuje samo funkcije, brez razreda. Napišite (glej spodaj glavni program, vendar uporabite lastne razrede):
Šablono funkcije fillDefault, ki prejme vektor kot argument in ga napolni z N (parameter šablone) objekti ( klic default konstruktorja).
Šablono funkcije toString, ki prejme vektor kot argument in vse elemente s pomočjo metode toString združi v en string in ga vrne.
Šablono funkcije print, ki prejme vektor kot argument in izpiše vse elemente z uporabo funkcije toString nad objekti.
Šablono funkcije reverse, ki prejme vektor kot argument in vrne vektor z obratnim vrstnim redom (ni dovoljena uporaba knjižnic kot npr. std::reverse).
Naredite specializacijo šablone funkcije fillDefault za en razred tako, da ne kličete privzetega konstruktorja, ampak nastavitveni konstruktor (naključno generirajte vrednosti).
Primer glavnega programa:
#include <vector>
#include "ColorCode.h"
#include "VectorUtil.h"
#include "Point.h"
using namespace std;
int main() {
vector<Point> list;
cout << "Default generator of 40 objects" << endl;
fillDefault<40>(list);
cout << "Prints by using toString function" << endl;
print(list);
cout << toString(list);
cout << "Return new list with Reversed order" << endl;
vector<Point> list2 = reverse(list);
print(list2);
vector<Grade> grades;
fillDefault<12>(grades);
print(grades);
return 0;
}

View File

@@ -0,0 +1,11 @@
//
// Created by Nik on 22/04/2022.
//
#include "Racunalnik.h"
Racunalnik::Racunalnik(int poraba, int volumen) : poraba(poraba), volumen(volumen) {}
std::string Racunalnik::toString() const {
return "Poraba:" + std::to_string(poraba) + "W Volumen:" + std::to_string(volumen) + " \n";
}

View File

@@ -0,0 +1,20 @@
//
// Created by Nik on 22/04/2022.
//
#ifndef NALOGA0701_RACUNALNIK_H
#define NALOGA0701_RACUNALNIK_H
#include <string>
class Racunalnik {
private:
int poraba = 600;
int volumen = 7;
public:
Racunalnik() = default;
Racunalnik(int poraba, int volumen);
std::string toString() const;
};
#endif //NALOGA0701_RACUNALNIK_H

View File

@@ -0,0 +1,9 @@
#include "Telefon.h"
Telefon::Telefon(int size, int battery, int camera) : size(size), battery(battery), camera(camera) {}
std::string Telefon::toString() const {
//return "Diagonal size:" + std::to_string(size) + "Inc Battery size:" + std::to_string(battery) + "mHa Camera sensor:" + std::to_string(camera) + "MP \n";
return std::to_string(size) + " " + std::to_string(battery) + " " + std::to_string(camera) + " \n";
}

View File

@@ -0,0 +1,18 @@
//
// Created by Nik on 22/04/2022.
//
#ifndef NALOGA0701_TELEFON_H
#define NALOGA0701_TELEFON_H
#include <string>
class Telefon {
private:
int size = 6, battery = 4000, camera = 8;
public:
Telefon(int size, int battery, int camera);
std::string toString() const;
};
#endif //NALOGA0701_TELEFON_H

View File

@@ -0,0 +1,59 @@
#ifndef NALOGA0701_VECTORUTIL_H
#define NALOGA0701_VECTORUTIL_H
#include <vector>
#include <string>
#include <cstdlib>
#include <iostream>
#include "Telefon.h"
template<int N, typename T>
void fillDefault(std::vector<T> &vector) {
for (int i = 0; i < N; ++i) {
vector.push_back(T());
}
}
template<int N>
void fillDefault(std::vector<Telefon> &vector) {
for (int i = 0; i < N; ++i) {
vector.push_back({rand() % 8 + 3, rand() % 3000 + 2000, rand() % 8 + 4});
}
}
template<typename T>
std::string toString(const std::vector<T> &vector) {
std::string ret;
for (int i = 0; i < vector.size(); ++i) {
ret += vector[i].toString();
}
ret += "\n";
return ret;
}
template<typename T>
void print(const std::vector<T> &vector) {
for (int i = 0; i < vector.size(); ++i) {
std::cout << vector[i].toString();
}
std::cout << "\n";
}
template<typename T>
std::vector<T> reverse(const std::vector<T> vector) {
std::vector<T> ret;
for (int i = vector.size(); i > 0; --i) {
ret.push_back(vector[i - 1]);
}
return ret;
}
template <typename T>
bool findInList(const std::vector<T> vector, T srch){
for (int i = 0; i < vector.size(); ++i) {
if(vector[i].toString() == srch.toString()) return true;
}
return false;
}
#endif //NALOGA0701_VECTORUTIL_H

View File

@@ -0,0 +1,28 @@
#include "VectorUtil.h"
#include "Telefon.h"
#include "Racunalnik.h"
int main() {
std::vector<Telefon> telList;
std::vector<Telefon> telRList;
std::vector<Racunalnik> racList;
fillDefault<6>(racList);
std::cout << "--------------print Rac-------------------------------\n";
print(racList);
fillDefault<5>(telList);
std::cout << "--------------print Tel-------------------------------\n";
print(telList);
std::cout << "--------------toString Tel-------------------------------\n";
std::cout << toString(telList);
std::cout << "--------------revers Tel-------------------------------\n";
telRList = reverse(telList);
print(telRList);
std::cout << "--------------revers Tel-------------------------------\n";
Telefon t(4,3827,5);
if(findInList(telList,t)){
std::cout << "true";
}else{
std::cout << "false";
}
return 0;
}