[an error occurred while processing this directive]
Rheinland-Pfalz;
Informatik
2008; letzte Aktualisierung: 19.6.2014; Claus Schmitt
![]() |
Startseite Informatik-Rheinland-Pfalz |
Fachbegiffe suchen für alle Java-Seiten (Index)
Ausführliches
Testprogramm für die Klasse WebSiteAuthor2package klassen; import java.util.Scanner; public class TestAuthor3 { static WebSiteAuthor2 page = new WebSiteAuthor2(); static Scanner s = new Scanner(System.in); static void anzeigen() { // im Browser System.out.printf("Entstehungsdatum: %s%n", page.getDatumGeburt()); System.out.printf("Datum der Aktualisierung: %s%n", page.getDatumAktuell()); System.out.printf("Mail: %s%n", page.getMail()); System.out.printf("Zugriffszaehler: %d%n", page.getZugriffsZaehler()); System.out.println("Zähler der Webseite erhöhen beim Lesen? (j/n)"); String antwort = s.nextLine().toLowerCase(); // Groß- Kleinschreibung egal; if (antwort.charAt(0) == 'n') System.out.printf("Text der Web Seite: %s%n", page.getWebText()); else System.out.printf("Text der Web Seite: %s%n", page.getWebText2()); System.out.printf("Zugriffszaehler: %d%n%n%n", page.getZugriffsZaehler()); } static void editieren() { System.out.println("Bisheriger Text:"); String text = page.getWebText(); // Zugriffszähler zählt nicht mit mit!!! System.out.println(text); System.out.println("Welcher Text soll angehängt werden?"); text = text + s.nextLine(); System.out.println("Aktuelles Datum?"); String datum = s.nextLine(); page.setWebText(text, datum); System.out.printf("%n%n"); } static void zaehlerSetzen() {
System.out.println("Wie hoch soll der neue Zähler sein?");
page.setZaehler(s.nextInt());
s.nextLine();
}
public static void main(String[] args) { //Hauptprogamm
char c = 'q'; System.out.println("Was wird gewünscht?"); // Menue do { System.out.println("Ausgabe o, Eingabe i, Zähler setzen z, Ende q"); String antwort = s.nextLine(); antwort = antwort.toLowerCase(); // Groß- Kleinschreibung egal if (antwort.length() != 0) { c = antwort.charAt(0); switch (c) { case 'o': { anzeigen(); break; } case 'i': { editieren(); break; } case 'z' : { zaehlerSetzen(); break; } default: System.out.println("Eingabe falsch oder Ende!"); } } } while (c != 'q'); System.out.println("Programm Ende"); } } Ausgabe: Was wird gewünscht? Ausgabe o, Eingabe i, Zähler setzen z, Ende q o Entstehungsdatum: 1.5.08 Datum der Aktualisierung: 6.5.08 Mail: Die Seite ist klasse Zugriffszähler: 25 Zähler der Webseite erhöhen beim Lesen? (j/n) n Text der Web Seite: ZUM_Kopf Thema Zugriffszähler: 25 Ausgabe o, Eingabe i, Zähler setzen z, Ende q o Entstehungsdatum: 1.5.08 Datum der Aktualisierung: 6.5.08 Mail: Die Seite ist klasse Zugriffszähler: 25 Zähler der Webseite erhöhen beim Lesen? (j/n) j Text der Web Seite: ZUM_Kopf Thema Zugriffszähler: 26 Ausgabe o, Eingabe i, Zähler setzen z, Ende q i Bisheriger Text: ZUM_Kopf Thema Welcher Text soll angehängt werden? Thema2 Aktuelles Datum? 17.5.08 Ausgabe o, Eingabe i, Zähler setzen z, Ende q o Entstehungsdatum: 1.5.08 Datum der Aktualisierung: 17.5.08 Mail: Die Seite ist klasse Zugriffszähler: 26 Zähler der Webseite erhöhen beim Lesen? (j/n) j Text der Web Seite: ZUM_Kopf Thema Thema2 Zugriffszähler: 27 Ausgabe o, Eingabe i, Zähler setzen z, Ende q q Eingabe falsch oder Ende! Programm Ende |
Lösung zur Übung a) [Grundkonto; vgl.] package bank; public class Konto {
// beschreibt ein einfaches Grundkonto
protected double kontoStand;
protected int kontoNummer;
// Überladen der Konstruktoren public Konto(double betrag) { kontoStand = betrag; kontoNummer=4711; } // Falls bei der Erzeugung des Objektes (mit new) kein Parameter mitgeschickt wird, // wird trotzdem mit this auf den ersten Konstruktor zugegriffen und ein Parameter vorgegeben public Konto() { this(0); } public void einzahlen(double betrag) {
if (betrag >0)
// Kurzschreibweise für kontoStand = kontostand + betrag;
kontoStand += betrag;
else System.out.println("Betrag ungeeignet");
}
public void auszahlen(double betrag) {
// Kein Minus erlaubt!!!
if ((betrag >0) && (betrag <= getKontoStand()))
kontoStand -= betrag;
else System.out.println("Betrag nicht erlaubt");
}
public double getKontoStand() { return kontoStand; } public int getKontoNummer() { return kontoNummer; } } Überladen : Es können mehrere Konstruktoren angeboten werden, und der Compiler sucht sich den richtigen gemäß Parameterzahl aus. Ich finde es praktisch, zunächst den Konstruktor mit den meisten Parametern zu editieren und dann bei der Entwicklung der anderen Konstruktoren den ersten über this zu verwenden; vgl. u.a. Kurzschreibweise: statt i = i + 1 kürzer i += 1 Kontonummer: Da wir momentan immer nur mit einem Konto (also z.B. ohne Überweisungen ) arbeiten, erhalten alle 4 Konten die gleiche Stammnummer 4711. package bank; public class Testkonto { static Konto k =new Konto(); public static void main(String[] args) { anzeigen(); k.einzahlen(100); anzeigen(); k.auszahlen(92); anzeigen(); k.einzahlen(7.5); anzeigen(); k.auszahlen(16); anzeigen(); } public static void anzeigen() { System.out.printf("Auf dem Konto %d sind: %10.2f€%n",k.getKontoNummer(), k.getKontoStand()); } } Ausgabe:
Auf dem Konto 4711 sind: 0,00€
Auf dem Konto 4711 sind: 100,00€
Auf dem Konto 4711 sind: 8,00€
Auf dem Konto 4711 sind: 15,50€
Betrag nicht erlaubt
Auf dem Konto 4711 sind: 15,50€
Static: Da die Variablen und Methoden zu keinem Objekt gehören, sondern in der Klasse gebraucht werden, ist jeweils der Modifier static erforderlich vgl.u.a. Um richtig zu testen, ist ein Menue besser, aber das wird in den anderen Beispielen entwickelt. |
Lösung zur Übung b) [Girokonto mit Überziehungszinsen; vgl.] package bank; public class GiroKonto extends Konto {
protected double dispoKredit;
protected double dispoZins;
// Überladen der Konstruktoren
public GiroKonto(double betrag, double dispoKredit, double dispoZins) {
super(betrag);
this.dispoKredit = dispoKredit;
this.dispoZins = dispoZins;
} // Falls bei der Erzeugung des Objektes (mit new) kein Parameter mitgeschickt wird, // wird trotzdem mit this auf den ersten Konstruktor zugegriffen und 3 Parameter vorgegeben public GiroKonto() { this(0, 4000, 12); } // Überschreiben der Methode der Methode der Basisklasse public void auszahlen(double betrag) { if ((betrag >0) && (betrag <= getKontoStand() + getDispoKredit())) kontoStand -=betrag; else System.out.println("Betrag nicht erlaubt"); } public double berechneTageszinsen() { if (getKontoStand() >= 0) return 0; // Formel für Tageszinsen else return (double) -getKontoStand() * getDispoZins() / 100 / 365; } public double getDispoKredit() { return dispoKredit; } public double getDispoZins() { return dispoZins; } public void setDispoKredit(double dispoKredit) { this.dispoKredit = dispoKredit; } public void setDispoZins(double dispoZins) { if ((dispoZins>0)&&(dispoZins <100)) this.dispoZins = dispoZins; else System.out.println("Falscher Prozentsatz!"); } } Überladen: Das entsprechende Vorgehen wie im ersten Beispiel. Methoden: Neue sind dazu gekommen; die andern gelten weiter; nur die Methode auszahlen ist überschrieben worden (dabei wird die Signatur unverändert übernommen; der Methodenrumpf wird angepasst); vgl. auch. package bank; import java.util.Scanner; public class TestGiro { // static GiroKonto k =new GiroKonto(100,3000,10); static GiroKonto k = new GiroKonto(); public static void main(String[] args) { // Anzeigen der Startwerte des Kontos anzeigend(); anzeigen(); System.out.println("\nWas wird gewünscht?"); // Weitere Möglichkeit für neue Zeile \n (im String) int antwort; // Eingabeschleife für das Menue do { System.out .println("\nEinzahlen 1, Auszahlen 2, Kontostand 3, Dispozinsen berechnen und abziehen 4, Ende 0"); antwort = gibGanzeZahl(0, 4); menue(antwort); } while (antwort != 0); } public static void menue(int i) { switch (i) { case 1: { System.out.println("Wieviel € einzahlen?"); k.einzahlen(gibGleitZahl()); break; } case 2: { System.out.println("Wieviel € auszahlen?"); k.auszahlen(gibGleitZahl()); break; } case 3: { anzeigen(); break; } case 4: { if (k.getKontoStand() < 0) { System.out .printf("Seit wie viel Tagen sind Sie mit %6.2f€ im Soll?%n",k.getKontoStand()); int tage = gibGanzeZahl(0, 365); double zinsen = k.berechneTageszinsen() * tage; System.out.printf("An Zinsgebühren fallen an %6.2f€%n", zinsen); k.auszahlen(zinsen); System.out .printf("Neuer Kontostand %6.2f%n", k.getKontoStand()); } else System.out.println("Kein Minus!"); break; } default: break; } } public static void anzeigend() { System.out.printf( "Dipositionskredit ist: %10.2f€, Dispositionszins ist %6.2f%%%n", k.getDispoKredit(), k.getDispoZins()); } public static void anzeigen() { System.out.printf("Auf dem Konto %d sind: %10.2f€%n", k .getKontoNummer(), k.getKontoStand()); } public static int gibGanzeZahl(int unterGrenze, int oberGrenze) { // Liefert ganze Zahl von unterGrenze bis oberGrenze zurück Scanner s = new Scanner(System.in); // Wegen der Schleifenabbruchbedingung erhält i einen ganzzahligen Wert; // aber außerhab des erlaubten Bereiches int i = unterGrenze - 1; do { System.out.printf("Bitte eine " + "ganze Zahl eingeben von %d bis %d%n", unterGrenze, oberGrenze); if (s.hasNextInt()) i = s.nextInt(); else s.nextLine(); } while ((i < unterGrenze) || (i > oberGrenze)); return i; } public static double gibGleitZahl() { Scanner s = new Scanner(System.in); double zahl = 0; boolean ok = false; do { System.out.println("Bitte eine Zahl eingeben "); if (s.hasNextDouble()) { zahl = s.nextDouble(); ok = true; } else s.nextLine(); } while (!ok); return zahl; } } Menue: Wg. der Übersicht dafür eine eigene Methode. Zahlen einlesen: Da dies sehr häufig vorkommt, wird dies über zwei Methoden (Ganzzahl / Gleitzahl) modularisiert. Ausgabe:
Dipositionskredit ist: 4000,00€, Dispositionszins ist 12,00%
Auf dem Konto 4711 sind: 0,00€
Was wird gewünscht?
Einzahlen 1, Auszahlen 2, Kontostand 3, Dispozinsen berechnen und abziehen 4, Ende 0
Bitte eine ganze Zahl eingeben von 0 bis 4
1
Wieviel € einzahlen?
Bitte eine Zahl eingeben
1000
Einzahlen 1, Auszahlen 2, Kontostand 3, Dispozinsen berechnen und abziehen 4, Ende 0
Bitte eine ganze Zahl eingeben von 0 bis 4
2
Wieviel € auszahlen?
Bitte eine Zahl eingeben
3000
Einzahlen 1, Auszahlen 2, Kontostand 3, Dispozinsen berechnen und abziehen 4, Ende 0
Bitte eine ganze Zahl eingeben von 0 bis 4
4
Seit wie viel Tagen sind Sie mit -2000,00€ im Soll?
Bitte eine ganze Zahl eingeben von 0 bis 365
156
An Zinsgebühren fallen an 102,58€
Neuer Kontostand -2102,58
Einzahlen 1, Auszahlen 2, Kontostand 3, Dispozinsen berechnen und abziehen 4, Ende 0
Bitte eine ganze Zahl eingeben von 0 bis 4
2
Wieviel € auszahlen?
Bitte eine Zahl eingeben
1897
Einzahlen 1, Auszahlen 2, Kontostand 3, Dispozinsen berechnen und abziehen 4, Ende 0
Bitte eine ganze Zahl eingeben von 0 bis 4
4
Seit wie viel Tagen sind Sie mit -3999,58€ im Soll?
Bitte eine ganze Zahl eingeben von 0 bis 365
112
An Zinsgebühren fallen an 147,27€
Betrag nicht erlaubt
Neuer Kontostand -3999,58
D.h., wenn der Dispositionsrahmen ausgeschöft ist, müssen die Sollzinsen anderweitig beglichen werden...
|
Lösung zur Übung c) [Girokonto mit Überziehungs- und Guthabenzinsen; vgl.] package bank; public class GiroZins extends GiroKonto{
protected double zins;
public GiroZins() {
super();
zins =1;
}
public double berechneTageszinsenPlus() {
if (getKontoStand()<= 0) return 0;
// Formel für Tageszinsen
else return (double)getKontoStand()*getZins()/100/365;
}
public double getZins() {
return zins;
}
public void setZins(double zins) {
this.zins = zins;
}
}
Diese Klasse erbt von GiroKonto und damit auch von Konto; sie steuert weitere Attribute und Methoden bei; überschrieben wird nichts. Testumgebung zu c) package bank; import java.util.Scanner; public class TestGiroZins { static GiroZins k = new GiroZins(); public static void main(String[] args) { // Anzeigen der Startwerte des Kontos anzeigenz(); anzeigen(); System.out.println("\nWas wird gewünscht?"); // Weitere Möglichkeit für neue Zeile \n (im String) int antwort; // Eingabeschleife für das Menue do { System.out.printf("\n [1] Einzahlen " + "\n [2] Auszahlen " + "\n [3] Kontostand" + "\n [4] %5.2f%% Dispozinsen berechnen und abziehen" + "\n [5] %5.2f%% Guthabenzinsen berechnen und gutschreiben" + "\n [0] Ende ",k.getDispoZins(),k.getZins()); antwort = gibGanzeZahl(0, 5); menue(antwort); } while (antwort != 0); } public static void menue(int i) { switch (i) { case 1: { System.out.println("Wieviel € einzahlen?"); k.einzahlen(gibGleitZahl()); break; } case 2: { System.out.println("Wieviel € auszahlen?"); k.auszahlen(gibGleitZahl()); break; } case 3: { anzeigen(); break; } case 4: { if (k.getKontoStand() < 0) { System.out.printf( "Seit wie viel Tagen sind Sie mit %6.2f€ im Soll?%n", k .getKontoStand()); int tage = gibGanzeZahl(0, 365); double zinsen = k.berechneTageszinsen() * tage; System.out.printf("An Zinsgebühren fallen an %6.2f€%n", zinsen); k.auszahlen(zinsen); System.out .printf("Neuer Kontostand %6.2f%n", k.getKontoStand()); } else System.out.println("Kein Minus!"); break; } case 5: { if (k.getKontoStand() > 0) { System.out.printf( "Seit wie viel Tagen haben Sie das Guthaben %6.2f€?%n", k.getKontoStand()); int tage = gibGanzeZahl(0, 365); double zinsen = k.berechneTageszinsenPlus() * tage; System.out.printf("Als Zinsen erhalten Sie %6.2f€%n", zinsen); k.einzahlen(zinsen); System.out .printf("Neuer Kontostand %6.2f%n", k.getKontoStand()); } else System.out.println("Kein Guthaben!"); break; } default: break; } } public static void anzeigenz() { System.out .printf( "Dipositionskredit ist: %10.2f€, Dispositionszins ist %6.2f%%, Guthabenzins ist %6.2f%%%n", k.getDispoKredit(), k.getDispoZins(), k.getZins()); } public static void anzeigen() { System.out.printf("Auf dem Konto %d sind: %10.2f€%n", k .getKontoNummer(), k.getKontoStand()); } public static int gibGanzeZahl(int unterGrenze, int oberGrenze) { // Liefert ganze Zahl von unterGrenze bis oberGrenze zurück Scanner s = new Scanner(System.in); // Wegen der Schleifenabbruchbedingung erhält i einen ganzzahligen Wert; // aber // außerhab des erlaubten Bereiches int i = unterGrenze - 1; do { System.out.printf("Bitte eine " + "ganze Zahl eingeben von %d bis %d%n", unterGrenze, oberGrenze); if (s.hasNextInt()) i = s.nextInt(); else s.nextLine(); } while ((i < unterGrenze) || (i > oberGrenze)); return i; } public static double gibGleitZahl() { Scanner s = new Scanner(System.in); // Wegen der Schleifenabbruchbedingung erhält i einen ganzzahligen Wert; // aber // außerhab des erlaubten Bereiches double zahl = 0; boolean ok = false; do { System.out.println("Bitte eine Zahl eingeben "); if (s.hasNextDouble()) { zahl = s.nextDouble(); ok = true; } else s.nextLine(); } while (!ok); return zahl; } } Das Menue erleichtert das Testen. Ausgabe:
Dipositionskredit ist: 4000,00€, Dispositionszins ist 12,00%, Guthabenzins ist 0,50%
Auf dem Konto 4711 sind: 0,00€
Was wird gewünscht?
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 12,00% Dispozinsen berechnen und abziehen
[5] 0,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende Bitte eine ganze Zahl eingeben von 0 bis 5
1
Wieviel € einzahlen?
Bitte eine Zahl eingeben
1000
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 12,00% Dispozinsen berechnen und abziehen
[5] 0,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende Bitte eine ganze Zahl eingeben von 0 bis 5
5
Seit wie viel Tagen haben Sie das Guthaben 1000,00€?
Bitte eine ganze Zahl eingeben von 0 bis 365
142
Als Zinsen erhalten Sie 1,95€
Neuer Kontostand 1001,95
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 12,00% Dispozinsen berechnen und abziehen
[5] 0,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende Bitte eine ganze Zahl eingeben von 0 bis 5
2
Wieviel € auszahlen?
Bitte eine Zahl eingeben
2001,95
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 12,00% Dispozinsen berechnen und abziehen
[5] 0,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende Bitte eine ganze Zahl eingeben von 0 bis 5
4
Seit wie viel Tagen sind Sie mit -1000,00€ im Soll?
Bitte eine ganze Zahl eingeben von 0 bis 365
17
An Zinsgebühren fallen an 5,59€
Neuer Kontostand -1005,59
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 12,00% Dispozinsen berechnen und abziehen
[5] 0,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende Bitte eine ganze Zahl eingeben von 0 bis 5
5
Kein Guthaben!
|
Lösung zur Übung d) [Sparkonto; vgl.] package bank; public class SparKonto extends Konto {
private double zins;
public SparKonto(double betrag, double zins) { super(betrag); setZins(zins); } public SparKonto() { super(); zins = 1; } // Überschreiben der Methode der Methode der Basisklasse public void auszahlen(double betrag) { if (betrag > 2000) System.out.println("Höchstes 2000€ vom Sparbuch!"); else // Die Methode der Basisklasse wird verwendet super.auszahlen(betrag); // Das Konto darf nicht komplett geräumt werden if (getKontoStand() < 1){ System.out.printf("Der Kontostand wäre %6.2f€ und muss wenigstens 1€ sein%n",getKontoStand()); System.out.printf("%6.2f€ werden einbezahlt%n",1-getKontoStand()); einzahlen(1-getKontoStand());} } public double berechneTageszinsenPlus() {
if (getKontoStand() <= 0)
return 0;
// Formel für Tageszinsen
else
return (double) getKontoStand() * getZins() / 100 / 365;
}
public double getZins() { return zins; } public void setZins(double zins) { this.zins = zins; } } Überschreiben: Diese Klasse erbt direkt von Konto und steuert ebenfalls neue Attribute und Methoden bei; interessant ist, dass die Methode auszahlen zwar wieder überschrieben, aber trotzdem auch gebraucht wird... In einem solchen Fall greift man auf die Basisklasse mit super zu. Wegen der besonderen Bedingung "Kontostand mindestens 1€ ", hätte man hier auch auf super.auszahlen verzichten können... Mit der Abfrage : if ((betrag >0) && (betrag <= getKontoStand()-1)) hätte sich das Problem beim Übeschreiben eleganter lösen lassen. Hier sollte gezeigt werden, dass man Methoden überschreiben und gleichzeitig weiter nutzen kann... package bank; import java.util.Scanner; public class TestSpar { static SparKonto k = new SparKonto(100, 2.5); public static void main(String[] args) { // Anzeigen der Startwerte des Kontos anzeigenz(); anzeigen(); System.out.println("\nWas wird gewünscht?"); // Weitere Möglichkeit für neue Zeile \n (im String) int antwort; // Eingabeschleife für das Menue do { System.out.printf("\n [1] Einzahlen " + "\n [2] Auszahlen " + "\n [3] Kontostand" + "\n [4] %5.2f%% Guthabenzinsen berechnen und gutschreiben" + "\n [0] Ende ",k.getZins()); antwort = gibGanzeZahl(0, 4); menue(antwort); } while (antwort != 0); } public static void menue(int i) { switch (i) { case 1: { System.out.println("Wieviel € einzahlen?"); k.einzahlen(gibGleitZahl()); break; } case 2: { System.out.println("Wieviel € auszahlen?"); k.auszahlen(gibGleitZahl()); break; } case 3: { anzeigen(); break; } case 4: { if (k.getKontoStand() > 0) { System.out.printf( "Seit wie viel Tagen haben Sie das Guthaben %6.2f€?%n", k.getKontoStand()); int tage = gibGanzeZahl(0, 365); double zinsen = k.berechneTageszinsenPlus() * tage; System.out.printf("Als Zinsen erhalten Sie %6.2f€%n", zinsen); k.einzahlen(zinsen); System.out .printf("Neuer Kontostand %6.2f%n", k.getKontoStand()); } else System.out.println("Kein Guthaben!"); break; } default: break; } } public static void anzeigenz() { System.out.printf("Guthabenzins ist %6.2f%%%n", k.getZins()); } public static void anzeigen() { System.out.printf("Auf dem Konto %d sind: %10.2f€%n", k .getKontoNummer(), k.getKontoStand()); } public static int gibGanzeZahl(int unterGrenze, int oberGrenze) { // Liefert ganze Zahl von unterGrenze bis oberGrenze zurück Scanner s = new Scanner(System.in); // Wegen der Schleifenabbruchbedingung erhält i einen ganzzahligen Wert; // aber // außerhab des erlaubten Bereiches int i = unterGrenze - 1; do { System.out.printf("Bitte eine " + "ganze Zahl eingeben von %d bis %d%n", unterGrenze, oberGrenze); if (s.hasNextInt()) i = s.nextInt(); else s.nextLine(); } while ((i < unterGrenze) || (i > oberGrenze)); return i; } public static double gibGleitZahl() { Scanner s = new Scanner(System.in); // Wegen der Schleifenabbruchbedingung erhält i einen ganzzahligen Wert; // aber // außerhab des erlaubten Bereiches double zahl = 0; boolean ok = false; do { System.out.println("Bitte eine Zahl eingeben "); if (s.hasNextDouble()) { zahl = s.nextDouble(); ok = true; } else s.nextLine(); } while (!ok); return zahl; } } Ausgabe:
Guthabenzins ist 2,50%
Auf dem Konto 4711 sind: 100,00€
Was wird gewünscht?
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 2,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende
Bitte eine ganze Zahl eingeben von 0 bis 4
1
Wieviel € einzahlen?
Bitte eine Zahl eingeben
2900
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 2,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende
Bitte eine ganze Zahl eingeben von 0 bis 4
4
Seit wie viel Tagen haben Sie das Guthaben 3000,00€?
Bitte eine ganze Zahl eingeben von 0 bis 365
79
Als Zinsen erhalten Sie 16,23€
Neuer Kontostand 3016,23
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 2,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende
Bitte eine ganze Zahl eingeben von 0 bis 4
2
Wieviel € auszahlen?
Bitte eine Zahl eingeben
3000
Höchstens 2000€ vom Sparbuch!
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 2,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende
Bitte eine ganze Zahl eingeben von 0 bis 4
2
Wieviel € auszahlen?
Bitte eine Zahl eingeben
2000
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 2,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende
Bitte eine ganze Zahl eingeben von 0 bis 4
2
Wieviel € auszahlen?
Bitte eine Zahl eingeben
1020
Betrag nicht erlaubt
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 2,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende
Bitte eine ganze Zahl eingeben von 0 bis 4
3
Auf dem Konto 4711 sind: 1016,23€
[1] Einzahlen
[2] Auszahlen
[3] Kontostand
[4] 2,50% Guthabenzinsen berechnen und gutschreiben
[0] Ende
Bitte eine ganze Zahl eingeben von 0 bis 4
2
Wieviel € auszahlen?
Bitte eine Zahl eingeben
1016,23
Der Kontostand wäre 0,00€ und muss wenigstens 1€ sein
1,00€ werden einbezahlt
Da die Methode Auszahlen der Basisklasse das Räumen des Kontos bis auf 0€ erlaubt, muss in der Klasse Sparkonto nachgebessert und der Kontostand wenigstens auf 1€ gebracht werden; vgl. oben. |
![]() |
Startseite Informatik-Rheinland-Pfalz |