Zum Inhalt springen

dwhassom

Mitglieder
  • Gesamte Inhalte

    5
  • Benutzer seit

  • Letzter Besuch

Beiträge von dwhassom

  1. Hallo, ich brauche Hilfe für das Programm bitte!

    Danke im voraus

    Dave

    Ein Programm Schreiben zur Verwaltung von Klausurobjekten.

    Der Aufbau des Programms bestehe aus

    - der Deklaration einer Klasse Klausur in einer Header-Datei, Klausur.h

    - der Definition der unten angegebenen Klassen- und Objektelementen in einer

    Implementierungsdatei Klausur.cpp sowie

    - einem Verwaltungsprogramm in der Datei, KlausurAdmin.cpp, das Klausur.h inkludiert und Klausur.cpp benutzt.

    Die Attribute eines jeden Klausurobjekts seien: Vorname, Nachname, Matrikelnummer sowie erzielbare

    und erzielte Punkte. Eingegebene Klausurdaten können auf dem Bildschirm ausgegeben werden.

    Zusätzlich soll jede Klausur eine eigene Nummer aufweisen, die automatisch berechnet wird und die

    tatsächliche Nummer der Klausur in der Reihenfolge der Eingabe wiedergibt.

    Die Attribute sollen über einen Konstruktor initialisiert werden, der demnach vier formale Parameter

    aufweisen soll.

    Unmittelbar nach Erzeugung des jeweiligen Klausurobjekts sollen aus dem Rumpf des Konstruktors die

    laufende Nummer der Klausur sowie die Initialisierungswerte ihrer anwendungslogischen Attribute auf

    dem Bildschirm ausgegeben werden.

    Die Klasse Klausur kapselt ein Klassenattribut int klausurZ in dem zu jedem Zeitpunkt die Anzahl

    der bis dahin eingegebenen Klausuren verwaltet wird.

    Zum inkrementieren dieses Klassenattributs sei eine

    private Funktion void increKlausuren() bereitgestellt.

    Zum Auslesen des Werts des Attributs sein eine public-Funktion int getKlausurZ()

    bereitgestellt.

    Zur Ermittlung der Note stellen Klausurobjekte eine public-Funktion double getNote()

    öffentlich bereit.

    Zur Berechnung der Note kapseln Klausurobjekte außerdem eine

    private-Funktion double berechneNote(), die auf der Basis der erzielten und erzielbaren

    Punktzahl eines jeden Klausurobjekts ermittelt wird.

    Außerdem soll jede Klausur eine öffentliche Funktion public void zeigAtte() aufweisen, die

    zur Ausgabe sämtlicher Attributwerte eines jeden Klausurobjekts auf dem Bildschirm benutzt wird.

    Das Programm soll die Eingabe von 5 Klausuren erlauben, die Sie entweder über 5 Objektvariablen oder

    in einer geeigneten Objekt-Sammlungsstruktur (Collection, wie array, vector etc.) verwalten. Die

    Maximalzahl kann selbstverständlich durch eine Zahl > 5 verändert werden, wozu eine geeignete

    Datenstruktur gewählt werden muss.

    Es muss mindestens eine Klausur, es können aber durchaus weniger als 5 Klausuren eingegeben werden.

    Sofern versucht wird mehr als 5 (Maximalzahl von Klausuren) einzugeben, soll eine Meldung auf dem

    Bildschirm erscheinen, eine Eingabe weiterer Attributwerte unterbleiben, die Ausführung des Programms

    jedoch fortgesetzt werden.

    Die Durchschnittsnote der erzielten Klausurergebnisse soll berechnet und ausgegeben werden. Sie ergibt

    sich aus der Division der aufaddierten Noten der einzelnen Klausuren durch die Anzahl der eingegebenen

    Klausuren.

    Zum Kontrollfluss.

    Der Benutzer kann solange Klausuren eingeben, bis er Q/q für Ende eingibt.

    Ist die Eingabe beendet werden hintereinander weg

    - die Attributwerte jeder eingegebenen Klausur ausgegeben

    - die Anzahl der eingegebenen Klausuren sowie

    - die ermittelte Durchschnittsnote über alle Klausuren.

  2. Hallo, helfen Sie mir dieses Programm zum schreiben. Ich bin noch nicht fertig aber es gibt ein Fehler an diese Stelle (:confused:)

    Programm

    Vereinbaren Sie bitte eine Klasse namens KlasseA und vereinbaren Sie darin die

    folgenden Elemente:

    1. Ein privates Objektatrribut namens zahl vom Typ int.

    2. Ein privates Klassenattribut namens anz vom Typ int.

    3. Einen öffentlichen Standardkonstruktor, der das Attribut zahl mit 17 initialisiert und anz

    um 1 erhöht.

    4. Einen öffentlichen Allgemeinkonstruktor mit einem int-Parameter, der das Attribut zahl

    mit seinem Parameter initialisiert und anz um 1 erhöht.

    5. Einen öffentlichen Allgemeinkonstruktor mit einem string-Parameter s, der s mit atoi in

    einen int-Wert umwandelt, mit dem Ergebnis das Attribut zahl initialisiert und ausserdem

    anz um 1 erhöht.

    6. Einen öffentlichen Kopierkonstruktor, der das neue Objekt mit demdoppelten Wert des zahl-

    Attributs des alten Objekts initialisert und anz um 1 erhöht.

    7. Einen öffentlichen Destruktor, der anz um 1 vermindert.

    8. Eine öffentliche Objektfunktion namens getZahl, die 0 Parameter hat und den Wert des

    Attributs zahl liefert.

    9. Eine öffentliche Klassenfunktion namens getAnz, die 0 Parameter hat und den Wert des

    Attributs anz liefert.

    A4.2 Vereinbaren Sie bitte in derselben Quelldatei eine int main()-Funktion, deren Ausführung

    die folgende Ausgabe auf dem Bildschirm erzeugt.

    Ausgabe des Programms KlasseA:

    KlasseA: Jetzt geht es los!

    -----------------------------------

    STANDARDkonstruktor, zahl: 17

    ALLGEMEINkonstruktor 1, zahl: 23

    ALLGEMEINkonstruktor 2, zahl: 10

    KOPIERkonstruktor, zahl: 20

    -----------------------------------

    a1.getZahl() : 17

    a2.getZahl() : 23

    a3.getZahl() : 10

    a4.getZahl() : 20

    KlasseA::getAnz(): 4

    -----------------------------------

    ALLGEMEINkonstruktor 1, zahl: 15

    ALLGEMEINkonstruktor 1, zahl: 30

    -----------------------------------

    a1.getZahl() : 15

    a2.getZahl() : 30

    -----------------------------------

    KlasseA::getAnz(): 6

    -----------------------------------

    KlasseA::getAnz(): 4

    -----------------------------------

    KlasseA: Das war's!

    was Ich geschrieben habe:

    //Datei KlasseA.cpp

    #include<string>

    #include<iostream>

    using namespace std;

    //Definition der KlasseA

    class KlasseA {

    private: //Eigenschaften sind private und damit

    // gegen den direkten Zugriff geschuetzt

    int zahl;

    int anz;

    public: //Klassenelemente (Memberfunktionen) müssen public sein sonst

    // kann mit der Klasse nicht gearbeitet werden

    KlasseA(); //Standardkonstruktor (K1)

    KlasseA(int zahl, int anz); //Allgemeinerkonstruktor (K2)

    KlasseA(string * s); //Allgemeinerkonstruktor (K3)

    KlasseA(KlasseA const & a); //Kopier-Konstruktor (K4)

    ~KlasseA(); //Destruktor (D)

    public: //Objectelemente

    string getString(); //get-Methode

    void setString(string s); //set-Methode

    //Zuweisungs-Operator (=)

    KlasseA const & operator = (KlasseA const & zahl);

    //Inkrementierungs-Operator (++)

    bool operator == (KlasseA const & anz);

    private: //Objektelemente sind private und damit

    // gegen den direkten Zugriff geschuetzt

    string * atoi; //Attribut

    //Freunde

    //Ausgabeoperator

    friend ostream & operator << (ostream & os, KlasseA const & a);

    }; //KlasseA

    //Definition der Methoden der KlasseA

    //StandardKonstruktor (K1)

    KlasseA::KlasseA() {

    zahl = 17; //zahl initialisiert

    anz = anz++; //anz inkrementiert

    atoi = new string(" ");

    cout <<"K1:" << atoi << endl;

    }

    //Allgemeinerkonstrucktor (K2)

    KlasseA::KlasseA(int zahl, int anz) {

    atoi = new string(zahl, anz);

    cout <<"k2:" << atoi <<endl;

    }

    //Allgemeinerkonstruktor (K3)

    KlasseA::KlasseA(string * s) {

    (:confused:) atoi = new string(s);

    cout <<"K3:" << atoi << endl;

    }

    //Kopier-konstruktor (K4)

    KlasseA::KlasseA(KlasseA const & a) {

    atoi = new string(*t.atoi);

    cout <<"K4:" << atoi << endl;

    }

    //Destruktor (D)

    KlasseA::~KlasseA() {

    cout <<"D:" << atoi << endl;

    delete atoi;

    }

    string KlasseA::getString() //get-Methode

    return *atoi;

    } //getString

    void KlasseA::setString(string s) { //set-Methode

    *atoi = s;

    } //setString

    KlasseA const &

    KlasseA::operator = KlasseA const & zahl) { //Zuweisungs-Operator(=)

    *this->atoi = *zahl.atoi;

    return zahl;

    } //Operator (=)

    bool KlasseA::operator ++ (KlasseA const & anz) { //Inkremntierungs-operator (++)

    return *atoi ++ *anz.atoi;

    } //Operator (++)

    //AusgabeOperator <<

    ostream & operator << (ostream & os, KlasseA const & a) {

    os << *a.atoi;

    return os;

    } //Operator <<

    //Eine speicherhungrige Prozedur

    void machWas() {

    KlasseA a1(10*1000*1000, '!'); //10 MB gefüllt mit Ausrufezeichen

    cout << '.' << flush; //Ein Punkt '.' wird sofort ausgegeben

    } //machWas

    /----------------------------------------------------------

    //int main() {

    cout <<"KlasseA: Jetzt geht's los!" << endl;

    Cout <<"STANDARDkonstruktor, zahl:" << endl;

    cout <<"ALLGEMEINERkonstruktor 1, zahl:" << endl;

    cout <<"ALLGEMEINERkonstruktor 2, zahl:" << endl;

    cout <<"KOPIERkonstruktor, zahl:" << endl;

    KlasseA a1("zahl:");

    KlasseA a2("zahl:");

    KlasseA a3("zahl:");

    KlasseA a4("zahl:");

    cout <<"a1.getZahl():" << a1.getZahl() << endl;

    cout <<"a2.getzahl():" << a2.getzahl() << endl;

    cout <<"a3.getzahl():" << a2.getZahl() << endl;

    cout <<"a4.getZahl():" << a2;getZahl() << endl;

    cout <<"KlasseA::getAnz():" << endl;

    cout <<"KlasseA : Das war's!" << endl;

    }

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...