Klasse
-
War mir nicht sicher...
sobald ich 'j' eingebe und enter drücker schliesst das Fenster ohne eine aktion...
viele warnings...z.b. das auszahlwert ohne initialisierung verwendet wurde, was heisst das genau?
irgendwo muss noch ein Fehler sein... :xmas1:
-
Hmm probier mal statt cin.get() am Ende cin >> eingabe;
MfG
-
das mit dem schließen, guck mal hier in die faq, bei dem problem das ein programm ncihts macht oder nur ganz kurz auftaucht. Weiterhin:
in main musst du char eingabe und nicht double eingabe nehmen. DOuble speichert zahlen, du willst aber buchstaben eingeben, also nimmst du char.
-
Die Tipps waren ja schon mal hilfreich...
jetzt gibt er wenigstens schon den Kontostand aus...danach is allerdings schluß...
kann ich das ganze auch umschreiben?Stimmt das wirklich? Oder habe ich was vergessen?
if (eingabe == 'e') { konto1.einzahlen(); }VIelen Dank
-
Aus Code lernt man
#include <iostream> class Konto { double kontostand; public: Konto() : kontostand(2000) { } ~Konto() { } void Einzahlen(); void Auszahlen(); double getKontostand() { return kontostand; } }; void Konto::Einzahlen() { double einzahlwert; std::cout << "Geben Sie ein, wieviel Sie einzahlen wollen: "; std::cin >> einzahlwert; kontostand += einzahlwert; } void Konto::Auszahlen() { double auszahlwert; std::cout << "Geben Sie ein, wieviel Sie abheben wollen: "; std::cin >> auszahlwert; kontostand -= auszahlwert; } int main() { std::cout << " **** Herzlich willkommen auf Ihrem Konto *** " << std::endl << std::endl; char eingabe = ' '; Konto konto1; while('v' != eingabe) { std::cout << std::endl << "<s> Kontostand einsehen" << std::endl; std::cout << "<e> Einzahlen" << std::endl; std::cout << "<a> Auszahlen" << std::endl; std::cout << "<v> Beenden" << std::endl << std::endl; std::cin >> eingabe; switch(eingabe) { case 's': std::cout << konto1.getKontostand() << std::endl; break; case 'e': konto1.Einzahlen(); break; case 'a': konto1.Auszahlen(); break; case 'v': std::cout << " *** Herzlichen Dank für Ihren Besuch *** " << std::endl; default: break; } } return 0; }
-
Problem erledigt...vielen Dank für eure Hilfe..

-
Visual Newbie schrieb:
double kontostand;Fataler Fehler. Nimm hier auf JEDEN FALL int!
-
Nimm halt float.
Musst dann aber auch
Konto() : kontostand(2000.0f) {}
schreiben
-
Es geht hier eher darum, dass bei größeren Zahlen bei double Rundungsfehler auftreten und man deswegen (jedenfalls bei kritischen Programmen, wie bei Banken) int oder irgend einen anderen Datentyp verwendet, bei dem keine Rundungsfehler auftreten. Aber bei dem simplen Beispiel denke ich nicht, dass es wirklich viel ausmacht. Man sollte es vielleicht nur wissen, falls man später mal "richtige" Anwendungen schreibt...
Felix :xmas1: :xmas2:
-
Hallo Visual Newbie,
mal eine kleine Anmerkung zum Design. Es ist in der Regel von Vorteil, das Frontend und das Modell zu trennen. Das Frontend ist der Teil des Programmes, in dem Du Benuzer Eingaben erhältst und die Ausgabe machst. In obigem Fall die Konsole. Dein Model ist die Konto-Klasse.
Du kannst nach diesem Ansatz z. B. die Buchungs-Daten in der Main abfragen und dann erst an die Konto-Klasse übergeben. Der Code währe dann Folgender.
class Konto { private: double kontostand; public: Konto(void) : kontostand(2000.0L) { } ~Konto(void) { } void Einzahlen(double einzahlwert) { kontostand += einzahlwert; } void Auszahlen(double auszahlwert) { kontostand -= auszahlwert; } double getKontostand() const { return kontostand; } }; int main() { std::cout << " **** Herzlich willkommen auf Ihrem Konto *** " << std::endl << std::endl; char eingabe = ' '; Konto konto1; while('v' != eingabe) { std::cout << std::endl << "<s> Kontostand einsehen" << std::endl; std::cout << "<e> Einzahlen" << std::endl; std::cout << "<a> Auszahlen" << std::endl; std::cout << "<v> Beenden" << std::endl << std::endl; std::cin >> eingabe; switch(eingabe) { case 's': std::cout << konto1.getKontostand() << std::endl; break; case 'e': { double betrag; std::cout << "Einzahlungsbetrag: "; std::cin >> betrag; konto1.Einzahlen(betrag); } break; case 'a': { double betrag; std::cout << "Auszahlungsbetrag: "; std::cin >> betrag; konto1.Auszahlen(betrag); break; } case 'v': std::cout << " *** Herzlichen Dank für Ihren Besuch *** " << std::endl; default: break; } } }Ich hoffe das hilft Dir weiter
Viele Grüße
Knecht