ich weiss nicht wie ich die methode showCredit implementieren soll ...



  • Das wäre die zunächst zu klärende Frage. Sollte es eine irgendwie geartete Ausgabe geben, wäre wohl die Ausgabe des Attributes "balance" (Kontostand) die einfachste Möglichkeit. Nur scheint mir eben bei dieser ein eklatanter Designfehler vorzuliegen. Warum sollte die Balance nur positiv sein? Außerdem würde man das wohl sinnvollerweise durch die Verwendung eines unsigned-Typs darstellen.



  • guude,

    BorisDieKlinge schrieb:

    Die funktion showCredit gibt laut UML keinen Wert zurück.. seh ich das richtig?

    in der UML notation steht void als typ, ich denke die methode soll keinen wert zurueckgeben...

    Soll die funktion den wert lieferen oder nur (visuel) anzeigen?

    ich poste weiter unten mal eine musterausgabe...

    Ist die ganze geschicht als Consolen Programm implementiert?

    ja die aufgabe soll als konsolen programm implementiert werden.

    danke schonmal

    regards,
    buk



  • so hier mal die musterausgabe:

    Bildschirmausgabe zur Übung 2  (Konto)
    --------------------------------------------------------
    
    Testsequenz fuer Konto 1 ...
    Konto1 erzeugen ...
    Gib PIN: 1234
    Konto1 Einzahlung ...
      Wieviel wollen Sie einzahlen: 555.55
    Konto1 Kontoauszug holen ...
      Bitte geben Sie Ihre PIN ein: 1234
      Der aktuelle Stand des Kontos ist: 555.55
    Konto1 Auszahlung ...
      Bitte geben Sie Ihre PIN ein: 1234
      PIN ok!
      Wieviel soll es denn sein: 111.11
    Konto1 Kontoauszug holen ...
      Bitte geben Sie Ihre PIN ein: 1234
      Der aktuelle Stand des Kontos ist: 444.44
    Konto1 PIN aendern ...
      PIN aendern: Bitte geben Sie Ihre PIN ein: 1234
      Gib neue PIN: 4321
      Wiederhole neue PIN: 4321
      Neue PIN eingetragen.
    Konto1 Kontoauszug holen ...
      Bitte geben Sie Ihre PIN ein: 4321
      Der aktuelle Stand des Kontos ist: 444.44
    ---------------------------------------------------
    


  • na dann gib mit cout oder mit printf die kontastand daten zurück

    bsp:

    void showCredit(){
    
    printf("%i",balance);
    
    }
    


  • BorisDieKlinge schrieb:

    na dann gib mit cout oder mit printf die kontastand daten zurück

    In einen C++ Forum solltest du nicht das schlechtere Beispiel bringen. printf ist C (Mit einigen sehr schönen Absturzmöglichkeiten...).



  • guude,

    BorisDieKlinge schrieb:

    na dann gib mit cout oder mit printf die kontastand daten zurück

    bsp:

    void showCredit(){
    
    printf("%i",balance);
    
    }
    

    genau das hatte ich schon versucht. allerdings ist balance - laut der UML notation - ein private attribut . und ich darf laut aufgabenstellungs die öffentliche schnittstelle nicht erweitern. also kann ich per set und get methoden da nichts aendern...

    die methode payIn realisiert das einzahlen auf das konto. das heisst doch ich muesste die variable die den betrag speichert, an die methode showCredit uebergeben, und dann mit cout ausgeben?!

    aber da ecke ich ja mit der aufgabenstellung an, das ich die schnittstelle nicht erweitern darf. also auch keine parameter uebergeben darf...

    regards,
    buk



  • Da es sich bei (fast) allen Methoden um Methoden ohne Rückgabetyp (void) und ohne Parameter handelt, kann man mit ziemlicher Sicherheit davon ausgehen, dass du innerhalb dieser Methoden einen Eingabe/Ausgabe-Dialog mit dem Benutzer führen musst.

    Innerhalb der Methoden kannst du natürlich auf die (privaten) Attribute der Klasse zugreifen.

    Demnach erzeugt die Methode void payIn() folgenden Dialog:

    Konto1 Einzahlung ...
      Wieviel wollen Sie einzahlen: 555.55
    

    Und was printf angeht: Ein Vorposter hat schon angemerkt, dass du printf meiden solltest. Besser ist:

    std::cout << "Der aktuelle Stand des Kontos ist:" << balance << std::endl;
    

    Auch hier stellt sich nicht das Problem, dass balance privat ist, da Methoden immer auf die Attribute ihrer eigenen Klasse zugreifen können (sofern nicht abgeleitet).

    Grüße... Heiko



  • guude,

    danke schonmal fuer die erklaerungen! ich habe das ganze nun so geloest (stand auch etwas auf dem schlauch, ich tu mir manchmal noch schwer die aufgabenstellungen meiner profs zu verstehen, hoffe das legt sich) ...

    Methode payIn

    int EinzahlungsBetrag;
    
    	cout << "Bitte geben Sie den Betrag ein, den Sie einzahlen moechten: ";
    	cin >> EinzahlungsBetrag;
    	balance+=EinzahlungsBetrag;
    

    Methode payOut

    int AuszahlungsBetrag;
    
    	cout << "Bitte geben Sie den Betrag ein, den Sie abheben moechten: " << endl;
    	cin >> AuszahlungsBetrag;
    	balance-=AuszahlungsBetrag;
    

    Methode showCredit

    void Account::showCredit()
    {
    	cout << "Ihr aktueller Kontostand: " << balance << endl;
    }
    


  • guude,

    bwbg schrieb:

    ... da Methoden immer auf die Attribute ihrer eigenen Klasse zugreifen können (sofern nicht abgeleitet).

    das ist natuerlich richtig! ich weiss nicht wieso ich mich an set und get methoden verbissen hatte...



  • ja da war wohl ne kleine denkblockade;)


Anmelden zum Antworten