Aufgabe Vorschlag A - 1 - Klassen und Methoden implementi… · Abitur Hessen Technische Informatik LK 2022

Thema: Klassen und Methoden implementieren · Aus der Prüfung LK (2022)

Aufgabenstellung

Traktorfuhrpark

Die Digitalisierung hält schon seit vielen Jahren Einzug in die moderne Landwirtschaft. So sind Traktoren heutzutage oft vernetzte Fahrzeuge, die mittels GPS-Navigation automatisch die Spur halten können und Informationen über die eingesetzte Saatgut- und Düngemittelmenge sammeln und diese an eine Zentrale zur Auswertung weiterleiten. Solche Traktoren bedeuten eine hohe Investition für landwirtschaftliche Betriebe, so dass sich viele Betriebe die Traktoren bei Fuhrparks mieten.

Ziel ist es, einen Teil einer Online-Verwaltungssoftware für den Fuhrpark zu entwickeln. Kundinnen und Kunden (im Folgenden Kunden genannt) des Fuhrparks benötigen zunächst Registrierungsdaten, bestehend aus Username und Passwort, die sie von einer Sachbearbeiterin oder einem Sachbearbeiter (im Folgenden Sachbearbeiter genannt) des Fuhrparks erhalten. Bei dem Registrierungsvorgang werden auch Anschriftsdaten und eine Abbuchungserlaubnis für ein Bankkonto mit IBAN erfasst.

Um eine Buchung durchzuführen meldet sich der Kunde auf der Webseite an. Er wählt auf der Webseite einen Traktor nach Hersteller und Leistungsklasse aus und entscheidet, ob er einen Anhänger hinzubuchen möchte. Zur Auswahl stehen Transportanhänger und Saatgutverteiler. Die Transportanhänger sind nach unterschiedlichem Zuladegewicht auswählbar, die Saatgutverteiler nach der Saatkapazität in Quadratmetern pro Stunde. Jeder Traktor und jeder Anhänger haben einen Mietpreis pro Tag.

Als weiterer Service wird auch Saatgut mit einem Preis pro Zentner verkauft, welches einem Buchungsvorgang hinzugefügt werden kann. Die Verwaltungssoftware ermittelt aus den ausgewählten Traktoren und Anhängern sowie den zusätzlich gewünschten Saatgutmengen einen Angebotspreis. Der Kunde wählt einen freien Termin und kann den Angebotspreis akzeptieren und damit den Termin buchen.

Material 1: UML-Klassendiagramm

1.4

Implementieren Sie die Klassen Buchung, Ware, Saatgut und Traktor in einer in Ihrem Unterricht verwendeten objektorientierten Programmiersprache.

Hinweis: Die Operationen myKosten() und angebotBerechnen() sind nicht zu implementieren. [9 BE]

1.5

Die Operation angebotBerechnen() in der Klasse Buchung berechnet den Angebotspreis für eine Buchung. Hierbei werden die Dauer der geplanten Miete in Tagen und die Kosten pro Tag sowie die Menge des bestellten Saatguts in Zentnern und die Kosten pro Zentner berücksichtigt. Implementieren Sie die Operation angebotBerechnen() in der Klasse Buchung und die Operationen myKosten() in den Klassen Ware, Traktor und Saatgut. [5 BE]

Code eingereicht. Vergleichen Sie Ihre Implementierung mit der Musterlösung.

Aufgabenstellung: Aufgabe Vorschlag A - 1 - Klassen und Methoden implementi… · Abitur Hessen Technische Informatik LK 2022

Lösung

Nach den offiziellen Korrekturhinweisen

1.4 Implementieren Sie die Klassen Buchung, Ware, Saatgut und Traktor in einer in Ihrem Unterricht verwendeten objektorientierten Programmiersprache.

Lösung: ```java import java.util.*; public class Buchung { private String datum; private int dauer; private ArrayList<Ware> warenkorb = new ArrayList<Ware>(); private double angebotsPreis; public void neueWare(Ware item) { warenkorb.add(item); } public double angebotBerechnen() { // Siehe Teilaufgabe 1.5 } public Buchung(String datum, int dauer) { this.datum = datum; this.dauer = dauer; } public int getDauer() { return dauer; } } public abstract class Ware { protected Buchung myBuchung; protected void setMyBuchung(Buchung myBuchung) { this.myBuchung = myBuchung; } protected double myKosten() { // Siehe Teilaufgabe 1.5 } } public class Saatgut extends Ware { private double menge; private double kostenProZentner; public Saatgut(double menge, double kostenProZentner) { super(); this.menge = menge; this.kostenProZentner = kostenProZentner; } public double myKosten() { // Siehe Teilaufgabe 1.5 } } public class Traktor extends Ware { private String hersteller; private double leistung; private double kostenProTag; public Traktor(String hersteller, double leistung, double kostenProTag) { super(); this.hersteller = hersteller; this.leistung = leistung; this.kostenProTag = kostenProTag; } public double myKosten() { // Siehe Teilaufgabe 1.5 } } ```

1.5 Implementieren Sie die Operation angebotBerechnen() in der Klasse Buchung und die Operationen myKosten() in den Klassen Ware, Traktor und Saatgut.

Lösung: ```java // In Klasse Buchung: public double angebotBerechnen() { double kosten = 0.0; for (Ware item : warenkorb) { kosten = kosten + item.myKosten(); } return kosten; } // In Klasse Ware: protected double myKosten() { return 0.0; } // In Klasse Traktor: public double myKosten() { return (myBuchung.getDauer() * kostenProTag); } // In Klasse Saatgut: public double myKosten() { return (menge * kostenProZentner); } ```

Die ausführliche Erklärung Schritt für Schritt (mit KI) gibt es mit Premium. Premium

Löse sie direkt hier: automatische Korrektur, Hinweise und Lösung Schritt für Schritt.

Aufgabe Vorschlag B - 1 - Klassen und Methoden implementi… · LK 2022 ›

Mehr Aufgaben zu Klassen und Methoden implementieren