Hallo erstmal!
Habe ein kleines Kontoprogramm geschrieben.
Das Speichern in die Datei klappt schon, nun möchte ich, dass ich zu Beginn des Programms auf den Inhalt der Datei zugreifen und ihn verwenden kann.
Außerdem wäre es nett, wenn sich jemand mal den Code anschaut, ob Fehler, oder Verbesserungen vorhanden sind.
Der Compiler zeigt bis auf Rückgabewertfehler bei scanf und getch keine Fehler.
main.c
konto.h
Schonmal vielen Dank für eure Hilfe!
Habe ein kleines Kontoprogramm geschrieben.
Das Speichern in die Datei klappt schon, nun möchte ich, dass ich zu Beginn des Programms auf den Inhalt der Datei zugreifen und ihn verwenden kann.
Außerdem wäre es nett, wenn sich jemand mal den Code anschaut, ob Fehler, oder Verbesserungen vorhanden sind.
Der Compiler zeigt bis auf Rückgabewertfehler bei scanf und getch keine Fehler.
main.c
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "konto.h"
#include <conio.h>
int main(void)
{
int auswahl = 0;
int IDZaehler = 100;
int kontoID = 0;
int kontoID2 = 0;
double betrag = 0;
do
{
printf("-----------------------------------KONTOFUEHRUNG--------------------------------\n");
printf("Herzlich Willkommen \n");
printf("------------------- \n\n");
printf("1) Konto erstellen\n");
printf("2) Konto anzeigen\n");
printf("3) Konto loeschen\n");
printf("4) Ueberweisung\n");
printf("5) Speichern\n");
printf("0) Beenden\n\n");
printf("------------------- \n");
printf("Auswahl: ");
scanf("%d", &auswahl);
fflush(stdin);
switch(auswahl)
{
case 0:
exit(1);
case 1:
erstelle_konto(IDZaehler);
IDZaehler++;
break;
case 2:
printf("Geben sie die Kontonummer ein: ");
scanf("%d", &kontoID);
fflush(stdin);
zeige_konto(kontoID);
break;
case 3:
printf("Geben sie die Kontonummer ein: ");
scanf("%d", &kontoID);
fflush(stdin);
loesche_konto(kontoID);
break;
case 4:
printf("Geben sie die Kontonummer ein, von der abgebucht werden soll: ");
scanf("%d", &kontoID);
fflush(stdin);
printf("Geben sie die Kontonummer ein, an die ueberwiesen werden soll: ");
scanf("%d", &kontoID2);
fflush(stdin);
printf("Geben sie den Betrag ein, der ueberwiesen werden soll: ");
scanf("%lf", &betrag);
fflush(stdin);
ueberweisung(kontoID, kontoID2, betrag);
break;
case 5:
printf("Geben sie die Kontonummer ein: ");
scanf("%d", &kontoID);
fflush(stdin);
speichere_konto(kontoID);
break;
default:
break;
}
printf("Druecken Sie eine beliebige Taste um vorzufahren");
getch();
system("cls");
}
while(auswahl);
return 1;
}
int erstelle_konto(int ID)
{
printf("\n\nVorname: ");
scanf("%s", konten[ID].vorname);
fflush(stdin);
printf("Nachname: ");
scanf("%s", konten[ID].nachname);
fflush(stdin);
printf("Kontostand: ");
scanf("%lf", &konten[ID].kontostand);
fflush(stdin);
printf("Kontonummer: %d\n", ID);
konten[ID].kontonummer = ID;
printf("Konto wurde erstellt!\n\n\n");
return 0;
}
void loesche_konto(int ID) //man kann nichtvorhandene konten löschen
{
if((strlen(konten[ID].vorname) == 0 ) || ( strlen(konten[ID].nachname) == 0))
{
printf("\n\nDieses Konto existiert nicht!\n\n\n");
}
else
{
strcpy(konten[ID].vorname, "");
strcpy(konten[ID].nachname, "");
konten[ID].kontostand = 0;
printf("Konto wurde geloescht\n");
}
}
void zeige_konto(int ID)
{
if((strlen(konten[ID].vorname) == 0 ) || ( strlen(konten[ID].nachname) == 0))
{
printf("\n\nDieses Konto existiert nicht!\n\n\n");
}
else
{
printf("\n\nVorname: %s\n", konten[ID].vorname);
printf("Nachname: %s\n", konten[ID].nachname);
printf("Kontostand: %.2lf\n", konten[ID].kontostand);
printf("Kontonummer: %d\n\n\n", konten[ID].kontonummer);
}
}
void speichere_konto(int ID)
{
if((strlen(konten[ID].vorname) == 0 ) || ( strlen(konten[ID].nachname) == 0))
{
printf("\n\nDieses Konto existiert nicht!\n\n\n");
}
else
{
FILE *datei;
datei = fopen("Konten.txt", "a+");
if(datei == NULL)
{
printf("\nFEHLER BEIM SPEICHERN");
return;
}
else
{
fprintf(datei, "Kontonummer: %d\nVorname: %s\nNachname: %s\nKontostand: %.2f\n\n", konten[ID].kontonummer, konten[ID].vorname, konten[ID].nachname, konten[ID].kontostand);
}
fclose(datei);
printf("Konto wurde gespeichert!\n\n\n");
}
}
void ueberweisung(int vonID, int zuID, double betrag)
{
if((konten[vonID].kontostand - betrag) < 0)
{
printf("\n\nNicht genug Guthaben!\n\n\n");
}
else
{
konten[vonID].kontostand = konten[vonID].kontostand - betrag;
konten[zuID].kontostand = konten[zuID].kontostand + betrag;
printf("\n\nUeberweisung erfolgreich!\n\n");
}
}
Code:
struct konto
{
char vorname[20];
char nachname[20];
double kontostand;
int kontonummer;
}
konten[1000];
typedef struct konto konto;
int erstelle_konto(int);
void loesche_konto(int);
void zeige_konto(int);
void speichere_konto(int);
void ueberweisung(int, int, double);
Schonmal vielen Dank für eure Hilfe!