Sida 1 av 1

hjälp!!!! med python...

Postat: 14 dec 2009, 00:22
av conini

Kod: Markera allt

#min kod kommer nedan oxh frågor brevid!!! behöver hjälp!!!
#den är en Bokningssystem där användaren ska boka,avboka ock skriva ut sin biljet.

# coding: latin-1


#import string 
#import datetime 
print '\n'
print '"Välkommen till SJ-Bokning!" '
print '\n'
print ' Här nedan ser du Vagnen!!'
print '\n'


class Biljet: # Biljetn med dess atribut och metoder

def __init__(self,indistans,utdistans,datum,passagerare,rok_och_ejrokplatsen,sittplats):
self.indistans = indistans
self.datum = datum
self.utdistans = utdistans
self.passagerare = passagerare
self.rok_och_ejrokplatsen = rok_och_ejrokplatsen
self.sittplats =int(sittplats)



def __str__(self): 
return 'från: '+ self.indistans +'\n'+'till: '+ self.utdistans +'\n'+'Datum: '+str(self.datum)+'\n' +'passagerare: '+ self.passagerare +'\n'+ 'plats: '+ self.rok_och_ejrokplatsen +'\n'+'sittplats: '+ str(self.sittplats) +'\n'

#Lagra den senaste bokningen i en textfil för att kunna skriva ut den.
def SkrivaUt(self):
utfil= open('platsbiljet.txt','w')
print>>utfil, 'PLATSBLIJET'
print>>utfil,'Från:',self.indistans,'Till:',self.utdistans
print>>utfil,'Datum',self.datum
print>>utfil,'Passagerare:',self.passagerare
print>>utfil,'Plats Smoking eller None-smoking:',self.rok_och_ejrokplatsen
print>>utfil,'Sittplats:',self.sittplats

utfil.close()

# Vagn klassen där platserna finns, och metoder om hur platserna ska hanteras 
class Vagn: 
def __init__(self):
self.bokade = []

#Skriver ut Platserna på skärmen
def Platserna(self):
print '\tSmoking\t'
print '...............................'

for lista1_2 in [0,1]:
for element_i_lista1_2 in range(8):
if self.BokadPlats(platserna1_2[lista1_2][element_i_lista1_2]) :
print ' * ',


else:
print str (platserna1_2[lista1_2][element_i_lista1_2])+' ',
print
print '...............................'

print '\tNone-Smoking\t'
print '...............................'

for lista3_4 in [0,1]:
for element_i_lista3_4 in range(8):
if self.BokadPlats(platserna3_4[lista3_4][element_i_lista3_4]):
print ' * ',
else:
print str (platserna3_4[lista3_4][element_i_lista3_4])+' ',
print

return ''


# Hur platserna bokas 
def BokadPlats (self,nr): 
for B in self.bokade:
if B.sittplats == nr:
return True



return False

#Hur en platse avbokas och dess felinmatningar 
def Avboka(self,nr):

for A in self.bokade:
if str(A.sittplats)==nr:
self.bokade.remove(A)
print 'Din plats har blivit avbokad välj någon av följande: '
print '\n'
print self.Platserna()
break 
else:
print 'Den platsen finns ej att avboka, Försök igen!! '
print '\n'



def Meny(self):

val =''

while val != 'B'+'A'+'S'+'Q' :
print '\n'
print 'VÄLJ NÅGOT AV FÖLJANDE!!'
print '1 - vill du boka?: tryck på B'
print '2 - vill du avboka : tryck på A?'
print '3 - vill du skriva ut din bokning ?: tryck S'
print '0 - Avsluta tryck Q'
print '\n'
val = raw_input('Ditt val: ');
print '\n'
if val == 'B':
self.BokaBiljet()

if val == 'A':
nr = raw_input( 'vilket plats vill du avboka: '+ '\n')
self.Avboka(nr)

if val == 'S':
self.SkrivaUt()
if val == 'Q':
print
print '"Tack och välkommen åter"'+ '\n'
#break


