From e0b9553b0588a7b940b7164bc17d2b96d9a512cb Mon Sep 17 00:00:00 2001 From: Sander Linnerud <linnerudsander@gmail.com> Date: Wed, 15 Mar 2023 11:24:02 +0100 Subject: [PATCH 1/5] Snart ferdig med brukerhistorie C. Mangler bare siste formattering av siste utskriften --- brukerhistorieC.py | 83 ++++++++++++++++++++++++++++++ db1.db | Bin 155648 -> 155648 bytes db2.py | 123 ++++++++++++++++++++++++++++++++------------- 3 files changed, 171 insertions(+), 35 deletions(-) diff --git a/brukerhistorieC.py b/brukerhistorieC.py index e69de29..04bdef5 100644 --- a/brukerhistorieC.py +++ b/brukerhistorieC.py @@ -0,0 +1,83 @@ +import sqlite3 +from prettytable import PrettyTable + +con = sqlite3.connect("db1.db") +cursor = con.cursor() +stasjoner = [] + + +def printStasjoner(): + global stasjoner + cursor.execute("SELECT * FROM Jernbanestasjon") + rows = cursor.fetchall() + stasjoner = rows + + # Lager en tabell med 'Stasjon' som header + table = PrettyTable(['Stasjon']) + + # Legger til stasjonnavnene som data + for stasjon in stasjoner: + table.add_row([stasjon[0]]) + + print(table) + + +def checkStasjon(brukerStasjon): + for stasjon in stasjoner: + if (stasjon[0].lower() == brukerStasjon.lower()): + return True + return False + + +def checkRuter(brukerStasjon): + cursor.execute("SELECT * FROM GaarInnom") + rows = cursor.fetchall() + mellomstasjonsruter = rows + mellomDict = {} + for mellom in mellomstasjonsruter: + if (mellom[0].lower() == brukerStasjon.lower()): + if mellom[0] in mellomDict: + mellomDict[mellom[0]].append(mellom[1]) + else: + mellomDict[mellom[0]] = [mellom[1]] + return mellomDict + + +def checkDag(rute, brukerDag): + cursor.execute("SELECT * FROM Togrute") + rows = cursor.fetchall() + togruter = rows + dagerDict = {} + for togrute in togruter: + for ruteNavn in rute: + for ruteID in rute[ruteNavn]: + if togrute[0] == ruteID: + if brukerDag.lower() == togrute[3].lower(): + dagerDict[ruteID] = [togrute[3]] + + return dagerDict + + +def run(): + while True: + printStasjoner() + brukerStasjon = input("Skriv inn navnet på en stasjon: ") + if checkStasjon(brukerStasjon): + break + print(brukerStasjon + " eksisterer ikke som stasjon.") + + while True: + brukerDag = input("Skriv inn en dag: ") + if (checkDag(checkRuter(brukerStasjon), brukerDag)): + print(checkDag(checkRuter(brukerStasjon), brukerDag)) + print("Dette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower()) + # Muligens legge til mer info som operatør, vognoppsett osv. Spør studass + table = PrettyTable(['Startstasjon'],['Sluttstasjon'],['Kjøreretning'],['Avgangstid'],['Ankomsttid'],['Ukedag']) + break + else: + print("Ingen togruter går innom " + + brukerStasjon.capitalize() + " på " + brukerDag.lower() + ".") + break + + +run() \ No newline at end of file diff --git a/db1.db b/db1.db index 3fb4db475ae04f5d7ade03683014ee148570b59f..c93148d6872c41fe0b6fe01623f48a468a0009cd 100644 GIT binary patch delta 1872 zcmZ`)Uuaup6#xDv{n8}A)WxQEU3P;yd=hh;WL<*P;8a8{vUU0(J~X4(uI)@pn@xQ& z6Tz1uIAjkKeGo-(Z>~%yJ~*AA4hKUN91LdthYq_=S2vu(Joig;+e-Z&&gFi;bI$Mg zopZi>51cdyPMVkdISy^w&hhT(TX)_R#Sw-}xPY(lDc;B1I5O9hdI67iM`b_X)fk`I z*YqVK@>c#>W4zv&o}TraP1&tw);u!p&(xZYnYfZ!i#DH~_GPyuXr!^<-%tJtAzeN) z(QMi`@yeyUdy^V<hVSq(-o%Tj6WbGL^=j>8c;^1vzS$}Np2paz6L;NLpYr$iEA2WW zGu+5c<aXBTwYCF0YQarXXI)O<?BuBvem!)0+@e{b-K@xrH2sPC)TBStapQd!-psY@ za%a~}qdvB0i$C#H==jXNjorKby)nj^#$krTRFn^?Jipq)v{H(ct`e%#%5`{1-bPff zB557U5R|>j&GL|`gA3YrO<T%pB?*!cOWt7k8D}tu*YG^XyYMiI*qFRQYJNzzoS3E( ztejGM1C@eDW}w_>be5nFiOiQPUNJBOy<OTNq%Bo=TPwwKU<RG2O%}=(UNJ~UrrZ}< zlT3Jp%0S*Lv?|^<N3WG2h@<3@DVA?m+A$rX{I-f$4$NSm)Glp@Jo!?kR0>QXBXrgx z?Uv??m7+(6_^Dk4gr&>pE2Y7F-lf2xQL$jAzQ9ZP2Cw2r9L00^10UGw+KCpF%U7x{ zV@Z|eVRNL3D~B(4RCHP2P??CX@fDG^sf6xUj#-XXN#&ZAL68ZR4PIv_Zx5zZBnUO3 z{-CuH9AvnNukjJy!Rt6k9eo<DR77T?_6k%}PudmJ(pl!XC9R|z4dqqil!n#@x^uMK zE?Tv}U{{*%UNj`E#=i{KnKY-}aMY^lWeQ3X!EuJ;F;a6H-{L1+Aw6&4AtN)~%8A56 z89G7NI#i+JbpJc-GJrx>5tpk5`&d;~V-h<UKF1;Kp#0m>8j{^ClX19l-8&4;npX&B z#2c>F$7<s;Bnc%CH=4OU^m!SZ@tgID`glp$cw^km7UK<83dQ^&jb1xGjIt+qU{%;w z-liS0aWt*@(m;VsJ5Kz6U@&eHml^)SRa~Cy$$gK_T5>LBV1<y<n4r57iwxJXghle1 zhbyIIMhVHdP&}~fB-*%MB93be*XDYv3oucxSr3iTgU50zMWrN)zwu{>LJ>EY#9_FQ zoOHA)76PXwERc>1*bq@B5NjVoC}oU!Z<MPXeV5NM{Dt3XB<FFCn)4aT5v@2kQbZL! z>2N|z#f=dWVY3L$>1pgyG|mU-y@KE90-mSv)3_}fL`k9TlgJ_zOw!sCgtoCX6r)`N zOSV`f@fY;jDiIM?Nd`v{xN6Hy=tZR0mYL%^MN)MZ5oI<+E!XBOqqEH8EJ^tULy(%e coUQzel7cqO%0_}pn`PmjYn|?-{@a~@0VA=|QUCw| delta 79 zcmZoTz}awsbAmJ@%S0JxMwX2UOZ3?o`QI_{zuPRR@PvQzJA1LkEDIcv@n)6<f91C` NCNMH9pb7tx2LMcD9Gn0E diff --git a/db2.py b/db2.py index 7e79eae..6574498 100644 --- a/db2.py +++ b/db2.py @@ -1,17 +1,21 @@ import sqlite3 -con = sqlite3.connect("db2/db1.db") +con = sqlite3.connect("db1.db") cursor = con.cursor() + def createBanestrekning(): - cursor.execute('''INSERT INTO Banestrekning VALUES (1, 'Nordlandsbanen', 'Diesel', 5)''') + cursor.execute( + '''INSERT INTO Banestrekning VALUES (1, 'Nordlandsbanen', 'Diesel', 5)''') con.commit() + def getAllBanestrekning(): cursor.execute("SELECT * FROM Banestrekning") rows = cursor.fetchall() print("Banestrekning:") print(rows) + def createJernbanestasjon(): cursor.execute('''INSERT INTO Jernbanestasjon VALUES ('Trondheim', 5.1)''') cursor.execute('''INSERT INTO Jernbanestasjon VALUES ('Steinkjer', 3.6)''') @@ -21,75 +25,93 @@ def createJernbanestasjon(): cursor.execute('''INSERT INTO Jernbanestasjon VALUES ('Bodø', 4.1)''') con.commit() + def getAllJernbanestasjon(): cursor.execute("SELECT * FROM Jernbanestasjon") rows = cursor.fetchall() print("Jernbanestasjon:") print(rows) + def createDelstrekning(): - cursor.execute('''INSERT INTO Delstrekning VALUES ('Trondheim', 'Steinkjer', 120, 'Dobbel')''') - cursor.execute('''INSERT INTO Delstrekning VALUES ('Steinkjer', 'Mosjøen', 280, 'Enkel')''') - cursor.execute('''INSERT INTO Delstrekning VALUES ('Mosjøen', 'Mo i Rana', 90, 'Enkel')''') - cursor.execute('''INSERT INTO Delstrekning VALUES ('Mo i Rana', 'Fauske', 170, 'Enkel')''') - cursor.execute('''INSERT INTO Delstrekning VALUES ('Fauske', 'Bodø', 60, 'Enkel')''') + cursor.execute( + '''INSERT INTO Delstrekning VALUES ('Trondheim', 'Steinkjer', 120, 'Dobbel')''') + cursor.execute( + '''INSERT INTO Delstrekning VALUES ('Steinkjer', 'Mosjøen', 280, 'Enkel')''') + cursor.execute( + '''INSERT INTO Delstrekning VALUES ('Mosjøen', 'Mo i Rana', 90, 'Enkel')''') + cursor.execute( + '''INSERT INTO Delstrekning VALUES ('Mo i Rana', 'Fauske', 170, 'Enkel')''') + cursor.execute( + '''INSERT INTO Delstrekning VALUES ('Fauske', 'Bodø', 60, 'Enkel')''') con.commit() + def getAllDelstrekning(): cursor.execute("SELECT * FROM Delstrekning") rows = cursor.fetchall() print("Delstrekning:") print(rows) + def createSittevogn(): cursor.execute('''INSERT INTO Sittevogn VALUES (1, 3)''') cursor.execute('''INSERT INTO Sittevogn VALUES (2, 3)''') con.commit() + def getAllSittevogn(): cursor.execute("SELECT * FROM Sittevogn") rows = cursor.fetchall() print("Sittevogn:") print(rows) + def createSovevogn(): cursor.execute('''INSERT INTO Sovevogn VALUES (1, 4)''') con.commit() + def getAllSovevogn(): cursor.execute("SELECT * FROM Sovevogn") rows = cursor.fetchall() print("Sovevogn:") print(rows) + def createVogntype(): cursor.execute('''INSERT INTO Vogntype VALUES (1, 'Sovevogn', null, 1)''') cursor.execute('''INSERT INTO Vogntype VALUES (2, 'Sittevogn', 1, null)''') cursor.execute('''INSERT INTO Vogntype VALUES (3, 'Sittevogn', 2, null)''') con.commit() + def getAllVogntype(): cursor.execute("SELECT * FROM Vogntype") rows = cursor.fetchall() print("Vogntype:") print(rows) + def createOperator(): cursor.execute('''INSERT INTO Operator VALUES (1, 'SJ', 1, 1)''') con.commit() + def getAllOperator(): cursor.execute("SELECT * FROM Operator") rows = cursor.fetchall() print("Operator:") print(rows) + def createVognoppsett(): cursor.execute('''INSERT INTO Vognoppsett VALUES (1, 2)''') cursor.execute('''INSERT INTO Vognoppsett VALUES (2, 2)''') cursor.execute('''INSERT INTO Vognoppsett VALUES (3, 1)''') con.commit() + def getAllVognoppsett(): cursor.execute("SELECT * FROM Vognoppsett") rows = cursor.fetchall() @@ -97,12 +119,18 @@ def getAllVognoppsett(): print(rows) # Må legge til for alle dager (ikke 3, kun alle hverdager), kun mandag som ligger inne nå. Må oppdatere GaarInnom også + + def createTogrute(): - cursor.execute('''INSERT INTO Togrute VALUES (1, '09:05', '23:05', 'Mandag', 2, 1, 'Trondheim', 'Bodø', 'Hovedretning', 1)''') - cursor.execute('''INSERT INTO Togrute VALUES (2, '17:34', '07:49', 'Mandag', 1, 1, 'Trondheim', 'Bodø', 'Hovedretning', 1)''') - cursor.execute('''INSERT INTO Togrute VALUES (3, '14:13', '08:11', 'Mandag', 3, 1, 'Mo i Rana', 'Trondheim', 'Mot hovedretning', 1)''') + cursor.execute( + '''INSERT INTO Togrute VALUES (1, '09:05', '23:05', 'Mandag', 2, 1, 'Trondheim', 'Bodø', 'Hovedretning', 1)''') + cursor.execute( + '''INSERT INTO Togrute VALUES (2, '17:34', '07:49', 'Mandag', 1, 1, 'Trondheim', 'Bodø', 'Hovedretning', 1)''') + cursor.execute( + '''INSERT INTO Togrute VALUES (3, '14:13', '08:11', 'Mandag', 3, 1, 'Mo i Rana', 'Trondheim', 'Mot hovedretning', 1)''') con.commit() + def getAllTogrute(): cursor.execute("SELECT * FROM Togrute") rows = cursor.fetchall() @@ -110,25 +138,39 @@ def getAllTogrute(): print(rows) # Spørre om avgangstid og ankomsttid + + def createGaarInnom(): - cursor.execute('''INSERT INTO GaarInnom VALUES ('Steinkjer', 1, '00:57', '00:55')''') - cursor.execute('''INSERT INTO GaarInnom VALUES ('Mosjøen', 1, '04:41', '04:39')''') - cursor.execute('''INSERT INTO GaarInnom VALUES ('Mo i Rana', 1, '05:55', '05:53')''') - cursor.execute('''INSERT INTO GaarInnom VALUES ('Fauske', 1, '08:19', '08:17')''') - cursor.execute('''INSERT INTO GaarInnom VALUES ('Steinkjer', 2, '09:51', '09:49')''') - cursor.execute('''INSERT INTO GaarInnom VALUES ('Mosjøen', 2, '13:20', '13:18')''') - cursor.execute('''INSERT INTO GaarInnom VALUES ('Mo i Rana', 2, '14:31', '14:39')''') - cursor.execute('''INSERT INTO GaarInnom VALUES ('Fauske', 2, '16:49', '16:47')''') - cursor.execute('''INSERT INTO GaarInnom VALUES ('Mosjøen', 3, '09:14', '09:12')''') - cursor.execute('''INSERT INTO GaarInnom VALUES ('Steinkjer', 3, '12:31', '12:29')''') + cursor.execute( + '''INSERT INTO GaarInnom VALUES ('Steinkjer', 1, '00:57', '00:55')''') + cursor.execute( + '''INSERT INTO GaarInnom VALUES ('Mosjøen', 1, '04:41', '04:39')''') + cursor.execute( + '''INSERT INTO GaarInnom VALUES ('Mo i Rana', 1, '05:55', '05:53')''') + cursor.execute( + '''INSERT INTO GaarInnom VALUES ('Fauske', 1, '08:19', '08:17')''') + cursor.execute( + '''INSERT INTO GaarInnom VALUES ('Steinkjer', 2, '09:51', '09:49')''') + cursor.execute( + '''INSERT INTO GaarInnom VALUES ('Mosjøen', 2, '13:20', '13:18')''') + cursor.execute( + '''INSERT INTO GaarInnom VALUES ('Mo i Rana', 2, '14:31', '14:39')''') + cursor.execute( + '''INSERT INTO GaarInnom VALUES ('Fauske', 2, '16:49', '16:47')''') + cursor.execute( + '''INSERT INTO GaarInnom VALUES ('Mosjøen', 3, '09:14', '09:12')''') + cursor.execute( + '''INSERT INTO GaarInnom VALUES ('Steinkjer', 3, '12:31', '12:29')''') con.commit() + def getAllGaarInnom(): cursor.execute("SELECT * FROM GaarInnom") rows = cursor.fetchall() print("Mellomstasjoner:") print(rows) + def createTilhorendeVognoppsett(): cursor.execute('''INSERT INTO TilhorendeVognoppsett VALUES (1, 2, 1)''') cursor.execute('''INSERT INTO TilhorendeVognoppsett VALUES (1, 3, 2)''') @@ -137,24 +179,28 @@ def createTilhorendeVognoppsett(): cursor.execute('''INSERT INTO TilhorendeVognoppsett VALUES (3, 2, 1)''') con.commit() + def getAllTilhorendeVognoppsett(): cursor.execute("SELECT * FROM TilhorendeVognoppsett") rows = cursor.fetchall() print("Vognoppsett til vogntype:") print(rows) + def createTilhorendeOperator(): cursor.execute('''INSERT INTO TilhorendeOperator VALUES (1, 1)''') cursor.execute('''INSERT INTO TilhorendeOperator VALUES (1, 2)''') cursor.execute('''INSERT INTO TilhorendeOperator VALUES (1, 3)''') con.commit() + def getAllTilhorendeOperator(): cursor.execute("SELECT * FROM TilhorendeOperator") rows = cursor.fetchall() print("Vogntype til operatør:") print(rows) + def createAll(): createJernbanestasjon() createBanestrekning() @@ -169,20 +215,27 @@ def createAll(): createTilhorendeVognoppsett() createTilhorendeOperator() -# Denne lager all data + +def getAll(): + getAllJernbanestasjon() + getAllBanestrekning() + getAllDelstrekning() + getAllSittevogn() + getAllSovevogn() + getAllVogntype() + getAllOperator() + getAllVognoppsett() + getAllTogrute() + getAllGaarInnom() + getAllTilhorendeVognoppsett() + getAllTilhorendeOperator() + +# Denne lager all data: # createAll() -getAllJernbanestasjon() -getAllBanestrekning() -getAllDelstrekning() -getAllSittevogn() -getAllSovevogn() -getAllVogntype() -getAllOperator() -getAllVognoppsett() -getAllTogrute() -getAllGaarInnom() -getAllTilhorendeVognoppsett() -getAllTilhorendeOperator() - -con.close() \ No newline at end of file +# Denne skriver ut all data: +# getAll() + + + +con.close() -- GitLab From 52d7c0ec7b195d730a9e57e568b31a6c37b3d35b Mon Sep 17 00:00:00 2001 From: Sander Linnerud <linnerudsander@gmail.com> Date: Wed, 15 Mar 2023 11:25:58 +0100 Subject: [PATCH 2/5] La inne en kommentar --- db2.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/db2.py b/db2.py index 6574498..2a44576 100644 --- a/db2.py +++ b/db2.py @@ -231,10 +231,11 @@ def getAll(): getAllTilhorendeOperator() # Denne lager all data: -# createAll() +# All data skal ligge inne fra før av, så skal ikke i utgangspunkte bruke denne med mindre man har slettet dataen +## createAll() # Denne skriver ut all data: -# getAll() +## getAll() -- GitLab From f939971a871d0ce9bb2f93b5dbe20a7f3d53e6d3 Mon Sep 17 00:00:00 2001 From: Sander Linnerud <linnerudsander@gmail.com> Date: Wed, 15 Mar 2023 11:28:36 +0100 Subject: [PATCH 3/5] Kommenterte ut ting --- brukerhistorieC.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/brukerhistorieC.py b/brukerhistorieC.py index 04bdef5..14999c3 100644 --- a/brukerhistorieC.py +++ b/brukerhistorieC.py @@ -70,9 +70,10 @@ def run(): brukerDag = input("Skriv inn en dag: ") if (checkDag(checkRuter(brukerStasjon), brukerDag)): print(checkDag(checkRuter(brukerStasjon), brukerDag)) - print("Dette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower()) + print("OK!") + # print("Dette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower()) # Muligens legge til mer info som operatør, vognoppsett osv. Spør studass - table = PrettyTable(['Startstasjon'],['Sluttstasjon'],['Kjøreretning'],['Avgangstid'],['Ankomsttid'],['Ukedag']) + # table = PrettyTable(['Startstasjon'],['Sluttstasjon'],['Kjøreretning'],['Avgangstid'],['Ankomsttid'],['Ukedag']) break else: print("Ingen togruter går innom " + -- GitLab From f24ae40f44fee2d033801f576f8a579f83b5b729 Mon Sep 17 00:00:00 2001 From: Sander Linnerud <linnerudsander@gmail.com> Date: Wed, 15 Mar 2023 13:21:17 +0100 Subject: [PATCH 4/5] =?UTF-8?q?returnerer=20n=C3=A5=20for=20ruter=20med=20?= =?UTF-8?q?stasjonen=20som=20start=20eller=20sluttstasjon.=20Fjerna=20pret?= =?UTF-8?q?tytable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- brukerhistorieC.py | 65 +++++++++++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/brukerhistorieC.py b/brukerhistorieC.py index 14999c3..8e741b1 100644 --- a/brukerhistorieC.py +++ b/brukerhistorieC.py @@ -1,9 +1,10 @@ import sqlite3 -from prettytable import PrettyTable con = sqlite3.connect("db1.db") cursor = con.cursor() stasjoner = [] +togruter = [] +dagerDict = {} def printStasjoner(): @@ -12,14 +13,9 @@ def printStasjoner(): rows = cursor.fetchall() stasjoner = rows - # Lager en tabell med 'Stasjon' som header - table = PrettyTable(['Stasjon']) - - # Legger til stasjonnavnene som data + print("STASJONER:") for stasjon in stasjoner: - table.add_row([stasjon[0]]) - - print(table) + print(stasjon[0]) def checkStasjon(brukerStasjon): @@ -30,20 +26,41 @@ def checkStasjon(brukerStasjon): def checkRuter(brukerStasjon): + stasjonDict = {} + + # Finner togruter som har stasjonen som mellomstasjon cursor.execute("SELECT * FROM GaarInnom") rows = cursor.fetchall() mellomstasjonsruter = rows - mellomDict = {} for mellom in mellomstasjonsruter: if (mellom[0].lower() == brukerStasjon.lower()): - if mellom[0] in mellomDict: - mellomDict[mellom[0]].append(mellom[1]) + if mellom[0] in stasjonDict: + stasjonDict[mellom[0]].append(mellom[1]) + else: + stasjonDict[mellom[0]] = [mellom[1]] + + # Finner togruter som har stasjonen som startstasjon eller sluttstasjon + global togruter + cursor.execute("SELECT * FROM Togrute") + rows = cursor.fetchall() + togruter = rows + for togrute in togruter: + if(togrute[6].lower() == brukerStasjon.lower()): + if togrute[6] in stasjonDict: + stasjonDict[togrute[6]].append(togrute[0]) else: - mellomDict[mellom[0]] = [mellom[1]] - return mellomDict + stasjonDict[togrute[6]] = [togrute[0]] + if(togrute[7].lower() == brukerStasjon.lower()): + if togrute[7] in stasjonDict: + stasjonDict[togrute[7]].append(togrute[0]) + else: + stasjonDict[togrute[7]] = [togrute[0]] + + return stasjonDict def checkDag(rute, brukerDag): + global dagerDict cursor.execute("SELECT * FROM Togrute") rows = cursor.fetchall() togruter = rows @@ -61,24 +78,24 @@ def checkDag(rute, brukerDag): def run(): while True: printStasjoner() - brukerStasjon = input("Skriv inn navnet på en stasjon: ") + brukerStasjon = input("\nSKRIV INN NAVNET PÅ EN STASJON: ") if checkStasjon(brukerStasjon): break - print(brukerStasjon + " eksisterer ikke som stasjon.") + print("\n" + brukerStasjon.capitalize() + " eksisterer ikke som stasjon.\n") while True: - brukerDag = input("Skriv inn en dag: ") + brukerDag = input("\nSKRIV INN EN DAG: ") if (checkDag(checkRuter(brukerStasjon), brukerDag)): - print(checkDag(checkRuter(brukerStasjon), brukerDag)) - print("OK!") - # print("Dette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower()) - # Muligens legge til mer info som operatør, vognoppsett osv. Spør studass - # table = PrettyTable(['Startstasjon'],['Sluttstasjon'],['Kjøreretning'],['Avgangstid'],['Ankomsttid'],['Ukedag']) + print("\nDette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower() + ": ") + for togrute in togruter: + if togrute[0] in dagerDict: + print(togrute) break else: - print("Ingen togruter går innom " + + print("\nIngen togruter går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower() + ".") - break -run() \ No newline at end of file +run() + +con.close() \ No newline at end of file -- GitLab From d382beed0ee297bb8b588284647d89f0348640cc Mon Sep 17 00:00:00 2001 From: Sander Linnerud <linnerudsander@gmail.com> Date: Thu, 16 Mar 2023 12:11:35 +0100 Subject: [PATCH 5/5] ferdig --- brukerhistorieC.py | 129 +++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 75 deletions(-) diff --git a/brukerhistorieC.py b/brukerhistorieC.py index 8e741b1..91e378b 100644 --- a/brukerhistorieC.py +++ b/brukerhistorieC.py @@ -2,78 +2,60 @@ import sqlite3 con = sqlite3.connect("db1.db") cursor = con.cursor() -stasjoner = [] -togruter = [] -dagerDict = {} - def printStasjoner(): - global stasjoner - cursor.execute("SELECT * FROM Jernbanestasjon") - rows = cursor.fetchall() - stasjoner = rows + cursor.execute("SELECT StasjonsNavn FROM Jernbanestasjon") + stasjoner = cursor.fetchall() print("STASJONER:") for stasjon in stasjoner: print(stasjon[0]) - -def checkStasjon(brukerStasjon): - for stasjon in stasjoner: - if (stasjon[0].lower() == brukerStasjon.lower()): - return True - return False - - -def checkRuter(brukerStasjon): - stasjonDict = {} - - # Finner togruter som har stasjonen som mellomstasjon - cursor.execute("SELECT * FROM GaarInnom") - rows = cursor.fetchall() - mellomstasjonsruter = rows - for mellom in mellomstasjonsruter: - if (mellom[0].lower() == brukerStasjon.lower()): - if mellom[0] in stasjonDict: - stasjonDict[mellom[0]].append(mellom[1]) - else: - stasjonDict[mellom[0]] = [mellom[1]] - - # Finner togruter som har stasjonen som startstasjon eller sluttstasjon - global togruter - cursor.execute("SELECT * FROM Togrute") +def printRuter(brukerStasjon, brukerDag): + query = ''' + SELECT T.Ankomsstid, T.Avgangsstid, T.Ukedag, T.Startstasjon, T.Sluttstasjon + FROM GaarInnom G, Togrute T + INNER JOIN Jernbanestasjon J ON G.Stasjonsnavn = J.Stasjonsnavn + WHERE J.Stasjonsnavn = ? AND T.TogruteID = G.TogruteID AND T.Ukedag = ? + + UNION + + SELECT T.Ankomsstid, T.Avgangsstid, T.Ukedag, T.Startstasjon, T.Sluttstasjon + FROM Togrute T + INNER JOIN Jernbanestasjon J ON T.Startstasjon = J.StasjonsNavn OR T.Sluttstasjon = J.StasjonsNavn + WHERE J.StasjonsNavn = ? AND T.Ukedag = ? + ''' + cursor.execute(query, (brukerStasjon, brukerDag.capitalize(), brukerStasjon, brukerDag.capitalize())) rows = cursor.fetchall() - togruter = rows - for togrute in togruter: - if(togrute[6].lower() == brukerStasjon.lower()): - if togrute[6] in stasjonDict: - stasjonDict[togrute[6]].append(togrute[0]) - else: - stasjonDict[togrute[6]] = [togrute[0]] - if(togrute[7].lower() == brukerStasjon.lower()): - if togrute[7] in stasjonDict: - stasjonDict[togrute[7]].append(togrute[0]) - else: - stasjonDict[togrute[7]] = [togrute[0]] - - return stasjonDict - + return rows -def checkDag(rute, brukerDag): - global dagerDict - cursor.execute("SELECT * FROM Togrute") +def checkStasjon(brukerStasjon): + query = "SELECT Stasjonsnavn FROM Jernbanestasjon WHERE Stasjonsnavn = ?" + cursor.execute(query, (brukerStasjon,)) + stasjon = cursor.fetchall() + if (len(stasjon) != 0): + return True + else: + return False + + +def checkRuter(brukerStasjon, brukerDag): + query = ''' + SELECT G.TogruteID, T.Ukedag + FROM GaarInnom G, Togrute T + INNER JOIN Jernbanestasjon J ON G.Stasjonsnavn = J.Stasjonsnavn + WHERE J.Stasjonsnavn = ? AND T.TogruteID = G.TogruteID AND T.Ukedag = ? + + UNION + + SELECT T.TogruteID, T.Ukedag + FROM Togrute T + INNER JOIN Jernbanestasjon J ON T.Startstasjon = J.StasjonsNavn OR T.Sluttstasjon = J.StasjonsNavn + WHERE J.StasjonsNavn = ? AND T.Ukedag = ? + ''' + cursor.execute(query, (brukerStasjon, brukerDag.capitalize(), brukerStasjon, brukerDag.capitalize())) rows = cursor.fetchall() - togruter = rows - dagerDict = {} - for togrute in togruter: - for ruteNavn in rute: - for ruteID in rute[ruteNavn]: - if togrute[0] == ruteID: - if brukerDag.lower() == togrute[3].lower(): - dagerDict[ruteID] = [togrute[3]] - - return dagerDict - + return rows def run(): while True: @@ -81,21 +63,18 @@ def run(): brukerStasjon = input("\nSKRIV INN NAVNET PÅ EN STASJON: ") if checkStasjon(brukerStasjon): break - print("\n" + brukerStasjon.capitalize() + " eksisterer ikke som stasjon.\n") - + print("\n" + brukerStasjon.capitalize() + + " eksisterer ikke som stasjon.\n") while True: - brukerDag = input("\nSKRIV INN EN DAG: ") - if (checkDag(checkRuter(brukerStasjon), brukerDag)): - print("\nDette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower() + ": ") - for togrute in togruter: - if togrute[0] in dagerDict: - print(togrute) - break + brukerDag = input("\nSKRIV INN EN UKEDAG: ") + if len(checkRuter(brukerStasjon, brukerDag)) == 0: + print("\n" + "Ingen togruter går innom " + brukerStasjon + " på en " + brukerDag + ".") else: - print("\nIngen togruter går innom " + - brukerStasjon.capitalize() + " på " + brukerDag.lower() + ".") - + print("\nDette er togrutene som går innom " + brukerStasjon + " på en " + brukerDag + ".") + for rute in printRuter(brukerStasjon, brukerDag): + print(rute) + break run() -con.close() \ No newline at end of file +con.close() -- GitLab