Zum Inhalt springen

Suche Hilfe für C Programmierung Konto


musti

Empfohlene Beiträge

Hallo Informatiker,

ich habe ein kleines Problem. Ich habe ein Programm geschrieben, wobei man ein Guthaben- und Darlehenkonto anlegen kann. Und diese Berechnet werden. Man kann auch die Anfangs-Konto-Stände in eine Datei schreiben und auslesen.

Mir fehlt aber, das man den Namen des Kontoinhabers eingeben kann.

Wie könnte ich dies am besten lösen?

Der Name soll in einem eigenen Array vorbesetzt werden und alle Ausgaben aus dem Hauptprogramm, die ein Konto betreffe, sollen auch den Namen des Inhabers haben.

#include <stdio.h>

#include <stdlib.h>

#include <ctype.h>


#define KONTANZ 10

#define BANKNR 10000

#define DARLEHENSZINS 0.05

#define GUTHABENZINS 0.03


struct Konto

{

    char *namptr;                   /*Name des Besitzers */

    unsigned int kontoNr;           /*Kontonummer*/

    char artDktos;                  /*Art des kontos*/

    float kontoStd;                 /*Kontostand*/

    float zinsSz;                   /*Zinssatz*/

    unsigned int laufZt;            /*Laufzeit*/

    float annuitaet;                /*Annuität*/

};


// Globale Variablen //

struct Konto Konten[10];

int f=0;

char eingabe;

FILE *speicher;



// Funktions Prototypen //

int KontoAnlegen(void);

int getKontoByNr(int KontoNr);

int BerechneGutKonto(int);

int BerechneDaKonto(int);

void SchreibeDatei(int Kontonummer);

void oeffneDatei(char dateiname[]);


//----------------------------------------------------------------------------//


int main(int argc, char *argv[])

{

    int i;

    int zahl;

    int anfang = 1;

    int berechnung;

    float berechne;

    int nBerechnung;


    printf("\n\t Struktur Kontodaten,");  

    printf("\n\tvon xyz\n");

    printf("\tuebersetzt am %s", __DATE__);

    printf("\tum %s Uhr", __TIME__);

    printf("\n\n");


    /* Führt den Vorgang solange aus bis Exit gedrückt wurde */

    while(anfang !=0)

    {

    printf("\t(1) Konto anlegen (2) Konto berechnen (3) Exit \n\t "

    "(4) Konto in Datei schreiben (5) Konto aus Datei auslesen");

    scanf("%i",&zahl);


        if(zahl == 1)

        {

            int Ergebnis;


            do

            {

               Ergebnis = KontoAnlegen();


               switch(Ergebnis)

               {

                   case 0:

                       printf("\tGuthabenkonto wurde erfolgreich angelegt.\n\n");                                   

                   break;


                   case 1:

                       printf("\tDarlehenskonto wurde erfolgreich angelegt.\n\n");

                   break;


                   case 2:

                       printf("\tFehler beim erstellen des Kontos. \n \t"

                                "Bitte ueberpruefen sie ihre Eingabe\n\n");

                   break;

               }

            }

            while(Ergebnis == 2);

        }

        else if (zahl == 2)

        {

            printf("\tBitte kontoNr eingeben: ");

            scanf("%i",&berechnung);


            nBerechnung = BerechneGutKonto(berechnung);

            nBerechnung = BerechneDaKonto(berechnung);


            switch(nBerechnung)

            {

                case 0:

                    printf("\n\t Guthabenkonto erfolgreich berechnet.\n\n");

                break;


                case 1:

                    printf("\n\t Darlehen erfolgreich berechnet.\n\n");

                break;


                case 2:   

                    printf("\n\t Unendliche Wiederholzahlen\n\n");  

                break;


                default:

                    printf("\n\t Unbekannter Fehler\n\n");

                break;     

            }

        } 

        else if(zahl == 3)

        {

            anfang = 0;

        }

        else if(zahl ==4)

        {

            printf("\tBitte kontoNr eingeben: ");

            scanf("%i", &berechnung);

            SchreibeDatei(berechnung);

        }

        else if(zahl == 5)

        { 

            char dateiname[100];

            printf("Bitte geben Sie einen Dateinamen an ");

            scanf("%s",&dateiname);

            oeffneDatei(dateiname);

        }

        else 

        {

            printf("\tFalsche Eingabe, bitte wiederholen sie die Eingabe richtig.\n");           

        }//Ende Auswahl Prüfung

    } //while


    system("PAUSE");	

    return 0;

}


//----------------------------------------------------------------------------//


int BerechneGutKonto(int KontoNummer)

{

    // Ermittelt das Konto zur KontoNummer

    struct Konto AktKonto = Konten[getKontoByNr(KontoNummer)];


    printf("\n");


    /* Berechnung für Guthabenkonto */

    if(AktKonto.artDktos == 'g')

    {

        int i;  	/* Index */


        for(i = 1; i <= AktKonto.laufZt; i++)

        {

            AktKonto.kontoStd = AktKonto.kontoStd*(1+AktKonto.zinsSz); 

            printf("\t Zwischen-Ergebnis zinsSchl = %f\n", AktKonto.kontoStd);

        }


        printf("\n\t Endkontostandt %f",AktKonto.kontoStd);

        return 0;

    }

}// int BerechneGutKonto(int KontoNummer) 


//----------------------------------------------------------------------------//     


int BerechneDaKonto(int KontoNummer)