#return True



# När användaren väjler BOKA då kommer till denna meny alltså Boka Biljeten meny 
def BokaBiljet(self): 
indistans=''
while True:
svar = raw_input('Vart vill du åka? (skriv staden) : '+ '\n'+ 'Stockholm'+'\n'+'GTB'+'\n'+'Lund'+'\n'+'Kiruna'+'\n''\n')
indistans svar)
print '\n'
if indistans not in ['Stockholm','stockholm','lund','Lund','kiruna','Kiruna','gtb','GTB']:
print 'Skriv en av ovanstående destinationerna!!!'
print '\n'
else:
break

utdistans=''
while True:
svar = raw_input('Varifrån vill du åka?(skriv staden) : '+ '\n'+ 'Stockholm'+'\n'+'GTB '+'\n'+'Lund '+'\n'+'Kiruna '+'\n''\n')
utdistans svar)
if utdistans not in ['Stockholm','stockholm','lund','Lund','kiruna','Kiruna','gtb','GTB']:
print 'Skriv en annan avreseort!! '
print '\n'
elif utdistans ==indistans:
print 'Skriv en annan avreseort!! '
print '\n'
else:
break

print '\n'

svar = raw_input('när vill du åka ååmmdd: ')
datum = (svar)
print '\n'

passagerare=''
while True:
svar = raw_input('Vuxen : V '+ '\n' +'Barn : B '+'\n' )
passagerare svar)
print '\n'
if passagerare not in ['V','v','B','b']:

print'Felaktig val'
print '\n'
else:
break
#print '\n'
#############Hur kan jag göra så att när användaren har valt sitt tex. rökare får inte välja nån icke rökare platsnummer?????
rok_och_ejrokplatsen=''
while True:
svar=raw_input('Smoking: S'+'\n'+'None-Smoking? : N '+ '\n')
rok_och_ejrokplatsen = (svar)
if rok_och_ejrokplatsen not in ['S','s','N','n']:
print 'Felaktig val'
print '\n'
else:
break

print '\n'
self.Platserna()
print '\n'


#sittplats = ''
sittplats = True ###########hur ska jag göra så att användaren inte får skriva bokstäver eller trycka på enter så att programmet inte kraschar?????
while sittplats:
svar=raw_input('välj en sittplats från skärmen : ' + '\n') 
sittplats = int(svar)

if sittplats > 32:
print ' Denna plats finns ej!! '
print '\n'
elif self.BokadPlats(sittplats):
print 'Platsen är Bokad!! välj en annan Sittplats!!'
print '\n'
elif sittplats =='':
print 'Fel'
else:
sittplats = False



B = Biljet(indistans,utdistans,datum,passagerare,rok_och_ejrokplatsen,sittplats)
self.bokade.append(B)
B.SkrivaUt()

print B 
print '\n'
self.Platserna()

print
#Skriver ut på skärmen den senaste bokningen #######det kommer alltid den första bokningen och inte den senaste. Jag vill ha den senaste/ eller alla bokningar som har gjorts. Alltså de ska visas på skärmen.
def SkrivaUt (self):
for B in self.bokade:
print B
break
else:

print'"Det finns ingenting av skriva ut!"'
print '\n'

#platsernas listor
platserna1 = ([1,8,9 ,16,17,24,25,32])
platserna2 = ([2,7,10,15,18,23,26,31])
platserna3 = ([3,6,11,14,19,22,27,30])
platserna4 = ([4,5,12,13,20,21,28,29])
platserna1_2 = ([platserna1,platserna2])
platserna3_4= ([platserna3,platserna4])



V1=Vagn()
V1.Platserna()
print'\n' 
V1.Meny()
V1.SkrivaUt()
#V1.Platserna()

Re: hjälp!!!! med python...

Postat: 14 dec 2009, 00:32
av mcNisse
Dubbelposta inte. Det spelar inger roll om frågan kommer i fel del av forumet. trådar kan flyttas av moderatorer.