Christoph Ott Institut für Angewandte Informationsverarbeitung 21. August 2008
Blatt 4
WiMa-Praktikum/ Programmier-Praktikum (SS 2008)
Präsenz-Übungsaufgaben
Tutoriumstermin: 28. August 2008 11-13 Uhr
Wenn Ihr ein Auto besitzt, dann wisst Ihr vielleicht, dass die Höhe der bei
Eurem Finanzamt zu entrichtenden Kfz-Steuer vom Motor (Otto- oder Diesel-Motor),
vom Hubraum und vom Schadstoffausstoß abhängt. Die Berechnung dieser Steuer
(basierend auf einer frei erfundenen Formel) soll in dieser Aufgabe
Schritt für Schritt implementiert werden.
Schreibt eine Header-Datei für die Klasse Kfz. Für ein Kfz sind
mindestens folgende Attribute von Bedeutung:
- Ort der Zulassungsstelle
- Ottomotor oder Dieselmotor
- Größe des Hubraums
- Schadstofffaktor
Aus Gründen des Information Hiding sollen diese alle private deklariert
werden. Deshalb bedarf es auch noch der entsprechenden getter- und
setter-Funktionen. Denkt auch daran geeignete Konstruktoren zu deklarieren,
eventuell sind auch Defaultargumente nützlich.
Implementiert nun die Klasse Kfz in einer eigenen Datei, schreibt ein
Hauptprogramm zur Erzeugung von Kfz und ein geeignetes Makefile. Anschließend
sollte Euer Programm in der Lage sein Kfz mit bestimmten Attributen zu erzeugen,
diese später wieder abzurufen und zu ändern.
Deklariert und implementiert nun eine Klasse Finanzamt. Ein Finanzamt hat folgende Attribute:
- Ort des Finanzamts
- Zuschlag des jeweiligen Finanzamts auf die Kfz-Steuer (die Höhe der
Kfz-Steuer variiert schließlich von Ort zu Ort)
Allen Finanzämtern gemein ist der Preis, der für 1ccm Hubraum zu bezahlen ist.
In unserem Fall seien das 10 Cent.
Neben dem Konstruktor und eventuellen getter- und setter-Funktionen ist die
Elementfunktion computeTaxes von besonderer Bedeutung. Sie berechnet die
zu entrichtende Kfz-Steuer nach folgenden Regeln:
- Ein Finanzamt kann nur Kfz-Steuer berechnen, wenn das Kfz im Landkreis des
Finanzamts zugelassen ist (Andernfalls ist ein anderes Finanzamt zuständig!).
- Wenn dem so ist, so werden für jeden Kubikzentimeter (ccm) Hubraum 10 Cent
fällig.
- Hinzumultipliziert wird der Schadstofffaktor des Kfz.
- Der Ortszuschlag des jeweiligen Finanzamts wird hinzuaddiert.
- Falls es sich nicht um einen Ottomotor handelt wird die Steuer
abschließend noch verdoppelt.
Integriert diese Klasse in das bestehende Programm, ergänzt das Makefile
entsprechend und berechnet die Kfz-Steuer für beliebige Kfz und Finanzämter.
Viel Erfolg!
Christoph Ott
2008-08-21