From 508a3b5ba909f2524886a13ef9f941d3d8f26580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavle=20Ivanovi=C4=87?= <105980398+pavleiv@users.noreply.github.com> Date: Fri, 29 Mar 2024 18:23:36 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Sre=C4=91ivanje=20koda.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aviokompanija.py | 30 ++++++ Destinacija.py | 18 ++++ KlasaLeta.py | 19 ++++ Korisnik.py | 97 ++++++++++++++++++ Let.py | 22 +++++ Modeli.py | 249 +++++------------------------------------------ Node.py | 26 +++++ Sediste.py | 13 +++ 8 files changed, 249 insertions(+), 225 deletions(-) create mode 100644 Aviokompanija.py create mode 100644 Destinacija.py create mode 100644 KlasaLeta.py create mode 100644 Korisnik.py create mode 100644 Let.py create mode 100644 Node.py create mode 100644 Sediste.py diff --git a/Aviokompanija.py b/Aviokompanija.py new file mode 100644 index 0000000..c733913 --- /dev/null +++ b/Aviokompanija.py @@ -0,0 +1,30 @@ +from Node import * + +class Aviokompanija: + def __init__(self): + self._letovi = Node(-1, -1) + + def getLetovi(self): + return self._letovi + + def traziLet(self, atributi): + return self.getLetovi().dfs_search(atributi) + + def dodajLet(self, let): + tr_node = self.getLetovi() + polazak = let.getPolazak() + dolazak = let.getDolazak() + destinacije = [polazak.getMesto(), polazak.getDatum(), polazak.getVreme(), dolazak.getMesto(), dolazak.getDatum(), dolazak.getVreme()] + for i in range(6): + for child in tr_node.children: + #print("Dodavanje") + #print(tr_node.value) + #print(destinacije[i], child.value) + #for child2 in child.children: + # print(child2.value) + if destinacije[i] == child.value: + print("desilo se") + tr_node = child + break + tr_node.add_child(Node(destinacije[i], i)) + tr_node = tr_node.children[-1] \ No newline at end of file diff --git a/Destinacija.py b/Destinacija.py new file mode 100644 index 0000000..258fce8 --- /dev/null +++ b/Destinacija.py @@ -0,0 +1,18 @@ +class Destinacija: + def __init__(self, vreme, datum, mesto, polazakDolazak): + self._vreme = vreme + self._datum = datum + self._mesto = mesto + self._polazakDolazak = polazakDolazak + + def getVreme(self): + return self._vreme + + def getDatum(self): + return self._datum + + def getMesto(self): + return self._mesto + + def getPolazakDolazak(self): + return self._polazakDolazak \ No newline at end of file diff --git a/KlasaLeta.py b/KlasaLeta.py new file mode 100644 index 0000000..b72315f --- /dev/null +++ b/KlasaLeta.py @@ -0,0 +1,19 @@ +class KlasaLeta: + def __init__(self, id, sedista, cena): + self._id = id + self._sedista = sedista + self._cena = cena + + def getId(self): + return self._id + + def getSedista(self): + return self._sedista + + def getCena(self): + return self._cena + + def proveriZauzetost(self): + if len(self._sedista) == 0: + return True + return False \ No newline at end of file diff --git a/Korisnik.py b/Korisnik.py new file mode 100644 index 0000000..b33761a --- /dev/null +++ b/Korisnik.py @@ -0,0 +1,97 @@ +class Korisnik: + def __init__(self): + self._username = None + self._lozinka = None + self._mail = None + self._istorijaPutovanja = None + self._preference = None + self._kontakt = None + self._placanje = None + + def getUsername(self): + return self._username + + def setUsername(self, username): + self._username = username + + def getLozinka(self): + return self._lozinka + + def setLozinka(self, lozinka): + self._lozinka = lozinka + + def getMail(self): + return self._mail + + def setMail(self, mail): + self._mail = mail + + def getIstorijaPutovanja(self): + return self._istorijaPutovanja + + def setIstorijaPutovanja(self, istorijaPutovanja): + self._istorijaPutovanja = istorijaPutovanja + + def getPreference(self): + return self._preference + + def setPreference(self, preference): + self._preference = preference + + def getKontakt(self): + return self._kontakt + + def setKontakt(self, kontakt): + self._kontakt = kontakt + + def getPlacanje(self): + return self._placanje + + def setPlacanje(self, placanje): + self._placanje = placanje + + def dajArgumente(self, atributi, aviokompanija): + return aviokompanija.traziLet(atributi) + + def signup(self, sgnup, file, lines): + print("signup") + for line in lines: + #print("bbb") + info = line.split(",") + ok = True + for i in range(len(sgnup)): + if info[i] != sgnup[i]: + ok = False + break + if ok: + return True + info = ','.join([str(x) for x in sgnup]) + file.write(info + "\n") + + lines.append(info) + return False + + def login(self, lgin, lines): + print("login") + for line in lines: + info = line.split(",") + ok = True + for i in range(len(lgin)): + if info[i] != lgin[i]: + ok = False + break + if ok: + self.setUsername(lgin[0]) + self.setLozinka(lgin[1]) + return True + return False + + + def logout(self): + self._username = None + self._lozinka = None + self._mail = None + self._istorijaPutovanja = None + self._preference = None + self._kontakt = None + self._kartica = None \ No newline at end of file diff --git a/Let.py b/Let.py new file mode 100644 index 0000000..992c482 --- /dev/null +++ b/Let.py @@ -0,0 +1,22 @@ +class Let: + def __init__(self, brojPutnika, trajanje, klase, polazak, dolazak): + self._brojPutnika = brojPutnika + self._trajanje = trajanje + self._klase = klase + self._polazak = polazak + self._dolazak = dolazak + + def getBrojPutnika(self): + return self._brojPutnika + + def getTrajanje(self): + return self._trajanje + + def getKlase(self): + return self._klase + + def getPolazak(self): + return self._polazak + + def getDolazak(self): + return self._dolazak \ No newline at end of file diff --git a/Modeli.py b/Modeli.py index c52c00a..4a983df 100644 --- a/Modeli.py +++ b/Modeli.py @@ -1,202 +1,29 @@ -class Node: - def __init__(self, value, depth): - self.value = value - self.depth = depth - self.children = [] +from Node import * +from KlasaLeta import * +from Sediste import * +from Destinacija import * +from Let import * +from Korisnik import * +from Aviokompanija import * - def add_child(self, child_node): - self.children.append(child_node) +file = open("Korisnici.txt", "r+") +lines = file.readlines() +for i in range(len(lines)): + lines[i] = lines[i][:len(lines[i])-1] - def remove_child(self, child_node): - self.children = [child for child in self.children - if child is not child_node] - - def dfs_search(self, target): - #print(self.depth, self.value, target[self.depth]) - if self is None: - return False - if self.depth == 5 and self.value == target[self.depth]: - return True - - for child in self.children: - #print(child.value, child.children) - if child.value == target[self.depth + 1]: - if child.dfs_search(target): - return True - - -class Destinacija: - def __init__(self, vreme, datum, mesto, polazakDolazak): - self._vreme = vreme - self._datum = datum - self._mesto = mesto - self._polazakDolazak = polazakDolazak - - def getVreme(self): - return self._vreme - - def getDatum(self): - return self._datum - - def getMesto(self): - return self._mesto - - def getPolazakDolazak(self): - return self._polazakDolazak - -class Sediste: - def __init__(self, id, dostupnost): - self._id = id - self._dostupnost = dostupnost - - def getId(self): - return self._id - - def getDostupnost(self): - return self._dostupnost - - def setDostupnost(self, dostupnost): - self._dostupnost = dostupnost - -class KlasaLeta: - def __init__(self, id, sedista, cena): - self._id = id - self._sedista = sedista - self._cena = cena - - def getId(self): - return self._id - - def getSedista(self): - return self._sedista - - def getCena(self): - return self._cena - - def proveriZauzetost(self): - if len(self._sedista) == 0: - return True - return False - -class Let: - def __init__(self, brojPutnika, trajanje, klase, polazak, dolazak): - self._brojPutnika = brojPutnika - self._trajanje = trajanje - self._klase = klase - self._polazak = polazak - self._dolazak = dolazak - - def getBrojPutnika(self): - return self._brojPutnika - - def getTrajanje(self): - return self._trajanje - - def getKlase(self): - return self._klase - - def getPolazak(self): - return self._polazak - - def getDolazak(self): - return self._dolazak - -class Aviokompanija: - def __init__(self): - self._letovi = Node(-1, -1) - - def getLetovi(self): - return self._letovi - - def traziLet(self, atributi): - return self.getLetovi().dfs_search(atributi) - - def dodajLet(self, let): - tr_node = self.getLetovi() - polazak = let.getPolazak() - dolazak = let.getDolazak() - destinacije = [polazak.getMesto(), polazak.getDatum(), polazak.getVreme(), dolazak.getMesto(), dolazak.getDatum(), dolazak.getVreme()] - for i in range(6): - for child in tr_node.children: - #print("Dodavanje") - #print(tr_node.value) - #print(destinacije[i], child.value) - #for child2 in child.children: - # print(child2.value) - if destinacije[i] == child.value: - print("desilo se") - tr_node = child - break - tr_node.add_child(Node(destinacije[i], i)) - tr_node = tr_node.children[-1] - -class Korisnik: - def __init__(self): - self._username = None - self._lozinka = None - self._mail = None - self._istorijaPutovanja = None - self._preference = None - self._kontakt = None - self._kartica = None - - def getUsername(self): - return self._username - - def setUsername(self, username): - self._username = username - - def getLozinka(self): - return self._lozinka - - def setLozinka(self, lozinka): - self._lozinka = lozinka - - def getMail(self): - return self._mail - - def setMail(self, mail): - self._mail = mail - - def getIstorijaPutovanja(self): - return self._istorijaPutovanja - - def setIstorijaPutovanja(self, istorijaPutovanja): - self._istorijaPutovanja = istorijaPutovanja - - def getPreference(self): - return self._preference - - def setPreference(self, preference): - self._preference = preference - - def getKontakt(self): - return self._kontakt - - def setKontakt(self, kontakt): - self._kontakt = kontakt - - def getKartica(self): - return self._kartica - - def setKartica(self, kartica): - self._kartica = kartica - - def dajArgumente(self, atributi, aviokompanija): - return aviokompanija.traziLet(atributi) +"""" +aviokompanija = Aviokompanija() - def login(self): - pass +korisnik = Korisnik() +#korisnik.setUsername("pavleiv") +#korisnik.setLozinka("qwerty") - def logout(self): - self._username = None - self._lozinka = None - self._mail = None - self._istorijaPutovanja = None - self._preference = None - self._kontakt = None - self._kartica = None +print(korisnik.signup(['asdf', 'asdf123'])) +print(korisnik.login(['asdf', 'asdf123'])) +print(korisnik.getUsername(), korisnik.getLozinka()) +print(korisnik.login(['pavleiv', 'qwerty123'])) +print(korisnik.getUsername(), korisnik.getLozinka()) KlasaEkonomska = KlasaLeta(0, [Sediste(0, 1), Sediste(1, 1)], 500) # 0 - ekonomska KlasaBiznis = KlasaLeta(1, [Sediste(0, 1), Sediste(1, 1)], 1000) # 1 - biznis @@ -207,39 +34,11 @@ def logout(self): Let1 = Let(300, 150, [KlasaEkonomska, KlasaBiznis, KlasaPrva], Polazak, Dolazak) -""" -root = Node(-1, -1) -tr_node = Node("London", 0) -root.add_child(tr_node) -sledeci_node = Node("04.04.2024", 1) -tr_node.add_child(sledeci_node) -tr_node = sledeci_node -sledeci_node = Node("19:30", 2) -tr_node.add_child(sledeci_node) - -tr_node = sledeci_node -sledeci_node = Node("Madrid", 3) -tr_node.add_child(sledeci_node) - -tr_node = sledeci_node -sledeci_node = Node("04.04.2024", 4) -tr_node.add_child(sledeci_node) - -tr_node = sledeci_node -sledeci_node = Node("22:00", 5) -tr_node.add_child(sledeci_node) -""" - -korisnik = Korisnik() - argumenti = ["London", "04.04.2024", "19:30", "Madrid", "04.04.2024", "22:00"] -aviokompanija = Aviokompanija() - aviokompanija.dodajLet(Let1) #print(aviokompanija._letovi.children[0].value) -print(korisnik.dajArgumente(argumenti, aviokompanija)) - - - +#print(korisnik.dajArgumente(argumenti, aviokompanija)) +""" +file.close() \ No newline at end of file diff --git a/Node.py b/Node.py new file mode 100644 index 0000000..db5b426 --- /dev/null +++ b/Node.py @@ -0,0 +1,26 @@ +class Node: + def __init__(self, value, depth): + self.value = value + self.depth = depth + self.children = [] + + def add_child(self, child_node): + self.children.append(child_node) + + def remove_child(self, child_node): + self.children = [child for child in self.children + if child is not child_node] + + def dfs_search(self, target): + #print(self.depth, self.value, target[self.depth]) + if self is None: + return False + + if self.depth == 5 and self.value == target[self.depth]: + return True + + for child in self.children: + #print(child.value, child.children) + if child.value == target[self.depth + 1]: + if child.dfs_search(target): + return True \ No newline at end of file diff --git a/Sediste.py b/Sediste.py new file mode 100644 index 0000000..250152d --- /dev/null +++ b/Sediste.py @@ -0,0 +1,13 @@ +class Sediste: + def __init__(self, id, dostupnost): + self._id = id + self._dostupnost = dostupnost + + def getId(self): + return self._id + + def getDostupnost(self): + return self._dostupnost + + def setDostupnost(self, dostupnost): + self._dostupnost = dostupnost \ No newline at end of file From d391e67c66dda51a3a96ffe39787d5d282a5ce53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavle=20Ivanovi=C4=87?= <105980398+pavleiv@users.noreply.github.com> Date: Fri, 29 Mar 2024 18:35:15 +0100 Subject: [PATCH 2/2] Fixing bugs --- Modeli_test.py | 8 +++++++- Sediste.py | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Modeli_test.py b/Modeli_test.py index a7bd3af..0e9f0db 100644 --- a/Modeli_test.py +++ b/Modeli_test.py @@ -1,4 +1,10 @@ -from Modeli import * +from Node import * +from KlasaLeta import * +from Sediste import * +from Destinacija import * +from Let import * +from Korisnik import * +from Aviokompanija import * import pytest aviokompanija = Aviokompanija() diff --git a/Sediste.py b/Sediste.py index 250152d..d5ad3f7 100644 --- a/Sediste.py +++ b/Sediste.py @@ -2,7 +2,6 @@ class Sediste: def __init__(self, id, dostupnost): self._id = id self._dostupnost = dostupnost - def getId(self): return self._id