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()