prog:exercise:nedarvning_og_abstract
Transportmiddel – Beregn prisen for en tur
Formål
Du skal arbejde med:
- Abstrakte klasser og nedarvning
- Synlighedsniveauer:
private,protected,public - Konstruktorer og method-override
- Test og brug af polymorfi i praksis
Scenarie
En virksomhed har flere typer transportmidler: Taxa, Lastbil og Elbil. Alle transportmidler har noget til fælles, men prisen for en tur beregnes forskelligt.
Du skal modellere dette med en abstrakt base klasse og sub-klasser i C#.
Opgave
- Lav en abstrakt klasse
Transportmiddelmed mindst:- Et felt til registreringsnummer (f.eks. „AB12345“)
- En
protectedpris pr. kilometer (f.eks. 10 kr/km) - En offentlig abstrakt metode
BeregnPris(double kilometer) - En offentlig
ToString()metode, der returnerer transportmidlets type og registreringsnummer - Transportmiddel klassen skal have en konstruktor der tager:
- et
stringregistreringsnummer - en
doublepris pr. kilometer
- Lav følgende 3 underklasser:
TaxaLastbilElbil
- Hver klasse skal override
BeregnPrisog bruge en unik formel (se nedenstående):
- Brug passende synlighedsniveauer:
- Felter i baseklassen bør være
privateellerprotected - Metoder der skal kunne kaldes udefra skal være
public
Beregningsregler
Transportmidlerne beregner prisen forskelligt:
Taxa
- Fast startgebyr på 40 kr.
- Derefter: kilometerpris.
- Pris = 40 + (km * kmPris)
- Eks: 20 km, kmPris 10 → 40 + 200 = 240 kr
Lastbil
- Kilometerpris + fast broafgift på 150 kr.
- Pris = (km * kmPris) + 150
- Eks: 20 km, kmPris 5 → 100 + 150 = 250 kr
Elbil
- 20% rabat på normalprisen.
- Pris = (km * kmPris) * 0.8
- Eks: 20 km, kmPris 3 → 60 * 0.8 = 48 kr
Test
- Lav et array eller en liste med forskellige transportmidler (blandet typer)
- Kør en test hvor du beregner prisen for en tur på fx 20 km
- Udskriv resultatet med typen, registreringsnummer og beregnet pris
Forventet output
Det præcise output vil afhænge af de værdier du giver objekterne, men noget i stil med:
Taxa (AB12345): Pris for 20 km = 240 kr Lastbil (CD67890): Pris for 20 km = 250 kr Elbil (EL00001): Pris for 20 km = 48 kr
Krav
- Der må ikke kunne laves en instans af klassen Transportmiddel
- Du skal bruge nedarvning og metode-overriding
- Du skal bruge synlighedsniveauer bevidst
Bonus opgaver (optional)
- Lav en metode der returnerer den billigste transportform for en given distance
- Tilføj flere typer transportmidler, fx Cykel eller Fly
- Lav input fra brugeren (hvor mange km og valg af transporttype)
Her finder du hjælp
prog/exercise/nedarvning_og_abstract.txt · Sidst ændret: af 127.0.0.1

