main

by Mai on February 24th, 2012
No notes
Syntax: C++
Show lines - Hide lines - Show in textbox - Download
#include <iostream>
using namespace std;
#include <string.h>
#include <fstream>
#include <stdlib.h>
 
 
struct personen
{
    char name[40];
    char id[20];
};
 
struct personen person[800];
int verarbeitePerson();
void druckePerson(int ordnungsnr1);
int verarbeiteBeziehung();
 
enum zustand {inOrdnungsnr1, imNamen, inID, inURL, anzahl};
 
 
 
int main()
{
int ordnungsnr1;
 
cout << "Geben Sie eine Ordnungsnummer ein: ";
cin >> ordnungsnr1;
verarbeitePerson();
druckePerson(ordnungsnr1);
verarbeiteBeziehung();
}
 
 
 
int verarbeitePerson()
{
ifstream dat;
char puffer[100], zeichen;
int zaehler;
enum zustand zustand;
 
dat.open("personen.txt");
 
if(!dat)
        {
        cout << "Die Datei konnte nicht gefunden werden." << endl;
        return 1;
        }
 
zustand=inOrdnungsnr1;
zaehler=0;
 
int ordnungsnr1=0;
for (dat.get(zeichen);!dat.eof();dat.get(zeichen))
    {
    switch(zeichen)
        {
        case '(':
        puffer[zaehler]='\0';
        strcpy(person[ordnungsnr1].name,puffer);
        zustand=inID;
        zaehler=0;
        break;
 
        case ')':
        puffer[zaehler]='\0';
        strcpy(person[ordnungsnr1].id,puffer);
        zustand=inURL;
        zaehler=0;
        break;
 
        case '"':
        puffer[zaehler]='\0';
        if (zustand==inOrdnungsnr1)
            {
            puffer[zaehler]='\0';
            zaehler=0;
            ordnungsnr1++;
            zustand=imNamen;
            }
        else if (zustand==inURL)
            {
            break;
            }
        break;
 
        case ' ':
        if (zustand==inOrdnungsnr1) break;
        else {
            puffer[zaehler]=zeichen;
            zaehler++;
            break;
             }
        break;
 
        case '\n':
        zustand=inOrdnungsnr1;
        zaehler=0;
        break;
 
        default:
        puffer[zaehler]=zeichen;
        zaehler++;
        break;
        }
    }
}
 
void druckePerson(int ordnungsnr1)
{
    cout << ordnungsnr1 << ":" << person[ordnungsnr1].name << "hat die Identifikation: " << person[ordnungsnr1].id << endl;
}
 
 
int verarbeiteBeziehung()
{
    ifstream datei;
    char puffer[100], zeichen;
    int zaehler;
    int  zustand;
    /*
      zustand=0 : leer,
      zustand=1 : inOrdnungsnr1,
      zustand=2 : inOrdnungsnr2,
      zustand=3 : inAnzahl,
      */
 
    datei.open("beziehungen.txt");
 
    if(!datei)
            {
            cout << "Die Datei konnte nicht gefunden werden." << endl;
            return 1;
            }
 
zustand=0;
zaehler=0;
 
int ordnungsnr1, ordnungsnr2, anzahl;
for (datei.get(zeichen);!datei.eof();datei.get(zeichen))
    {
    switch(zeichen)
    {
    case ' ':
    if (zustand==1){
    puffer[zaehler]='\0';
    ordnungsnr1=atoi(puffer);
    cout << "Ordnungsnummer 1: " << ordnungsnr1 << endl;
    zustand=2;
    zaehler=0;
    break;
    }
 
    else if (zustand==2){
    puffer[zaehler]='\0';
    ordnungsnr2=atoi(puffer);
    cout << "Ordnungsnummer 2: " << ordnungsnr2 << endl;
    zaehler=0;
    zustand=3;
    break;
    }
 
    else if (zustand==0){
    break;
    }
 
    case '\n':
    puffer[zaehler]='\0';
    anzahl=atoi(puffer);
    cout << "Anzahl: " << anzahl << endl << endl;
    zustand=0;
    zaehler=0;
    break;
 
    default:
    puffer[zaehler]=zeichen;
    zaehler++;
    if (zustand==0) zustand=1;
    break;
    }
    }
}

Leave a Reply

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

Subscribe to this comment feed via RSS