{

    // Ermittelt das Konto zur KontoNummer

    struct Konto AktKonto = Konten[getKontoByNr(KontoNummer)];


    printf("\n");         


    // Berechnung für Darlehenskonto //

    if(AktKonto.artDktos == 'd')

    { 

        // Fehlerbehandlung von Endlosschleifen //

        if(AktKonto.kontoStd*(AktKonto.zinsSz + 0.01) >= AktKonto.annuitaet)

        {

            return 2;

        } 

        if(AktKonto.kontoStd*(AktKonto.zinsSz + 0.01) <= AktKonto.annuitaet)

        {                              

            float i;                   /* zaehlt Jahre */

            float zinsBez = 0;         /* bis dahin bezahlten Zinsen */


            for(i=1;AktKonto.kontoStd >= AktKonto.annuitaet;i++)

            {

                zinsBez = zinsBez + AktKonto.kontoStd * AktKonto.zinsSz;

                AktKonto.kontoStd = AktKonto.kontoStd * (1 + AktKonto.zinsSz) - AktKonto.annuitaet;

               	printf("\n\t ZwischenErg: Restdarlehen = %.2f, bez.Zinsen gesamt = %.2f", 

                AktKonto.kontoStd,zinsBez); 

            }

            printf("\n\t Tilgung im %.1f ten Jahr\n",i);

            return 1;               

        }

        else

        {

             return 3;

        }

    }


} // int BerechneDaKonto(int KontoNummer)


// --------------------------------------------------------------------------- //      


// Ermittelt Konto mithilfe der KontoNummer //

int getKontoByNr(int KontoNr)

{

    int i;


    //Durchläuft alle Konten bis die Kontonummer gefunden wurde //

    for(i=0; i < sizeof(Konten); i++)

    {

        if(KontoNr == Konten[i].kontoNr)

        {

            return i;     // Gibt dann Konten Index aus //

        }

    }

} // Ende int getKontoByNr(int KontoNr)


// -------------------------------------------------------------------------- //


// Funktion zum Anlegen der Konten.Gibt je nach Status eine Prüfziffer wieder //

int KontoAnlegen(void)

{      

    printf("\n\tKontoart g fuer Guthaben, d fuer Darlehen = "); 

    scanf("%s",&eingabe);


    int NameIndex;

    char Name[25];


    switch(eingabe)

    { 

        // Bei Wahl eines Guthabenkontos //

        case 'g':

            Konten[f].artDktos ='g';     

            printf("\n\t\tKontonummer = "); 

            scanf("%i",&Konten[f].kontoNr);                 

            printf("\n\t\tKontostand = ");

            scanf("%f",&Konten[f].kontoStd);   

            Konten[f].zinsSz= GUTHABENZINS;   

            printf("\n\t\tLaufzeit= ");

            scanf("%i",&Konten[f].laufZt);       

            Konten[f].annuitaet=0;


            f++;

            printf("\n\n");

            return 0;

            break;


        // Bei Wahl eines Darlehenkontos //

        case 'd':

            Konten[f].artDktos='d';

            printf("\n\t\tKontonummer = "); 

            scanf("%i",&Konten[f].kontoNr);                 

            printf("\n\t\tKontostand = ");

            scanf("%f",&Konten[f].kontoStd);   

            Konten[f].zinsSz=DARLEHENSZINS;   

            Konten[f].laufZt=0;       

            printf("\n\t\tAnnuitaet  = ");  

            scanf("%f",&Konten[f].annuitaet); 


            f++; 

            printf("\n\n");

            return 1;

            break;


            // Bei sonstigen Eingaben //

            default:

                return 2;

                break;                                                             

    }

} // Ende int KontoAnlegen(void)


//----------------------------------------------------------------------------//


//Funktion zum schreiben von Kontaktdaten in eine Datei //

void SchreibeDatei(int Kontonummer)

{

    struct Konto AktKonto = Konten[getKontoByNr(Kontonummer)];

    speicher = fopen("Kontodaten.txt","a");


    system("cls");


    if(AktKonto.artDktos == 'g')

    {

        fprintf(speicher, "Kontonummer:\t%i\n",  AktKonto.kontoNr);

        fprintf(speicher, "Kontostand:\t%.2f\n",  AktKonto.kontoStd);

        fprintf(speicher, "KontoArt:\t%c\n",  AktKonto.artDktos);

        fprintf(speicher, "Zinsen:\t%.2f\n",  AktKonto.zinsSz);

        fprintf(speicher, "Laufzeit:\t%i\n",  AktKonto.laufZt);

        fclose(speicher); 

    }

    else if(AktKonto.artDktos == 'd')

    {

        fprintf(speicher, "Kontonummer:\t%i\n",  AktKonto.kontoNr);

        fprintf(speicher, "Kontostand:\t%.2f\n",  AktKonto.kontoStd);

        fprintf(speicher, "KontoArt:%c\n",  AktKonto.artDktos);

        fprintf(speicher, "Zinsen:\t%.2f\n",  AktKonto.zinsSz);

        fprintf(speicher, "Annuität:\t%i\n",  AktKonto.annuitaet);

        fclose(speicher);

    }

} 


//---------------------------------------------------------------------------//


//Öffnet eine Datei und gibt sie am Bildschrim wieder//

void oeffneDatei(char dateiname[])

{

    FILE *stream;


    if((stream = fopen(dateiname,"r")) == NULL)

    {

        printf("Fehler beim oeffnen");

        exit(1);

    }


    int ch;

    ch = fgetc(stream);


    while(!feof(stream))

    {

        putchar(ch);

        ch = fgetc(stream);

    }

    fclose(stream);

}  

Ich wäre auf eure Hilfe sehr Dankbar.

Mir geht es jetzt nur noch darum, das man den Namen des Kontoinhabers eingeben kann.

LG Musti

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...