Schlachtplan



  • Hallo!

    Wir sind eine Gruppe von Studenten die sich ein wenig schwer tun mit einer uns gestellten Aufgabe.
    Irgendwie haben wir den Überblick verloren was zu tun ist. Wer ist in der Lage uns einen „Schlachtplan“ zu erstellen und uns sagt wie die Dateien zusammenhängen, einfach ein paar Ideen und Tipps wie wir an die Aufgabe rangehen sollen.

    Folgende Dateien sind gegeben:

    klausurergebnisliste.h
    ---------------------------------------------------------------------------
    #ifndef _KLAUSURERGEBNISLISTE_H_INCLUDED_
    #define _KLAUSURERGEBNISLISTE_H_INCLUDED_

    namespace HochschuleFuerTechnikUndWirtschaft {

    /* Die Datei KlausurErgebnisListe.txt muss das Format
    <Matrikelnummer><Blanc><Klausurergebnis> haben.
    Dabei ist Matrikelnummer eine Zahl zwischen 1000 und 3000,
    Blanc das Zeichen ' ' und Klausurergebnis eine Zahl zwischen
    0 und 20. Beispiel:

    1023 19
    2001 4
    1034 12
    */

    /* openList oeffnet eine Datei mit Namen
    "KlausurErgebnisListe.txt" im aktuellen Verzeichnis.
    Ist diese Datei nicht vorhanden, so wird sie erzeugt.
    Ein Rueckgabewert von 0 besagt, dass die Funktion
    erfolgreich ausgefuehrt wurde. Beim Programmende muss
    die Datei mit dem Aufruf von closeList geschlossen werden.*/

    int openList();

    /* closeList() schliesst die mit openList geoeffnete
    Datei. Alle Manipulationen dieser Liste mit den
    interface-Funktionen werden beruecksichtigt.
    Ein Rueckgabewert von 0 besagt, dass die Funktion
    erfolgreich ausgefuehrt wurde. -4 bedeutet, dass keine
    Datei geoeffnet war. */

    int closeList();

    /* addStudent fuegt den Studenten mit der Matrikelnummer matrikelnr
    und der Note note in die Liste ein.
    Bedeutung der Rueckgabewerte:
    0 Erfolg
    -1 Student bereits in der Liste.
    -2 Matrikelnummer nicht im Bereich 1000 - 3000
    -3 Note nicht im Bereich 0 - 20
    -4 Es wurde keine Datei geoeffnet.
    */

    int addStudent(const int& matrikelnr, const int& note);

    /* removeStudent entfernt den Studenten mit der Matrikelnummer
    matrikelnr aus der Liste.
    Bedeutung der Rueckgabewerte:
    0 Erfolg
    -1 Den Studenten gibt es nicht in der Liste.
    -4 Es wurde keine Datei geoeffnet.
    */

    int removeStudent(const int& matrikelnr);

    /* firstStudent liefert den ersten Studenten aus der Liste.
    Dieser hat matrikelnr als Matrikelnummer und die Note note.
    Bedeutung der Rueckgabewerte:
    0 Erfolg
    -1 Die Liste ist leer.
    -4 Es wurde keine Datei geoeffnet.
    */

    int firstStudent(int& matrikelnr, int& note);

    /* nextStudent liefert den naechsten Studenten aus der Liste.
    Dieser hat matrikelnr als Matrikelnummer und die Note note.
    Bedeutung der Rueckgabewerte:
    0 Erfolg
    -1 Es gibt keinen naechsten Eintrag
    -2 Iterationsfehler
    -4 Es wurde keine Datei geoeffnet.
    */

    int nextStudent(int& matrikelnr, int& note);

    } //namespace HochschuleFuerTechnikUndWirtschaft

    #endif //_KLAUSURERGEBNISLISTE_H_INCLUDED_
    --------------------------------------------------------------------------------
    klausurergebnisliste.txt
    --------------------------------------------------------------------------------

    2001 5
    2002 6
    2003 5
    2004 5
    --------------------------------------------------------------------------------
    sowie die klausurergebnisliste.o – Datei

    Hier kommt der Aufgabentext:

    1. Aufgabe (6 Punkte)
    --------------------------------------------------------------------------------
    Lerninhalte:
    Namespaces
    Design von Schnittstellen
    Arbeiten mit Fremd-Schnittstellen
    Erstellen von Compile-Skripts
    g++ Optionen -I und -L
    Referenzen
    --------------------------------------------------------------------------------

    In der Datei "klausurergebnisliste.h" ist die rudimentaere
    Schnittstelle fuer das Arbeiten mit einer Liste von
    Klausurergebnissen in dem namespace "HochschuleFuerTechnikUndWirtschaft"
    deklariert. Naeheres zur Benutzung finden Sie in der
    Schnittstellenbeschreibung.

    Die Datei "klausurergebnisliste.o" enthaelt den Objektcode. Diese benutzten
    Sie bitte zum linken. Das wird nur auf einem Linux Rechner mit dem benutzen
    Compiler funktionieren. Fuer Zuhause muessen sie einen sogenannten Sub entwickeln:
    Erstellen Sie dazu eine Datei klausurergebnisliste.cpp in der Sie die
    6 Funktionen der Schnittstelle ohne Funktionalitaeten definieren.
    Dann haben Sie etwas zu linken. Testen muessen Sie an der HTW.

    Entwerfen Sie eine Schnittstelle innerhalb eines neuen namespace
    "KommunikationsInformatik", die mit Hilfe der Schnittstelle
    in "klausurergebnisliste.h" Methoden zu den folgenden Funktionalitaeten
    anbietet:
    1. Auflisten der Studenten und ihrer Noten.
    2. Berechnung der Durchschnittsnote.
    3. Ausgabe der Studenten mit der hoechsten Punktezahl.

    Hilfsfunktionen, falls benoetigt sind in einem unbenannten Namensraum
    zu verstecken. Behandeln Sie Fehler nur durch eine Fehlermeldung.
    Die Ausgaben sollen nicht aufsteigend nach Matrikelnummer sortiert werden!!

    --------------------------------------------------------------------------------
    2. Aufgabe (6 Punkte)
    --------------------------------------------------------------------------------

    Schreiben Sie ein Programm zur Klausurauswertung unter Ausnutzung
    der beiden Schnittstellen, das folgendes Menu hat:

    L Auflisten der Studenten und ihrer Noten.
    M Anzeigen der Durchschnittsnote
    T Ausgabe der Studenten mit der hoechsten Punktezahl.
    + Hinzufuegen eines Klausurergebnisses fuer einen Studenten
    - Entfernen eines Studenten aus der Liste
    B Beenden des Programms

    Kapseln Sie das Modul Klausurauswertung in einem eigenen
    Namespace "Klausurauswertung" (Fuer die Namen der
    namespaces koennen Sie Abkuerzungen einfuehren, z.B. KAW, KI und HTW).

    Das main Programm soll nur eine Funktion "int startKlausurAuswertung"
    des Modules "Klausurauswertung" aufrufen. Fuer jeden der Menupunkte
    ist eine Callback-Methode, d.h. eine Funktion zu implementieren, die
    im Falle der entsprechenden Eingabe aufgerufen wird.

    In beiden Aufgabenteilen (1. + 2.) trennen sie die Schnittstelle von der
    Implementierung, d.h. dass Sie die Funktionen in einer Header-Datei
    deklarieren und in einer Source-Datei implementieren.

    --------------------------------------------------------------------------------
    3. Aufgabe (1 Punkte)
    --------------------------------------------------------------------------------

    Erstellen Sie ferner ein Script zum comilieren und linken der Dateien,
    damit Ihnen die Entwicklungsarbeit vereinfacht wird.
    Legen Sie ein Verzeichnis inc mit der Headerdatei und ein Verzeichnis
    lib mit der *.o Datei an. Compilieren und Linken Sie, indem Sie
    den Include-Pfad und den Link-Pfad entsprechend erweitern.
    --------------------------------------------------------------------

    Viel Spaß !
    Uns fehlt er noch....



  • Wo genau ist das Problem ?



  • Also das erste Problem ist das Design der Schnittstelle, wir wissen nicht wie wir die vorhanden Dateien einbinden sollen und Welcher Art diese Schnittstelle sein soll. Das würde für den Anfang schon viel helfen.

    Gruß

    Koloth



  • So wie ich das verstehe, sollt ihr einfach auf die existierende Schnittstelle zurückgreifen.

    Also, drei Funktionen, die
    1. Auflisten der Studenten und ihrer Noten.
    2. Berechnung der Durchschnittsnote.
    3. Ausgabe der Studenten mit der hoechsten Punktezahl.

    implementieren, indem sie openList / closeList / addStudent / removeStudent / firstStudent / nextStudent aufrufen.

    Fragen:
    a) wie sollten diese Funktionen heißen?
    b) welche Parameter benötigen diese?
    c) Welche Daten müssen zuückgegeben werden?
    d) Welche Fehler können auftreten, wie werden diese behandelt?

    Daraus sollte man erstmal eine Schnittstelle erstellen können, ähnlich klausurergebnisliste.h

    Dann muß man die Dinger nur noch implemnetieren 🙄



  • es hat wzar nciht viel mit eurem prob zutun aber ich bin da schon sehr neugiereig geworden:

    Ihr sagt, ir seid Studenten. Und ihr habt die aufgaben von oben gestellt bekommen. Von Wem habt ihr die Aufgaben gestellt bekommen? (von nem freund oder so.. oder ...)

    mir scheint das eher ne aufgabe für klasse 10 zu sein oder klasse 11....
    ...oder soll das nur eine einleitung ins thema sein??



  • Alao du musst davon ausgehen das wir Erstsemester sind und das ist die 4te Übung, ich z.B haber erst angefangen mit C++ und keine Erfahrung mit Programmierung. Ich komme noch nicht so ganz klar damit und dachte hier einige Anregungen zu finden. Leider hatte ich weder in der 10ten noch in der 11ten Klasse Prog. oder Informatik.



  • Wo und was studierst du?!?
    Ich studier nämlich in Hof WI und darum interessiert mich das so



  • Ich habs nur überflogen, habt ihr jetzt schon StudenHinzufuegen() usw als Funktionen vorliegen oder sollt ihr die selber in einer headerdatei erstellen?

    So spontan würd ichs einfach mit ner doppelt verketteten liste, bubble sort und streams lösen!


Anmelden zum Antworten