Beispiel 4: person.h

21.11.2016 03:30 Uhr
#include <iostream>

using namespace std;
#include "person.h"

void askEnglish(struct person *partner);
void frageDeutsch(struct person *partner);
void greetEnglish(struct person *partner);
void gruesseDeutsch(struct person *partner);

int main()
{
struct person person = { 0 } ;
char sprache;

cout << "Wählen Sie Ihre Sprache:" << endl;
cout << "e = English" << endl;
cout << "d = deutsch" << endl;
cout << "   Ihre Wahl:";
cin >> sprache;

cout << "Sie kommen aus:" << endl;
cout << "w = Westeuropa" << endl;
cout << "a = Amerika" << endl;
cout << "r = Rußland" << endl;
cout << "o = Österreich" << endl;
cout << "   Ihre Herkunft:";
cin >> person.herkunft;

switch(sprache)
   {
case 'e':
   askEnglish(&person);
   break;
case 'd':
   frageDeutsch(&person);
   break;
default:
   cout << "I do not know your language / Maybe you know English?";
   askEnglish(&person);
   sprache='e';
   break;
   }

switch(sprache)
   {
case 'e':
   greetEnglish(&person);
   break;
case 'd':
   gruesseDeutsch(&person);
   break;
   }
}

void askEnglish(
struct person  *partner)
{
cout << "What's your first name?";
cin >> partner->vorname;
cout << "What's your last name?";
cin >> partner->nachname;
switch(partner->herkunft)
   {
case 'r':
   cout << "What's your patronym?";
   cin >> partner->patronym;
   break;
case 'a':
   cout << "What's your middle name?";
   cin >> partner->middlename;
   break;
case 'o':
   cout << "What's your title?";
   cin >> partner->titel;
   break;
   }
}
   

void frageDeutsch(
struct person    *partner)
{
cout << "Wie lautet Ihr Vorname?";
cin >> partner->vorname;
cout << "Wie lautet Ihr Familienname?";
cin >> partner->nachname;
switch(partner->herkunft)
   {
case 'r':
   cout << "Was ist Ihr Vatersname?";
   cin >> partner->patronym;
   break;
case 'a':
   cout << "Was ist Ihr Mittelname?";
   cin >> partner->middlename;
   break;
case 'o':
   cout << "Welchen Titel haben Sie?";
   cin >> partner->titel;
   break;
   }
}
 
void greetEnglish(
struct person    *partner)
{
cout << "Welcome, ";
if (partner->herkunft=='o') cout << partner->titel << " ";
cout << partner->vorname << " ";
if (partner->herkunft=='r') cout << partner->patronym << " ";
else if (partner->herkunft=='a') cout << partner->middlename << " ";
cout << partner->nachname << "!" << endl;
}

void gruesseDeutsch(
struct person    *partner)
{
cout << "Willkommen, ";
if (partner->herkunft=='o') cout << partner->titel << " ";
cout << partner->vorname << " ";
if (partner->herkunft=='r') cout << partner->patronym << " ";
else if (partner->herkunft=='a') cout << partner->middlename << " ";
cout << partner->nachname << "!" << endl;
}

Beispiel 4: Erläuterungen I

#include <iostream>

using namespace std;
#include "person.h"
Um ein Programm etwas übersichtlicher zu machen, können
wir von ihm benötigte Informationen, wie etwa Strukturdefinitionen in
andere Dateien übertragen, sogenannte 'Headerdateien'.

Es ist guter Brauch, vom System bereitgestellte Headerdateien mit der Konvention
 
#include <Dateiname>

vom Benutzer selbst definierte Headerdateien jedoch mit der Konvention

#include "Dateiname"

anzusprechen.


void askEnglish(struct person *partner);
void frageDeutsch(struct person *partner);
void greetEnglish(struct person *partner);
void gruesseDeutsch(struct person *partner);

int main()
{
struct person person = { 0 } ;
char sprache;

cout << "Wählen Sie Ihre Sprache:" << endl;
cout << "e = English" << endl;
cout << "d = deutsch" << endl;
cout << "   Ihre Wahl:";
cin >> sprache;

cout << "Sie kommen aus:" << endl;
cout << "w = Westeuropa" << endl;
cout << "a = Amerika" << endl;
cout << "r = Rußland" << endl;
cout << "o = Österreich" << endl;
cout << "   Ihre Herkunft:";
cin >> person.herkunft;

switch(sprache)
   {
case 'e':
   askEnglish(&person);
   break;
case 'd':
   frageDeutsch(&person);
   break;
default:
   cout << "I do not know your language / Maybe you know English?";
   askEnglish(&person);
   sprache='e';
   break;
   }

switch(sprache)
   {
case 'e':
   greetEnglish(&person);
   break;
case 'd':
   gruesseDeutsch(&person);
   break;
   }
}

void askEnglish(
struct person  *partner)
{
cout << "What's your first name?";
cin >> partner->vorname;
cout << "What's your last name?";
cin >> partner->nachname;
switch(partner->herkunft)
   {
case 'r':
   cout << "What's your patronym?";
   cin >> partner->patronym;
   break;
case 'a':
   cout << "What's your middle name?";
   cin >> partner->middlename;
   break;
case 'o':
   cout << "What's your title?";
   cin >> partner->titel;
   break;
   }
}
   

void frageDeutsch(
struct person    *partner)
{
cout << "Wie lautet Ihr Vorname?";
cin >> partner->vorname;
cout << "Wie lautet Ihr Familienname?";
cin >> partner->nachname;
switch(partner->herkunft)
   {
case 'r':
   cout << "Was ist Ihr Vatersname?";
   cin >> partner->patronym;
   break;
case 'a':
   cout << "Was ist Ihr Mittelname?";
   cin >> partner->middlename;
   break;
case 'o':
   cout << "Welchen Titel haben Sie?";
   cin >> partner->titel;
   break;
   }
}
 
void greetEnglish(
struct person    *partner)
{
cout << "Welcome, ";
if (partner->herkunft=='o') cout << partner->titel << " ";
cout << partner->vorname << " ";
if (partner->herkunft=='r') cout << partner->patronym << " ";
else if (partner->herkunft=='a') cout << partner->nachname << " ";
cout << partner->nachname << "!" << endl;
}

void gruesseDeutsch(
struct person    *partner)
{
cout << "Willkommen, ";
if (partner->herkunft=='o') cout << partner->titel << " ";
cout << partner->vorname << " ";
if (partner->herkunft=='r') cout << partner->patronym << " ";
else if (partner->herkunft=='a') cout << partner->nachname << " ";
cout << partner->nachname << "!" << endl;
}

Anhang: example4.zip

Schlagwörter: