Funktionen

by Bianca on March 19th, 2012
No notes
Syntax: No syntax
Show lines - Hide lines - Show in textbox - Download
#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;
 
}
 

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS