Hilfe Programm Angestellte

Betty

Stammuser
Hallo,
ich lerne gerade mit C++ zu arbeiten und versuche Programme zu erstellen.
Ich habe ein Programm erstellt indem ich n Angestellte eingeben kann, die Daten in einer void Funktion eingeben und in einer anderen void Funktion rechne ich den Prozent und die Prämie der Angestellten aus. In der 3-ten void Funktion gebe ich die Daten raus. Jedoch anstatt 2 verschiedene Geldprämiem für 2 verschiedene Angestellte zu bekommen, zeigt mir das Programm 2 Mal die letzte Geldprämie dar. Ich hab wirklich versucht es zu lösen, habe es leider nicht geschaft. Könnt ihr mir bitte helfen?
Ich habe im Anhang den Code hochgeladen.
Code:
#include <iostream>
#include <conio.h>
#include <string>
#include <math.h>
using namespace std;
string Name[100], Vorname[100], Abteilung[100];
float Geldprämie[100];
int Gehalt[100], Prozent, i, n;
void Eingabe()
{
	for(i=0; i<n; i++)
	{
		cout<<"Name: "; cin>>Name[n];
		cout<<"Vorname: "; cin>> Vorname[n];
		cout<<" Abteilung (IT, Produktionsabteilung, Andere): "; cin>>Abteilung[n];
		cout<<"Gehalt: "; cin>>Gehalt[n];
	}
}
void Berechnung()
{
	
	for(i=0; i<n; i++)
	{
		if (Abteilung[n]=="IT")
			Prozent=30;
		
		else if(Abteilung[n]=="Produktionsabteilung") 
			Prozent=20;
			
		else
			Prozent=10;
		
		 Geldprämie[n]=(float)Prozent/100*Gehalt[n];  
	 }
}
void Ausgabe()
{
	Berechnung();
	for(i=0; i<n; i++)
	{
	
		cout<<"Ihr Prozent beträgt: "<<Prozent<<"%"<<endl;
		cout<<"Ihre Geldprämie betrifft: "<<Geldprämie[n];
		cout<<"\n\n";
	}
}
int main()
{
	cout<<"Bitte geben Sie die Anzahl der Angestellten ein: "<<endl; cin>>n;
	
	Eingabe();
	Ausgabe();
	_getch();
	return 0;
}
 
Zuletzt bearbeitet von einem Moderator:

CDW

Moderator
Mitarbeiter
In der 3-ten void Funktion gebe ich die Daten raus. Jedoch anstatt 2 verschiedene Geldprämiem für 2 verschiedene Angestellte zu bekommen, zeigt mir das Programm 2 Mal die letzte Geldprämie dar.

Code:
void Ausgabe()
{
	Berechnung();
	for(i=0; i<n; i++)
	{
	
		cout<<"Ihr Prozent beträgt: "<<Prozent<<"%"<<endl;
		cout<<"Ihre Geldprämie betrifft: "<<Geldprämie[COLOR="Red"][n][/COLOR];
		cout<<"\n\n";
	}
}
In der Schleife, die von 0 bis n-1 mal durchläuft, wird konstant nur "Geldprämie[n]" ausgegeben.

Ebenso "komisch" wird bei "Eingabe()" eingelesen ;)
Code:
void Eingabe()
{
      for(i=0; [COLOR="Red"]i<n[/COLOR]; i++)
      {
            cout<<"Name: "; cin>>Name[COLOR="red"][n][/COLOR];
            cout<<"Vorname: "; cin>> Vorname[COLOR="red"][n][/COLOR];
            cout<<" Abteilung (IT, Produktionsabteilung, Andere): ";
cin>>Abteilung[n];
            cout<<"Gehalt: "; cin>>Gehalt[COLOR="red"][n][/COLOR];
      }
}

Edit: ebenso sollte man sich auch "Berechnung" anschauen:
Code:
void Berechnung()
{

      for(i=0; i<n; i++) // durchlaufe von 0 bis n - 1 
      {
            if (Abteilung[COLOR="Red"][n][/COLOR]=="IT") // wenn die (konstant) n-te Abeiltung
                 Prozent=30;

            else if(Abteilung[COLOR="red"][n][/COLOR]=="Produktionsabteilung")
                 Prozent=20;

            else
                 Prozent=10;

             Geldprämie[COLOR="red"][n][/COLOR]=(float)Prozent/100*Gehalt[COLOR="red"][n][/COLOR];
       }
}
 

Betty

Stammuser
Danke. Ich kann es wirklich nicht fassen was für einen Fehler ich gemacht habe. Nächstes Mal versuche ich Aufmerksamer zu sein.
 
Oben