Funktionen
No notes
Syntax:
No syntax
#include <iostream>
using namespace std;
#include "Patenschaften.h"
class Pate Person[800];
class Patenschaft Person2[1347];
//----------Suche nach PERSONEN
int ladePersonen(ifstream &datei1)
{
char puffer[100],zeichen;
int zaehler;
enum zustand zustand;
int stelle=1;
zustand=sucheOrdnungsnr;
zaehler=0;
for(;;)
{
datei1.get(zeichen);
if (datei1.eof()) break;
switch(zeichen)
{
case '"':
if (zustand==sucheOrdnungsnr)
{
puffer[zaehler]='\0';
zaehler=0;
Person[stelle].ordnungsnr=atoi(puffer);
zustand=sucheName;
break;
}
if (zustand==sucheURL)
{
puffer[zaehler]='\0';
zaehler=0;
zustand=inURL;
break;
}
if (zustand==inURL)
{
puffer[zaehler]='\0';
zaehler=0;
zustand=URLanfang;
break;
}
if (zustand==URLanfang)
{
puffer[zaehler]='\0';
zaehler=0;
zustand=sucheOrdnungsnr;
break;
}
case '(':
if (zustand==sucheName)
{
puffer[zaehler-1]='\0';
zaehler=0;
strcpy(Person[stelle].name, puffer);
zustand=sucheID;
break;
}
case ')':
if (zustand==sucheID)
{
puffer[zaehler]='\0';
zaehler=0;
strcpy(Person[stelle].ID, puffer);
zustand=sucheURL;
break;
}
case ' ':
if (zustand==sucheOrdnungsnr)
{
break;
}
else
{
puffer[zaehler]=zeichen;
zaehler++;
break;
}
case '\n':
puffer[zaehler]='\0';
zaehler=0;
stelle++;
break;
default:
puffer[zaehler]=zeichen;
zaehler++;
break;
}
}
return 1;
}
//----------Suche nach ID
int suchePerson(char *Eingabe)
{
int pstelle;
for (pstelle=1; pstelle <= 800; pstelle++)
{
if (strcmp( Person[pstelle].ID , Eingabe)== 0 )
{
return pstelle;
}
}
cout << "Eingabe nicht gefunden" << endl;
return 0;
}
//----------Suche nach BEZIEHUNGEN
int ladeBeziehungen (ifstream &datei2)
{
char puffer2[100],zeichen2;
int zaehler2;
zaehler2=0;
int stelle2=1;
enum zustand2 zustand2;
zustand2=sucheOrdnungsnr2;
for (;;)
{
datei2.get(zeichen2);
if (datei2.eof()) break;
switch(zeichen2)
{
case ' ':
if (zustand2==sucheOrdnungsnr2)
{
puffer2[zaehler2]='\0';
zaehler2=0;
break;
}
if (zustand2==Ordnungsnr)
{
puffer2[zaehler2]='\0';
zaehler2=0;
Person2[stelle2].Person21=atoi(puffer2);
zustand2=suchePatenschaft;
break;
}
if (zustand2==suchePatenschaft)
{
puffer2[zaehler2]='\0';
zaehler2=0;
Person2[stelle2].Person22=atoi(puffer2);
zustand2=sucheKinder;
break;
}
case '\n':
if (zustand2==sucheKinder)
{
puffer2[zaehler2]='\0';
zaehler2=0;
Person2[stelle2].AnzahlKinder=atoi(puffer2);
stelle2++;
zustand2=sucheOrdnungsnr2;
break;
}
default:
if (zustand2==sucheOrdnungsnr2)
{
zustand2=Ordnungsnr;
puffer2[zaehler2]=zeichen2;
zaehler2++;
}
else
{
puffer2[zaehler2]=zeichen2;
zaehler2++;
}
break;
}
}
datei2.close();
return 1;
}
//----------Suche nach Patenschaften
void sucheBeziehung (int position)
{
int Kinderzaehler=0;
cout << Person[position].name << endl << endl << endl;
for (int sucher=1; sucher <=1347; sucher ++)
{
if (Person[position].ordnungsnr == Person2[sucher].Person21)
{
cout << " hat " << Person2[sucher].AnzahlKinder << " Kinder von " ;
translateONummer(Person2[sucher].Person22) ;
cout << " adoptiert. " << endl;
Kinderzaehler = Kinderzaehler + Person2[sucher].AnzahlKinder;
}
}
cout << endl << "Das sind insgesamt " << Kinderzaehler << " Kinder. " << endl;
cout << endl << endl;
}
//----------Ordnungsnummer des Vaters in Namen übersetzen
char translateONummer(int ONummer)
{
int pstelle;
for (pstelle=1; pstelle <= 800; pstelle++)
{
if (ONummer == Person[pstelle].ordnungsnr )
{
cout << Person[pstelle].name;
}
}
return 0;
}