FIAE – Grundlagen der Programmierung – Mehrdimensionale Arrays – Kontoverwaltung V2

# include <stdio.h>
# include <stdlib.h>

double kontenArray[100][2];
int anzahlKonten = 0;
int alleKonten = 0;
int auswahl = 0, i = 0;

int zeigeMenue( void )
{
        int option;

        printf("\n\n\n\t\t*** Kontenverwaltung ***");
        printf("\n\n\t\t1) Neues Konto anlegen\n");
        printf("\t\t2) Angelegte Konten anzeigen lassen (%d Stueck bisher)\n", alleKonten);
        printf("\t\t3) Geld auf Konto einzahlen\n");
        printf("\t\t4) Geld von Konto abheben\n");
        printf("\t\t5) Zinsen gutschreiben\n");
        printf("\t\t6) Einzelverzinsung gutschreiben\n");
        printf("\n\t\t99) Kontenverwaltung verlassen - Programmabbruch!");
        printf("\n\n\t\tBitte waehlen Sie eine Option:\n\t\t--> ");
        scanf("%d", &option);
        fflush( stdin );

        return option;
}

void neueKontenAnlegen( void )
{
        double kontonummer, kontostand;
        int zeile;

        system("cls");
        printf("\n\n\t\t*** Neues Konto anlegen ***");

        printf("\n\t\tGeben Sie mir die Kontonummer:\n\t\t--> ");
        scanf("%lf", &kontonummer);
        fflush( stdin );

        printf("\n\t\tGeben Sie mir den aktuellen Kontostand:\n\t\t--> ");
        scanf("%lf", &kontostand);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if(kontonummer == kontenArray[zeile][0])
                {
                        printf("\n\t\tDieses Konto ist bereits vorhanden!");
                        printf("\n\t\tGeben Sie mir die richtige Kontonummer:\n\t\t--> ");
                        scanf("%lf", &kontonummer);
                        fflush( stdin );
                }
        }

        kontenArray[alleKonten][0] = kontonummer;
        kontenArray[alleKonten][1] = kontostand;

        alleKonten++;
        printf("\n\n\t\tFertig!\n\n");
}

void zeigeAlleKonten( void )
{
        int zeile;

        system("cls");
        printf("\n\n\t\t*** Alle Konten anzeigen ***");

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                printf("\n\t\tKontonummer %.0lf mit aktuellem Kontostand von %.2lf EUR", kontenArray[zeile][0], kontenArray[zeile][1]);
        }

        printf("\n\n\t\tFertig!\n");
}

void einzahlung( void )
{
        double kontonummer, einzahlungsbetrag = .0;
        int zeile, error = 1;

        system("cls");
        printf("\n\n\t\t*** Einzahlung - Bitte Konto auswaehlen ***");

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                printf("\n\t\t%d) Kontonummer %.0lf mit aktuellem Kontostand von %.2lf EUR", zeile, kontenArray[zeile][0], kontenArray[zeile][1]);
        }

        printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Einzahlung:\n\t\t--> ");
        scanf("%lf", &kontonummer);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        error = 0;
                }
        }

        if(error != 0)
        {
                printf("\n\n\t\tDie Kontonummer ist unbekannt!");
                printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Einzahlung:\n\t\t--> ");
                scanf("%lf", &kontonummer);
                fflush( stdin );
        }

        printf("\n\n\t\tGeben Sie mir die Summe der Einzahlung:\n\t\t--> ");
        scanf("%lf", &einzahlungsbetrag);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        kontenArray[zeile][1] = (kontenArray[zeile][1] + einzahlungsbetrag);
                        error = 0;
                }
        }

        if(error != 0)
        {
                printf("\n\n\t\tDie Kontonummer ist immer noch unbekannt!");
                printf("\n\n\t\tEinzahlung konnte nicht gebucht werden!");
        }

        printf("\n\n\t\tFertig!\n");
}

void abhebung( void )
{
        double kontonummer, einzahlungsbetrag = .0;
        int zeile, error = 1;

        system("cls");
        printf("\n\n\t\t*** Abhebung - Bitte Konto auswaehlen ***");

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                printf("\n\t\t%d) Kontonummer %.0lf mit aktuellem Kontostand von %.2lf EUR", zeile, kontenArray[zeile][0], kontenArray[zeile][1]);
        }

        printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Abhebung:\n\t\t--> ");
        scanf("%lf", &kontonummer);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        error = 0;
                }
        }

        if(error != 0)
        {
                printf("\n\n\t\tDie Kontonummer ist unbekannt!");
                printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Abhebung:\n\t\t--> ");
                scanf("%lf", &kontonummer);
                fflush( stdin );
        }

        printf("\n\n\t\tGeben Sie mir die Summe der Abhebung:\n\t\t--> ");
        scanf("%lf", &einzahlungsbetrag);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        kontenArray[zeile][1] = ( kontenArray[zeile][1] - einzahlungsbetrag );
                        error = 0;
                }
        }

        if(error != 0)
        {
                printf("\n\n\t\tDie Kontonummer ist unbekannt!");
                printf("\n\n\t\tAbbuchung konnte nicht gebucht werden!");
        }

        printf("\n\n\t\tFertig!\n");
}

void verzinsen( void )
{
        int zeile;
        double verzinsung = .0;

        system("cls");
        printf("\n\n\t\t*** Verzinsung ***");

        printf("\n\n\t\tGeben Sie mir die Zinsen in Prozent:\n\t\t--> ");
        scanf("%lf", &verzinsung);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                kontenArray[zeile][1] = kontenArray[zeile][1] + ( kontenArray[zeile][1] / 100 * verzinsung );
        }

        printf("\n\n\t\tFertig!\n");
}

void einzelverzinsung( void )
{
        int zeile, error = 1;
        double kontonummer, verzinsung = .0;

        system("cls");
        printf("\n\n\t\t*** Verzinsung ***");

        printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Einzelverzinsung:\n\t\t--> ");
        scanf("%lf", &kontonummer);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        error = 0;
                }
        }

        if(error != 0)
        {
                printf("\n\n\t\tDie Kontonummer ist unbekannt!");
                printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Einzelverzinsung:\n\t\t--> ");
                scanf("%lf", &kontonummer);
                fflush( stdin );
        }

        printf("\n\n\t\tGeben Sie mir die Zinsen in Prozent:\n\t\t--> ");
        scanf("%lf", &verzinsung);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        kontenArray[zeile][1] = kontenArray[zeile][1] + ( kontenArray[zeile][1] / 100 * verzinsung );
                        error = 0;
                }
        }

        printf("\n\n\t\tFertig!\n");
}

int main( void )
{
        system("cls");

        while( auswahl != 99 )
        {
                auswahl = zeigeMenue();

                if( auswahl == 1 )
                {
                        neueKontenAnlegen();
                }
                else if( auswahl == 2 )
                {
                        zeigeAlleKonten();
                }
                else if( auswahl == 3 )
                {
                        einzahlung();
                }
                else if( auswahl == 4 )
                {
                        abhebung();
                }
                else if( auswahl == 5 )
                {
                        verzinsen();
                }
                else if( auswahl == 6 )
                {
                        einzelverzinsung();
                }
        }

        printf("\n\n\t\tSie haben die Kontenverwaltung auf eigenen Wunsch verlassen!\n\n");

        return EXIT_SUCCESS;
}
   •