import sys import re #Regulaere Ausdruecke zur Filterung von Texten oder Textstrings. from math import sqrt import logging #Die verwendete Funktionen werden definiert. logging.debug('This is debug message') logging.info('This is info message') logging.warning('This is warning message') print "********************************************************************************" print "Dieses Programm verwendet man zur Berechnung der Distanz zweier Orte in Deutschland." print "********************************************************************************" print "Programmierer : Zhu,Hongrui" print " Chen,Sizi" print " Hu,Fangyu" print "" def rechnen():#Der ganze Prozess wird als eine Funktion definiert. Ort = raw_input("Bitte geben Sie den Namen des ersten Ortes ein:")#Eingabe des Namen lesen = open('DE.tab',"r")#De.tab wird geoeffnet und kann nur lesen werden. lines = lesen.readlines()#DE.tab wird in lines geoeffnet. b=[] #Eine leere List wird definiert. i=0 print "" for line in lines : if re.search(Ort,line):#Der eingegebene Name wird durchgesucht. i=i+1 a=re.split('\t',line)#Jede Line wird als eine List sein.Wenn zwischen zwei Elementen ein Leerzeichen liegt,werden sie eingeteilt. print i,a[3]#Die korrekten Orte und ihre geographishcen Lagen werden ausgegeben. b.append(a)#Die korrekten Orte werden in der definierten List eingefuellt. print "" eingabe =input("Welches Ort wollen Sie nehmen ? ")#Die Wahl eines bestimmten Ort. c = len(b)#Die Anzahl der Elementen von eingefuellter List. for i in range(1,c): if eingabe ==i+1: Ort1 = b[i]#Der erste Ort ist bestimmt. print ""#Die Suche wird wiederholt. Ort = raw_input("Bitte geben Sie den Namen des zweiten Ortes ein:") lesen = open('DE.tab',"r") lines = lesen.readlines() f=[] i=0 print "" for line in lines : if re.search(Ort,line): i=i+1 g=re.split('\t',line) print i,g[3] f.append(g) print "" eingabe =input("Welches Ort wollen Sie nehmen ? ") j = len(f) for i in range(1,j): if eingabe ==i+1: Ort2 = f[i]#Der zweite Ort ist bestimmt. print "" #Die Gleichung zur Berechnung. lat1 = float(Ort1[5])#Longitude des ersten Ort. lon1 = float(Ort1[4])#Latitude des ersten Ort. lat2 = float(Ort2[5])#Longitude des zweiten Ort. lon2 = float(Ort2[4])#Latitude des zweiten Ort. dx = 111.3*0.64*(lon1-lon2) dy = 71.5*(lat1-lat2) Distanz = sqrt(dx*dx+dy*dy)#Die Distanz wird gerechnet. print "Erster eingegebene Ort:",Ort1[3],"Latitude:",Ort1[4],"Longitude:",Ort1[5]#Ausgabe des ersten Orts. print "Zweiter eingegebene Ort:",Ort2[3],"Latitude:",Ort2[4],"Longitude:",Ort2[5]#Ausgabe des zweiten Orts. print "Die Distanz zwischen",Ort1[3],"und",Ort2[3],"betraegt:{0}".format(Distanz)+"km"#Ausgabe der zwei Orte in zwei dezimalstellen. rechnen() print "" print "Was wollen Sie machen?"#Eine menue zur Wahl print "1. Nochmal rechnen" print "2. Beenden" antwort = input("Ihre Wahl:") if antwort == 1 : rechnen() elif antwort == 2 : print "Danke fuer Ihre Verwendung!"