#include <iostream>
#include <string>
#include <fstream>
using namespace std ;
string pw, name, anrede, knr, pwin ;
int kontonr ;
double kontostand ;
/*
=====================================================================
=====================================================================
Login
=====================================================================
=====================================================================
*/
int login()
{
cout << "Willkommen" << endl << "Bitte geben sie ihre Kontonummer ein:" <<endl ;
cin >> kontonr ;
return kontonr ;
}
/*
=====================================================================
=====================================================================
Funktion Abheben-Dekalrieren ::::: Implementation: Line 267
=====================================================================
=====================================================================
*/
int abheben () ;
/*
=====================================================================
=====================================================================
Funktion Übereisen-deklarieren
=====================================================================
=====================================================================
*/
int ueberweisen () ;
/*
=====================================================================
=====================================================================
Hauptprgogramm
=====================================================================
=====================================================================
*/
int main()
{
ifstream konto;
int weiter ;
/*
=====================================================================
Bereich Eingabe Kontonr.
=====================================================================
*/
do
{
switch (login())
{
/*
=========================
123456 Tom Muster
=========================
*/
case 123456:
konto.open("0000.txt", ios::in) ;
getline (konto, name) ;
getline (konto, anrede) ;
getline (konto, pw) ;
getline (konto, knr) ;
konto >> kontostand ;
weiter = '1';
knr = "0000.txt" ;
cout << "Willkommen " <<anrede << name <<endl ;
break ;
/*
=========================
654321 Anna Morsch
=========================
*/
case 654321:
konto.open("0001.txt", ios::in) ;
getline (konto, name) ;
getline (konto, anrede) ;
getline (konto, pw) ;
getline (konto, knr) ;
konto >> kontostand ;
weiter = '1' ;
knr = "0001.txt" ;
cout << "Willkommen " <<anrede << name <<endl ;
break ;
/*
=========================
214365 Harald Wink
=========================
*/
case 214365:
konto.open("0002.txt", ios::in) ;
getline (konto, name) ;
getline (konto, anrede) ;
getline (konto, pw) ;
getline (konto, knr) ;
konto >> kontostand ;
weiter = '1' ;
knr = "0002.txt" ;
cout << "Willkommen " <<anrede << name <<endl ;
break ;
/*
=========================
Default
=========================
*/
default:
cout << "Ungueltige Kontonummer. Eingabe wiederholen:" <<endl;
weiter='0' ;
}
}while (weiter=='0') ;
/*
=====================================================================
Bereich Passwortabfrage
=====================================================================
*/
cout << "Bitte Passwort eingeben. Sie haben 3 Versuche " <<endl ;
int versuch=3;
do
{
cin >> pwin ;
/*
=========================
Verlassen nach 3 falschen Eingaben
=========================
*/
if (pwin != pw && versuch == 1)
{
cout << "passwort falsch. Keine Versuche uebrig. " <<endl ;
weiter = '0' ;
return 1 ;
}
/*
=========================
Wiederholen: PW-Abfrage
=========================
*/
else if (pwin != pw && versuch != 1)
{
cout << "Passwort falsch. Bitte erneut eingeben:" <<endl ;
versuch = versuch - 1 ;
}
/*
=========================
PW Korrekt: Weiter mit Wahlbereich
=========================
*/
else if (pwin == pw)
{
cout << "Passwort akzeptiert." <<endl <<endl ;
weiter ='1' ;
break ;
}
}while (versuch !=0) ;
/*
=====================================================================
Wahlbereich Abhebung etc.
=====================================================================
*/
cout << "Bitte waehlen sie: " <<endl <<endl << "1: Kontostand abrufen \t\t 2: Ueberweisung taetigen" << endl ;
cout << "3: Abhebung\t\t 4: Beenden" <<endl ;
int wahl ;
cin >> wahl ;
/*
=========================
Wahl 1: Kontostand
=========================
*/
if (wahl == 1)
{
float kontoabf ;
cout << "Ihr derzeitiger Kontostand betraegt " << kontostand << " EUR" <<endl ;
}
/*
=========================
Wahl 2: Überweißung
=========================
*/
else if (wahl == 2)
{
ueberweisen() ;
}
/*
=========================
Wahl 3: Abheben
=========================
*/
else if (wahl == 3)
{
abheben() ;
}
/*
=========================
Wahl 4: Beenden
=========================
*/
else if (wahl == 4)
{
return 0 ;
}
/*
=====================================================================
Ende Hauptprogramm
=====================================================================
*/
return 3 ;
}
/*
=====================================================================
=====================================================================
Funktion Abheben
=====================================================================
=====================================================================
*/
int abheben ()
{
float betrag;
/*
=========================
login
=========================
*/
cout << "Zur Bestaetigung bitte eigene Kundennummer eingeben:" << endl <<endl ;
string KndNr, test ;
cin >> KndNr ;
KndNr = KndNr + ".txt" ;
/*
=========================
Eingabe: betrag
=========================
*/
cout << "Bitte gewuenschten Betrag eingeben:" << endl ;
cin >> betrag ;
if (betrag <0)
{
cout << "Ungueltige Eingabe. " ;
cout << "Bitte gewuenschten Betrag eingeben:" << endl ;
cin >> betrag ;
}
/*
=========================
Funktion-Hauptteil
=========================
*/
/*
=========================
Funktion-Hauptteil :: Lesen
=========================
*/
ifstream konto_lesen(KndNr.c_str()) ;
getline (konto_lesen, name) ;
getline (konto_lesen, anrede) ;
getline (konto_lesen, pw) ;
getline (konto_lesen, knr) ;
konto_lesen >> kontostand ;
konto_lesen.close() ;
/*
=========================
Funktion-Hauptteil :: Schreiben
=========================
*/
kontostand = kontostand - betrag ;
ofstream konto_schreiben(KndNr.c_str(), ios::trunc) ;
konto_schreiben << name <<endl ;
konto_schreiben << anrede << endl ;
konto_schreiben << pw << endl ;
konto_schreiben << knr << endl ;
konto_schreiben << kontostand << endl ;
}
/*
=====================================================================
=====================================================================
Funktion Überweisen
=====================================================================
=====================================================================
*/
int ueberweisen()
{
float betrag ;
cout << "Bitte eigene Kundennummer eingeben:" << endl ;
string Eg_KndNr ;
cin >> Eg_KndNr ;
Eg_KndNr = Eg_KndNr + ".txt" ;
cout << "Bitte Kundennummer des Empfaengers eingeben:" << endl ;
string KndNr ;
cin >> KndNr ;
KndNr = KndNr + ".txt" ;
/*
=========================
Eingabe: betrag
=========================
*/
cout << "Bitte gewuenschten Betrag eingeben:" << endl ;
cin >> betrag ;
if (betrag <0)
{
cout << "Ungueltige Eingabe. " ;
cout << "Bitte gewuenschten Betrag eingeben:" << endl ;
cin >> betrag ;
}
/*
=========================
Funktion-Hauptteil
=========================
*/
/*
=========================
Funktion-Hauptteil :: Lesen Fremdkonto
=========================
*/
ifstream konto_lesen(KndNr.c_str()) ;
getline (konto_lesen, name) ;
getline (konto_lesen, anrede) ;
getline (konto_lesen, pw) ;
getline (konto_lesen, knr) ;
konto_lesen >> kontostand ;
konto_lesen.close() ;
/*
=========================
Funktion-Hauptteil :: Schreiben Fremdkonto
=========================
*/
kontostand = kontostand + betrag ;
ofstream konto_schreiben(KndNr.c_str(), ios::trunc) ;
konto_schreiben << name <<endl ;
konto_schreiben << anrede << endl ;
konto_schreiben << pw << endl ;
konto_schreiben << knr << endl ;
konto_schreiben << kontostand << endl ;
konto_schreiben.close() ;
/*
=========================
Funktion-Hauptteil :: Lesen Eigenkonto
=========================
*/
ifstream eg_konto_lesen(Eg_KndNr.c_str()) ;
getline (eg_konto_lesen, name) ;
getline (eg_konto_lesen, anrede) ;
getline (eg_konto_lesen, pw) ;
getline (eg_konto_lesen, knr) ;
eg_konto_lesen >> kontostand ;
eg_konto_lesen.close() ;
/*
=========================
Funktion-Hauptteil :: Schreiben Eigenkonto
=========================
*/
kontostand = kontostand - betrag ;
ofstream eg_konto_schreiben(Eg_KndNr.c_str(), ios::trunc) ;
eg_konto_schreiben << name <<endl ;
eg_konto_schreiben << anrede << endl ;
eg_konto_schreiben << pw << endl ;
eg_konto_schreiben << knr << endl ;
eg_konto_schreiben << kontostand << endl ;
eg_konto_schreiben.close() ;
}