Programm laden-->Werte benutzen
Verfasst: Montag 6. Februar 2006, 11:23
folgender Programmcode:
wenn ich das Programm lade, will ich die eingegeben Werte wieder benutzen, d.h. die Funktionen sollen die Werte kennen!
wie kann ich das realisieren?
vielen dank im vorraus!
Code: Alles auswählen
import msvcrt
from math import*
import math
class Zeichnung:
def __init__(self):
self.m_figurListe = list()
self.m_flaechenListe = []
self.m_SchnittListe = []
def hinzufuegen_figur(self,figur):
self.m_figurListe.append( figur )
self.m_SchnittListe.append(figur.rechneSchnittlaenge())
self.m_flaechenListe.append(figur.rechneFlaeche())
def rechneFlaeche(self):
self.flaeche = sum(self.m_flaechenListe)
def rechneSchnittlaenge(self):
self.schnitt = sum(self.m_SchnittListe)
def laden(self):
f = file("Daten.txt", "r")
self.m_figurListe = f.read()
print self.m_figurListe
f.close()
def speichern(self):
f=file("Daten.txt","w")
f.write("%s\n" % self.m_figurListe)
f.write("%s\n" % self.m_flaechenListe)
f.write("%s\n" % self.m_SchnittListe)
f.write("Gesamtflaeche (cm): ")
f.write("%.2f\n" % self.flaeche)
f.write("Gesamtschnittlaenge (cm):")
f.write("%.2f\n" % self.schnitt)
f.close()
def loeschen(self):
self.m_figurListe=[]
class Kreis:
def __init__( self, t_xCenter, t_yCenter, t_radius ):
self.m_xCenter = t_xCenter
self.m_yCenter = t_yCenter
self.m_radius = t_radius
def __repr__(self):
return "%s, %s, %s" % (self.m_xCenter, self.m_yCenter, self.m_radius)
def rechneSchnittlaenge(self):
schnittlaenge = (float(math.pi)) * float(self.m_radius) * 2
return schnittlaenge
def rechneFlaeche(self):
flaeche = (float(math.pi)) * float(self.m_radius) * float(self.m_radius)
return flaeche
class Rechteck:
def __init__(self,seitenlaenge_alpha,seitenlaenge_beta):
self.seitenlaenge_a = seitenlaenge_alpha
self.seitenlaenge_b = seitenlaenge_beta
def __repr__(self):
return "%s, %s" % (self.seitenlaenge_a, self.seitenlaenge_b)
def rechneSchnittlaenge(self):
schnittlaenge=float(self.seitenlaenge_a)*2+float(self.seitenlaenge_b)*2
return schnittlaenge
def rechneFlaeche(self):
flaeche=float(self.seitenlaenge_a)*float(self.seitenlaenge_b)
return flaeche
class Eck:
def __init__(self,seitenlaenge_eck):
self.eckle = seitenlaenge_eck
def __repr__(self):
return "%s" % (self.eckle)
def rechneSchnittlaenge(self):
schnittlaenge=float(self.eckle)*5
return schnittlaenge
def rechneFlaeche(self):
tan=1.37638
flaeche=((1.25*float(self.eckle))*float(self.eckle))*float(tan)
return flaeche
def menue():
print "_________________________________\n"
print " Zeichnungstool "
print "_________________________________\n"
print "0 --> Neue Zeichnung"
print "1 --> Neue Figur anlegen"
print "2 --> Schnittlaenge berechnen"
print "3 --> Flaeche berechnen"
print "4 --> Zeichnung laden"
print "5 --> Zeichnung speichern"
print "ESC --> Programm beenden"
esc = '\x1b'
menue()
z1=Zeichnung()
ch = msvcrt.getch()
while ch != esc:
if (ch=='0'):
print "------------------------------"
print "-- Neue Zeichnung anlegen --"
print "------------------------------"
print "Wollen Sie alle Zeichnungen loeschen?"
frage=raw_input("y/n: ")
if (frage=='n'):
print "Zeichnung(en) wird(werden) nicht geloescht"
print "Zurueck zum Hauptmenu"
menue()
else:
print "Zeichnung(en) wird(werden)geloescht"
z1.loeschen()
menue()
elif (ch=='1'):
print "------------------------------"
print "-- Neue Figur(en) anlegen --"
print "------------------------------"
print "1 --> Kreis"
print "2 --> Rechteck"
print "3 --> 5eck"
eingabe=raw_input()
if(eingabe=='1'):
x_center=raw_input("X-Position: ")
y_center=raw_input("Y-Position: ")
radius=raw_input("Radius (cm): ")
kreis=Kreis(x_center,y_center,radius)
z1.hinzufuegen_figur(kreis)
elif(eingabe=='2'):
seitenlaenge_alpha=raw_input("Seitenlaenge a (cm): ")
seitenlaenge_beta=raw_input("Seitenlaenge b (cm): ")
recht=Rechteck(seitenlaenge_alpha,seitenlaenge_beta)
z1.hinzufuegen_figur(recht)
elif(eingabe=='3'):
seitenlaenge_eck=raw_input("Seitenlaenge(cm): ")
eck=Eck(seitenlaenge_eck)
z1.hinzufuegen_figur(eck)
menue()
elif (ch=='2'):
print "--------------------------------"
print "---Schnittlaenge aller Figuren--"
print "--------------------------------"
z1.rechneSchnittlaenge()
menue()
elif (ch=='3'):
print "--------------------------------"
print "-------Flaechenberechnung-------"
print "--------------------------------"
z1.rechneFlaeche()
menue()
elif (ch=='4'):
print "Programm wurde geladen"
z1.laden()
menue()
elif (ch=='5'):
z1.speichern()
print "Programm gespeichert"
menue()
ch = msvcrt.getch()
wie kann ich das realisieren?
vielen dank im vorraus!