PROGRAMM-ID. AUSZAHLEN.CO. COMMENTS. EIN BETRAG WIRD AUS EINEM KONTO ABGEHOBEN. AUTOR. HARUN EVEYIK. FILE-CONTROL. SELECT KONTEN, ASSIGN TO DSK ACCESS MODE IS RANDOM ACTUAL KEY IS SATZNR. DATA-DIVISION. FILE-CONTROL SECTION. FD KONTEN. 01 BILD. 02 NUMMER PIC 9(3). 02 NAME PIC X(25). 02 STRASSE PIC X(25). 02 WOHNORT PIC X(25). 02 GEBOREN PIC X(10). 02 MAXIMALKREDIT PIC S9(7)V99. 02 ALTSTAND PIC S9(7)V99. 02 DATUM PIC X(10). 02 BEWART PIC X(30). 02 BEWEGUNG PIC S9(7)V99. 02 NEUSTAND PIC S9(7)V99. 02 ZINSSPEICHER PIC S9(7)V99. 02 SCHECKNUMMER PIC 9(3). 02 AUSZUGSNUMMER PIC 9(3). WORKING-STORAGE SECTION. 01 REST PIC S9(7)V99. 01 SATZNR PIC 9(3). 01 KONTO-VORHANDEN PIC 9. 01 KREDIT PIC S9(7)V99. 01 ANTWORT PIC X. 01 E-NEUSTAND PIC ------9.99. 01 BETRAG PIC 9(7)V99. 01 KONTONUMMER PIC 9(3). PROCEDURE DIVISION. DISPLAY "SIE WOLLEN GELD VON EINEM KONTO ABHEBEN." DISPLAY "DAZU GEBEN SIE BITTE DIE KONTONUMMER EIN .". DISPLAY "WENN SIE ABGEHOBEN HABEN GEBEN SIE EINE 1 EIN.". PERFORM KONTO-OEFFNEN. PERFORM GELD-AUSGABE. PERFORM P-ENDE. GELD-AUSGABE. PERFORM PRUEFEN. IF KONTO-VORHANDEN = 0 THEN PERFORM FEHLER, GO TO GELD-AUSGABE ELSE PERFORM AUSGABE. DISPLAY "WIEVIEL WOLLEN SIE ABHEBEN ?". ACCEPT BETRAG. IF BETRAG > NEUSTAND AND BETRAG > 0 THEN PERFORM KREDIT-NEHMEN. PERFORM AUSZAHLEN. GO TO GELD-AUSGABE. AUSZAHLEN. MOVE NEUSTAND TO ALTSTAND. SUBTRACT BETRAG FROM NEUSTAND GIVING NEUSTAND. WRITE BILD. PERFORM AUSGABE. KONTO-OEFFNEN. OPEN I-O KONTEN. PRUEFEN. DISPLAY "KONTONUMMER :". ACCEPT KONTONUMMER. MOVE 1 TO KONTO-VORHANDEN. IF KONTONUMMER = 1 THEN PERFORM P-ENDE. SUBTRACT 99 FROM KONTONUMMER GIVING SATZNR. IF SATZNR < 1 THEN MOVE 0 TO KONTO-VORHANDEN. IF SATZNR > 0 THEN READ KONTEN, INVALID KEY MOVE 0 TO KONTO-VORHANDEN, IF NAME = "" THEN MOVE 0 TO KONTO-VORHANDEN. AUSGABE. DISPLAY NAME. DISPLAY STRASSE. DISPLAY WOHNORT. DISPLAY GEBOREN. DISPLAY "KONTOSTAND :". MOVE NEUSTAND TO E-NEUSTAND. DISPLAY E-NEUSTAND. DISPLAY. KREDIT-NEHMEN. DISPLAY "SIE HABEN NUR ". MOVE NEUSTAND TO E-NEUSTAND. DISPLAY E-NEUSTAND. DISPLAY " DM. AUF IHREM KONTO. ". IF NEUSTAND < 0 THEN MOVE BETRAG TO KREDIT ELSE SUBTRACT NEUSTAND FROM BETRAG GIVING KREDIT. DISPLAY "WOLLEN SIE ". MOVE KREDIT TO E-NEUSTAND. DISPLAY E-NEUSTAND. DISPLAY "DM. KREDIT AUFNEHMEN ?". ACCEPT ANTWORT. IF ANTWORT = "N" AND NEUSTAND < 0 THEN MOVE 0 TO BETRAG. IF ANTWORT = "N" AND NEUSTAND > 0 THEN MOVE NEUSTAND TO BETRAG ELSE SUBTRACT KREDIT FROM MAXIMALKREDIT GIVING REST, ADD NEUSTAND TO REST, IF REST < 0 THEN PERFORM KREDIT-ZUGROSS. KREDIT-ZUGROSS. DISPLAY "SIE KOENNEN NUR ". MOVE MAXIMALKREDIT TO E-NEUSTAND. DISPLAY E-NEUSTAND. DISPLAY "DM. ALS KREDIT AUFNEHMEN .". DISPLAY "WOLLEN SIE ". IF NEUSTAND < 1 THEN MOVE NEUSTAND TO KREDIT, ADD MAXIMALKREDIT TO KREDIT. IF KREDIT < 0 THEN MOVE 0 TO KREDIT. MOVE KREDIT TO E-NEUSTAND. DISPLAY E-NEUSTAND. DISPLAY "DM. KREDIT AUFNEHMEN ?". ACCEPT ANTWORT. MOVE 0 TO BETRAG. IF ANTWORT = "J" THEN MOVE KREDIT TO BETRAG. IF NEUSTAND > 0 AND ANTWORT = "N" THEN MOVE NEUSTAND TO BETRAG. IF NEUSTAND < 0 AND ANTWORT = "N" THEN GO TO GELD-AUSGABE. SCHLIESSEN. CLOSE KONTEN. CALL GELHAU. FEHLER. DISPLAY "DIESE KONTONUMMER IST NICHT VORHANDEN!". P-ENDE. DISPLAY "AUSZAHLEN BEENDET !". PERFORM SCHLIESSEN.