Gå til innhold

Litt hjelp med en heftig Python-oppgave.


Anbefalte innlegg

Er på forhånd veldig takknemlig om noen kan hjelpe meg litt med denne her. Først og fremst fra C) og utover (har implementert klassene vha get/set-metodene). Takk for svar.

 

 

Et firma som driver utleie av kjøretøy har behov for å lagre disse. Firmaet har 3 forskjellige typer kjøretøy: Personbil, motorsykkel og varebil. Dette firmaet har forskjellige garasjer hvor de lagrer kjøretøyene når de ikke er i bruk. Hver garasje har en id og ligger i en bygning som inneholder flere garasjer. For personbil er antall seter, registreringsnummer og årstall viktig. For motorsykler er registreringsnummer og årstall viktig, mens for varebil er registreringsnummer, årstall og antall liter den rommer viktig. Vi definerer følgende klasser:

Personbil - Består av antall seter, registreringsnummer og årstall.

Motorsykkel - Består av registreringsnummer og årstall.

Varebil - Består av antall liter, registreringsnummer og årstall.

Garasje - Har en id og inneholder en liste over kjøretøy som er i denne garasjen.

Bygning - Har navn og inneholder en liste over garasjer som er i denne bygningen.

 

a) Klassene Personbil, Motorsykkel og Varebil har noe til felles, og vi ønsker å generalisere ved å legge til en ny klasse og introdusere arv. Tegn klassediagram for klassene dine med denne generaliseringen. Du trenger ikke å ta med metoder i diagrammet, men ta med attributtene for klassene.

b) Implementer klassene (skriv kode for klassene). Du trenger bare å ha med __init__() og get/set-metoder.

c) Lag en metode finnAntall() for Garasjeklassen som vil returnere antall kjøretøy som er lagret i denne garasjen.

d) Lag en metode finnIGarasje() for Garasjeklassen som vil returnere sann dersom kjøretøyet finnes i garasjen eller usann dersom den ikke gjør det. Metoden finnIGarasje() tar registreringsnummeret som parameter og bruker dette til å søke etter kjøretøyet. Eksempel på kall på metoden: garasjeobjekt.finnIGarasje("XX99999")

e) Lag en metode skrivutAlle() for Bygningklassen som vil skrive ut informasjon om alle kjøretøyene som er lagret i bygningen.

f) Lag et test-script som legger inn forskjellige kjøretøy inn i garasjene. Dvs du må opprette, bygninger og garasjer før du legger inn kjøretøyene.

g) Utvid test-scriptet med å vise bruk av de forskjellige metodene du har laget i c-e.

Lenke til kommentar
Videoannonse
Annonse

Tja, lettere uten for min del akkurat nå, så får du heller si fra hvis du ennå står fast. Kan hende du har tenkt det ut så langt selv, men du sier ikke noe om det, så. :p

 

c) Bruk lengden på lista over kjøretøy.

d) Sjekk registreringsnummer mot samme for hvert enkelt kjøretøy i garasjen (lista). Her er det nok mange ulike måter å gjøre det på, noen helt sikkert raskere (og som jeg ikke kan :p).

e) For hver garasje i bygningen, for hvert kjøretøy i garasjen, print utvalgt info. Kan jo prøve å sette det opp slik at du printer kjøretøyet direkte (se __str__).

 

De to siste skulle vel ikke by på så mye problemer, men du får igjen si fra hvis det er noe.

Lenke til kommentar

Går ut ifra at du har kontroll på klassene, denne oppgaven ser nok vanskeligere ut enn den egentlig er (er ganske likt de oppgavene jeg hadde i Python selv, husker de virket omtrent uoverkommelige med første øyekast.)

 

lag en liste med kjøretøy i klassen garasje, som han over sier. Så kan du bare kjøre len(listen) for å få ut antallet kjøretøy i den gitte garasjen.

 

Nesten samme med E: lag en liste over de garasjene som ligger i bygningen, så looper du bare igjennom denne listen og bruker funksjonen for å få ut antall kjøretøy i hver garasje og summerer disse.

 

er bare å kjøre en enkel for loop:

for i in listenavn:

bilerigarasjen = i.finnAntall()

 

Du får bare spørre hvis du setter deg helt fast.

Lenke til kommentar

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

Laster...
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...