123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- 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!"
|