Systemprogrammierung - AIN/2
Sommersemester 2024


Übungsaufgabe 5: C++ Klassen, Iteratoren, Übersetzungseinheiten

Abgabe bis 20./21.6.2024


Vorbereitung

Legen Sie ein Arbeitsverzeichnis für Aufgabe 5 an und speichern Sie darin das Archiv ⤵ aufgabe5.tar.gz. Entpacken sie das Archiv mit dem folgenden Kommando:

  tar xzf aufgabe5.tar.gz
Ihr Arbeitsverzeichnis von Aufgabe 5 sollte anschließend die vier Dateien Makefile, notenspiegel.cpp, notenspiegel-in.txt und notenspiegel-out.txt enthalten.


Programmierung

Das vorgegebene Programm notenspiegel.cpp erstellt einen Notenspiegel. Ergänzen Sie die fehlenden Übersetzungseinheiten wie folgt:

Erstellen Sie eine Übersetzungseinheit benotung, die eine gleichnamige Wertklasse mit den folgenden Komponenten enthält:

Erstellen Sie eine Übersetzungseinheit fachnote, die eine gleichnamige Entitätenklasse mit den folgenden Komponenten enthält:

Erstellen Sie eine Übersetzungseinheit fachnoten_liste, die eine gleichnamige Entitätenklasse enthält. Verwenden Sie das Vorlesungsbeispiel intlist aus Teil 6 als Vorlage und sehen Sie die folgenden Änderungen vor:


Test und Qualitätssicherung

Verwenden Sie zum Testen die gewohnten Befehle:

  make
  make cppcheck
  ./notenspiegel
  valgrind ./notenspiegel

Führen Sie auch die folgenden automatisierten Tests aus:

  valgrind ./notenspiegel < notenspiegel-in.txt
  ./notenspiegel < notenspiegel-in.txt > out.txt
  diff -Z notenspiegel-out.txt out.txt

Bessern Sie gegebenenfalls nach.


Abgabe

Führen Sie Ihr Programm mit den automatisierten Tests vor.
Zeigen Sie das ausgefüllte Teilnahmeprotokoll.

Hinweis:
Der Compiler g++ darf für Ihr Programm keine Fehler oder Warnungen mehr ausgeben.
Ihr Programm muss außerdem ordentlich formatiert sein. Bessern Sie die Formatierung gegebenenfalls mit astyle nach:
astyle -p -H --style=ansi *.[ch]*


Freiwillige Zusatzaufgaben (je 1 Bonuspunkt)



Prof. Dr. H. Drachenfels
Hochschule Konstanz - Impressum - Datenschutzerklärung
Letzte Änderung: 13.6.2024