123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- # That's the programm file of Michelle Piras, Malte Staerker and Alexander Teubert for PVL Programmierung@hs-anhalt 2017
- # Please don't copy any of this!
- # Thank you!
- # Created: 19:31 01.06.2017 [/AT]
- # Last edit: 22:14 07.06.2017 [/AT]
- import sys
- import math
- import os
- import re
- import time as t
- os.system("clear")
- #FUNKTIONEN:
- def begruessung():
- print "{1}{0}{2}{0}{3}{0}{4}".format("\n ","Hallo und herzlich willkommen zum Luftlinienberechner fuer Deutschland!","1) Starte das Programm","2) Rufe die Hilfe auf!","3) Schliesse das Programm!")
- def Auswahl():
- try:
- global option
- option = int(raw_input("Bitte treffen Sie eine Auswahl! "))
- except ValueError:
- print "Ungueltige Eingabe!"
- t.sleep(3)
- def hilfe():
- hilfetxt = open("readme.txt","r") # ruft readme.txt auf und liest sie aus
- txt = hilfetxt.read()
- print txt
- hilfetxt.close()
- def abfrage():
- ergebnisse = [] #alle vorschlaege landen in dieser liste
- share = [] #Matrix aller Treffer
- while True:
- AV = 0 #Anzahl der Vorschlaege
- Daten = open("/data/share/sstudent/py_pgm1/DE.tab","r").readlines() #Dokument wird in Programm ueberfuehrt
- eingabe = str(raw_input("Name der Ausgangsstadt?"))
-
- for line in Daten: #Zeilen werden nach uebereinstimmung untersucht
- if re.search(r"%s"%eingabe,line,re.IGNORECASE):
- ergebnisse.append(Daten[AV]) #aktuelle zeile wird bei treffer in ergebnisse ueberfuehrt
- AV = AV + 1
- if len(ergebnisse) != 0:
- break
- else:
- print "Zu diesem Ort haben wir keine Daten. Tut uns leid!"
- for AV in range(len(ergebnisse)): #Ausgabe einer list an Vorschlaegen, die spaeter nach hinzugefuegter Nummerierung angesteuert werden koennen
- print "%i. Vorschlag:%s"%(AV+1,ergebnisse[AV])
- bed = False
- while bed==False:
- stadt1 = raw_input("Bitte waehlen Sie aus der Liste eine Option!")
- try:
- int(stadt1)
- bed = True
- if int(stadt1) > AV+1:
- print "{0} ist keine Option!".format(int(stadt1))
- bed = False
- except ValueError:
- print "Ungueltige Eingabe!"
- s1 = int(stadt1)-1
- share.append(ergebnisse[s1].split("\t"))
- #Ausgabevariablen/Daten:
- global latitude
- global longitude
- global name
- global plz
- latitude = share [0] [4] #aus share-matrix werden gewuenschte werte ausgelesen
- latitude = float(latitude)
- longitude = share [0] [5]
- longitude = float(longitude)
- name = share [0] [3]
- plz = share [0] [7]
-
- def berechnung(a,b,c,d):
- a = math.radians(a)
- b = math.radians(b)
- c = math.radians(c)
- d = math.radians(d)
- r = 6371
- part1 = (math.sin((a-b)/2))**2
- part2 = (math.cos(a))*(math.cos(b))*(math.sin((c-d)/2))**2
- distance = 2 * r * math.asin(math.sqrt(part1+part2))
- O1 = list1[2]
- O2 = list2[2]
- P1 = list1[3]
- P2 = list2[3]
- print "{0}({1}) liegt ca. {4} Kilometer entfernt von {2}({3}).".format(O1,P1,O2,P2,distance)
-
-
- #MENU:
- while True:
- list1 = []
- list2 = []
- begruessung()
- Auswahl()
- if option == 1:
- abfrage()
- list1 = [latitude,longitude,name,plz]
- abfrage()
- list2 = [latitude,longitude,name,plz]
- berechnung(list1[0],list2[0],list1[1],list2[1])
- print "Ich starte das Programm!"
-
- elif option == 2:
- hilfe()
- elif option == 3:
- print "Auf Wiedersehen!"
- break
- #BERECHNUNG
|