exempel-pa-specifikation-till-fiktiva-uppgiften

# Spec av P-uppgift

# Namn: Simon Semla
# Personnummer:820231-0000
# P-uppgift nr: 100
# Titel: Matservering


# **************************** Användargränsnitt ************************

# Vid körning ska programmet se ut som nedan:
#   Ge antal portioner som sålts i Grillen:200
#   Ge antal portioner som sålts i Salladsbaren:143
#   Ge antal portioner som sålts i Svensson:250

#   Grillen: vinst 7420
#   Salladsbaren: förlust 250
#   Svensson: förlust 4500
#   Dagens rest är Svensson med 122 portioner kvar!

# ************************** Minne / Datastruktur ************************

#   Varje matställe representeras av ett Matplats-objekt, som har
# namn (String), gjordaPortioner (int), serveradePortioner (int)
# och portionskostnad (float).
#   Alla matställen lagras i en lista

# ***************************** Algoritm *********************************

# * Programmet läser in information om en Matplats från filen.
# * Nytt Matplats-objekt skapas och läggs in i en lista.
# * Detta upprepas tills hela filen är inläst.
# * Ber användaren mata in serverade portioner för varje matställe.
# * Sorterar matställen efter vinst 
# * Skriver ut matställen i ordning.
# * Letar rätt på det Matplats-objekt som har flest portioner kvar och 
#   skriver ut namnet och antal restportioner.

# ************************** Programskelett ******************************
# 

#**************************** Funktioner *********************************


# Läser från filen, skapar instanser av Matplats och lagrar i listan matstalleLista. 
# filnamnet är parameter
# returnerar en lista med alla matställe-objekt
def lasFil(filnamn ):
  pass

# Låter användaren mata in antal serverade portioner för varje matställe. 
# matstalleLista som parametrar
# returnerar inget
def mataInServPortioner(matstalleLista) :
  pass

# Skriver ut all information om alla matställen. 
# matstalleLista som parametrar
# returnerar inget
def skrivAllt(matstalleLista):
  pass

# Sorterar listan plats efter vinst. 
# matstalleLista som parametrar
#returnerar inget
def sortera(matstalleLista):
  pass

# Plockar fram det matställe som har mest rest. 
# matstalleLista som parametrar
# returnerar en instans av klassen Matplats
def dagensRest(matstalleLista): 
  pass


class Matplats(object):
  #*************** Klassvariabler ******************

  # Försäljningspris för en portion, konstant och samma för alla instanser
  PORTIONS_PRIS = 45


  #**************************** Metoder *********************************

  # Skapar ett nytt matställe med ett namn, med ett antal 
  # gjorda portioner, med en portionskostnaden (dvs råvarupriset)
  def __init__( self, namn, gp, pk ):
    pass

  #Beräknar portioner som är kvar
  # inga parametrar
  #returnerar antalet portioner som finns kvar att servera.
  def portionerKvar( self ):
      pass

  # Instansvariabeln serveradePortioner initieras här
  # parameter sp som är antal serverade portioner
  # returnerar inget
  def sattServPortion( self,sp ):
    pass

  #inga parametrar
  #returnerar en sträng representant av objektet
  def __str__( self ):

  #beräknar vinsten
  # inga parametrar
  # returnerar vinsten 
  def vinst( self ):
      return 0


#************ Huvudprogrammet ********************
# Läs in data från fil och skapa Matplatser
# Låt användaren ange antal serverade portioner för varje 
# Sortera och skriv ut
# beräkna och presentera "Dagens rest"