004
19.01.2014, 19:44 Uhr
~PepTic
Gast
|
Hab den Code nochmal überarbeitet:
Code: |
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "konto.h" #include <conio.h> int main() { int auswahl; int IDZaehler = 100; int kontoID; int kontoID2; double guthaben; 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("0) Beenden\n\n"); printf("------------------- \n"); printf("Auswahl: "); scanf("%i", &auswahl); switch(auswahl) { case 0: speichere_konto(kontoID); return 0; break; case 1: erstelle_konto(IDZaehler); IDZaehler++; break; case 2: printf("Geben sie die Kontonummer ein: "); scanf("%d", &kontoID); zeige_konto(kontoID); break; case 3: printf("Geben sie die Kontonummer ein: "); scanf("%d", &kontoID); loesche_konto(kontoID); printf("Konto wurde geloescht\n"); break; case 4: printf("Geben sie die Kontonummer ein, von der abgebucht werden soll: "); scanf("%d", &kontoID); printf("Geben sie die Kontonummer ein, an die ueberwiesen werden soll: "); scanf("%d", &kontoID2); printf("Geben sie den Betrag ein, der ueberwiesen werden soll: "); scanf("%f", &guthaben); ueberweisung(kontoID, kontoID2, guthaben); break; default: break; } printf("Druecken Sie eine beliebige Taste um vorzufahren"); getch(); system("cls"); } while(auswahl); return; }
void erstelle_konto(int ID) { printf("\n\nVorname: "); scanf("%s", konten[ID].vorname); printf("Nachname: "); scanf("%s", konten[ID].nachname); printf("Kontostand: "); scanf("%f", &konten[ID].kontostand); printf("Kontonummer: %d\n", ID); konten[ID].kontonummer = ID; printf("Konto wurde erstellt!\n\n\n"); }
void loesche_konto(int ID) //man kann nichtvorhandene konten löschen { strcpy(konten[ID].vorname, ""); strcpy(konten[ID].nachname, ""); konten[ID].kontostand = 0; }
void zeige_konto(int ID) { if(strlen(konten->vorname) == 0 || strlen(konten->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: %.2f\n", konten[ID].kontostand); printf("Kontonummer: %d\n\n\n", konten[ID].kontonummer); } }
void speichere_konto(int ID) { 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); }
void ueberweisung(int vonID, int zuID, double guthaben) {
if(konten->kontostand - guthaben < 0) { printf("\n\nNicht genug Guthaben!\n\n"); } else { konten[vonID].kontostand = konten[vonID].kontostand - guthaben; konten[zuID].kontostand = konten[zuID].kontostand + guthaben; 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;
void erstelle_konto(int); void loesche_konto(int); void zeige_konto(int); void speichere_konto(int); void ueberweisung(int, int, double);
|
Wenn ich jetzt Konto anzeigen auswähle, sagt er mir es existiert nicht. in die Datei wird es aber geschrieben, nur der Kontostand ist 0.00
bekomme außerdem diesen Compilerfehler: Nicht initialisierter Speicher "kontoID" wird verwendet.: Lines: 8, 9, 10, 11, 12, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 31, 32
und
Die möglicherweise nicht initialisierte lokale Variable "kontoID" wurde verwendet. |