maak
07-08-2005, 13:13
Hallo,
ich würde gerne für jemanden zur Demonstration der Verwendung von Strukturen (später auch Klassen) ein rudimentäres Mitarbeiter-Verwaltungsprogramm schreiben. Leider finde ich auf eine Frage keine Lösung: Wenn man den Programmcode, den ich unten hineinkopiert habe, kompiliert und im Hauptmenü Nummer 1 wählt, dann werden die Daten nicht eingelesen, sondern alle Einlesebefehle einfach übersprungen und das Programm beendet anstatt den nächsten Schleifendurchlauf zu starten. Vielleicht kann mir jemand von euch helfen, dem Problem auf den Grund zu gehen? Vielen Dank im Voraus!
Mit freundlichen Grüßen
maak
#include <conio.h>
#include <iostream>
using namespace std;
struct mitarbeiter
{ char name[20];
char vorname[20];
char titel[10];
char geschlecht;
char strasse[100];
char wohnort[30];
int plz;
char position[40];
int lohn;
int urlaub;
int urlaub_verbraucht;
int eintrittsdatum;
};
int nummer=0;
mitarbeiter arbeiter[30];
void neuer_mitarbeiter(mitarbeiter *person)
{ system("cls");
cout<<endl<<" Neuen Mitarbeiter registrieren"<<endl<<endl;
cout<<" Name: ";
cin.get(person->name,19);
cout<<" Vorame: ";
cin.get(person->vorname,19);
cout<<" Titel: ";
cin.get(person->titel,9);
cout<<" Geschlecht: ";
cin>>person->geschlecht;
cout<<" Position: ";
cin.get(person->position,39);
cout<<" Strasse: ";
cin.get(person->strasse,99);
cout<<" Postleitzahl: ";
cin>>person->plz;
cout<<" Wohnort: ";
cin.get(person->wohnort,29);
cout<<" Lohn: ";
cin>>person->lohn;
cout<<" Urlaub: ";
cin>>person->urlaub;
person->urlaub_verbraucht=0;
cout<<" Eintrittsdatum: ";
cin>>person->eintrittsdatum;
cout<<endl<<" Der neue Mitarbeiter wurde angelegt."<<endl;
getch();
}
int hauptmenue()
{ system("cls");
int wahl;
cout<<endl<<" Hauptmenue"<<endl<<endl
<<" 1) Neuen Mitarbeiter eintragen"<<endl
<<" 2) Mitarbeiter bearbeiten"<<endl
<<" 3) Programm beenden (Datensaetze werden geloescht!)"<<endl<<endl
<<" Deine Wahl: ";
cin>>wahl;
return wahl;
}
void main(void)
{ int wahl=-1;
for(;;)
{ wahl=hauptmenue();
if(wahl==1&&nummer<30)
neuer_mitarbeiter(&arbeiter[nummer++]);
else
break;
}
}
ich würde gerne für jemanden zur Demonstration der Verwendung von Strukturen (später auch Klassen) ein rudimentäres Mitarbeiter-Verwaltungsprogramm schreiben. Leider finde ich auf eine Frage keine Lösung: Wenn man den Programmcode, den ich unten hineinkopiert habe, kompiliert und im Hauptmenü Nummer 1 wählt, dann werden die Daten nicht eingelesen, sondern alle Einlesebefehle einfach übersprungen und das Programm beendet anstatt den nächsten Schleifendurchlauf zu starten. Vielleicht kann mir jemand von euch helfen, dem Problem auf den Grund zu gehen? Vielen Dank im Voraus!
Mit freundlichen Grüßen
maak
#include <conio.h>
#include <iostream>
using namespace std;
struct mitarbeiter
{ char name[20];
char vorname[20];
char titel[10];
char geschlecht;
char strasse[100];
char wohnort[30];
int plz;
char position[40];
int lohn;
int urlaub;
int urlaub_verbraucht;
int eintrittsdatum;
};
int nummer=0;
mitarbeiter arbeiter[30];
void neuer_mitarbeiter(mitarbeiter *person)
{ system("cls");
cout<<endl<<" Neuen Mitarbeiter registrieren"<<endl<<endl;
cout<<" Name: ";
cin.get(person->name,19);
cout<<" Vorame: ";
cin.get(person->vorname,19);
cout<<" Titel: ";
cin.get(person->titel,9);
cout<<" Geschlecht: ";
cin>>person->geschlecht;
cout<<" Position: ";
cin.get(person->position,39);
cout<<" Strasse: ";
cin.get(person->strasse,99);
cout<<" Postleitzahl: ";
cin>>person->plz;
cout<<" Wohnort: ";
cin.get(person->wohnort,29);
cout<<" Lohn: ";
cin>>person->lohn;
cout<<" Urlaub: ";
cin>>person->urlaub;
person->urlaub_verbraucht=0;
cout<<" Eintrittsdatum: ";
cin>>person->eintrittsdatum;
cout<<endl<<" Der neue Mitarbeiter wurde angelegt."<<endl;
getch();
}
int hauptmenue()
{ system("cls");
int wahl;
cout<<endl<<" Hauptmenue"<<endl<<endl
<<" 1) Neuen Mitarbeiter eintragen"<<endl
<<" 2) Mitarbeiter bearbeiten"<<endl
<<" 3) Programm beenden (Datensaetze werden geloescht!)"<<endl<<endl
<<" Deine Wahl: ";
cin>>wahl;
return wahl;
}
void main(void)
{ int wahl=-1;
for(;;)
{ wahl=hauptmenue();
if(wahl==1&&nummer<30)
neuer_mitarbeiter(&arbeiter[nummer++]);
else
break;
}
}