Nov-12-2018, 08:01 PM
class Bud: def __init__(self, budgiver, budStr): self._budgiver = budgiver self._budStr = budStr if budStr < 0: self._budStr = 1 def hentBudgiver(self): return self._budgiver def hentBudStr(self): return self._budStr class Annonse: def __init__(self, annTekst): self._annTekst=annTekst self._budListe=[] def hentTekst(self): #returnerer annonse tekst return self._annTekst def giBud(self, hvem, belop): #oppretter og legger til nytt bud #i en liste over bud nuttBud=Bud(hvem, belop) self._budliste.append(nyttBud) def antBud(self): #returnerer antall bud return len(self._budListe) def hoyesteBud(self): #returnerer høyeste bud #dersom like bud, det som kom først hoyeste=None hoyesteVerdi=0 for bud in self._budListe: if bud.hentBudStr()>hoyesteVerdi: hoyeste=bud hoyesteVerdi=bud.hentBudStr() return hoyeste def kraftBud(self, hvem, belop, max): budBelop=belop hoyeste=self._hoyesteBud()._hentBudStr() if belop<hoyeste: budbelop=hoyeste+1 if budBelop>max: budbelop=max self._giBud(hvem, budBelop) #i klassen Annonse: def tellLaveBud(self): hoyeste_hitill=0 antall_lavere=0 for bud in self._budListe: if bud.hentBudStr()>hoyeste_hitill: hoyeste_hitill=bud.hentBudStr() else: antall_lavere +=1 return antall_lavere class Kategori: def __init__(self, katNavn): self._katNavn=katNavn self._annonseliste=[] def nyAnnonse(self, annTekst): nyAnn=Annonse(annTekst) self._annonseliste.append(nyAnn) def hentAnnonser(self): return self._annonseliste #i klassen kategori: def tellLaveBud(self): antall=0 for annonse in self._annonseListe(): antall +=ann.tellLaveBud() return antall class BruktMarked: def __init__(self): self._kategorier={} def finnKategori(self, katNavn): for kat in self._kategorier: if kat==katNavn: return self._kategorier[kat] return None def nyKategori(self, katNavn): if finnKategori(katNavn) == None:[error]finnKategori not defined[/error] nyKat=Kategori[katNavn] self._kategorier[katNavn]=nyKat return nyKat else: return None #i klassen bruktmarked def tellLaveBud(self): antall=0 for kat in self._kategorier: antall +=self._kategorier[kat].tellLaveBud() return antall def main(): marked=BruktMarked() kat=marked.nyKategori("sykkellykt") ann=kat.nyAnnonse("New Yorker sykkellykt") ann.giBud("Peter",42) ann.giBud("Ann", 0) ann.kraftBud("Mary",40,50) hoyesteBudStr=ann.hoyesteBud().hentBudStr() budGiver=ann.hoyesteBud().hentBudgiver() print(hoyesteBudStr, "gitt av" , budGiver) main()