problem, does not name a type, ...

0

Witam. mam taki problem, wyskakują takie błędy
*[Error] 'PracownikDzialuIT' does not name a type
*In function 'int main()':
*[Error] 'PracownikDzialuIT' was not declared in this scope

Proszę o pomoc w jaki sposób mogę sobie z tym poradzić.
PS. muszę dodać kolejnego "PracownikaDzialu" i żeby ten błąd nie powtórzył się.

#include <iostream>
#include <string>
#include <conio.h>
#include <stdio.h>
#include <cstdlib>


using namespace std;

class Pracownik{
	protected:
		string imie, nazwisko;
		int wiek;
};

class PracownikDzialuFinansowego : Pracownik
{
	protected:
		string nazwaDzalu;
	public:
		void zapamietaj(string wimie, string wnazwisko, int lata, string wdzial)
		{
			imie=wimie;
			nazwisko=wnazwisko;
			wiek=lata;
			nazwaDzalu=wdzial;
		};


class PracownikDzieluIT : Pracownik
{
	protected:
		string nazwaDzialu;
	public:
		void zapamietaj(string wimie, string wnazwisko, int lata, string wdzial) 
		{
			imie=wimie;
			nazwisko=wnazwisko;
			wiek=lata;
			nazwaDzialu=wdzial;
		};
	
void wyswietl()
{
	//cout<<imie<<", "<<nazwisko<<", "<<wiek<<", "<<nazwaDzalu << endl<<endl;}
	cout<<imie<<", "<<nazwisko<<", "<<wiek<<", "<<"Pracownik Dzialu IT" << endl<<endl;	
}
	
};



void wyswietl()
{
	//cout<<imie<<", "<<nazwisko<<", "<<wiek<<", "<<nazwaDzalu << endl<<endl;}
	cout<<imie<<", "<<nazwisko<<", "<<wiek<<", "<<"Pracownik Dzialu Finansowego" << endl<<endl;
}
};

static PracownikDzialuFinansowego* dodaj()
{
	int n;
	cout<<"Podaj liczb pracownikow Dzialu Finansowego: ";
	cin>>n;
	PracownikDzialuFinansowego* a=new PracownikDzialuFinansowego[n];
	for(int i=0; i<n;i++)
	
	{
		string imie,nazwisko,nazwaDzalu;
		int wiek;
		cout<<"imie: ";
		cin>>imie;
		cout<<"nazwisko: ";
		cin>>nazwisko;
		cout<<"wiek: ";
		cin>>wiek;
		//cout<<"nalezy wpisac 'Finanse'"<<endl;
		//cout<<"dzial: " ;
		//cin>>nazwaDzalu;
		//cout<<endl;
		a[i].zapamietaj(imie,nazwisko,wiek,nazwaDzalu);
		cout<<endl;
		a[i].wyswietl();

	}
	cout<<endl;
	return a;
	
}


static PracownikDzialuIT* dodaj()
{
	int n;
	cout<<"Podaj liczb pracownikow Dzialu IT: ";
	cin>>n;
	PracownikDzialuIT* a=new PracownikDzialuIT[n];
	for(int i=0; i<n;i++)
	
	{
		string imie,nazwisko,nazwaDzalu;
		int wiek;
		cout<<"imie: ";
		cin>>imie;
		cout<<"nazwisko: ";
		cin>>nazwisko;
		cout<<"wiek: ";
		cin>>wiek;
		//cout<<"nalezy wpisac 'Admin'"<<endl;
		//cout<<"dzial: " ;
		//cin>>nazwaDzalu;
		//cout<<endl;
		a[i].zapamietaj(imie,nazwisko,wiek,nazwaDzalu);
		cout<<endl;
		a[i].wyswietl();		
	}	
	cout<<endl;
	return a;	
};


	int main()

	{
	PracownikDzialuFinansowego *tab=dodaj();
	PracownikDzialuIT *tab=dodaj();
	return(0);
	}
0

PracownikDziEluIT...

0

Żle pozamykane klasy - chyba że w tym jest jakaś metoda której nie widzę.

2
  1. PracownikDzieluIt zamień na PracownikDzialuIt
  2. Klasę PracownikDzialuIt przenieś poza zakres klasy PracownikDzialuFinansowego.
  3. Nie można przeciążyć funkcji zmieniając jedynie zwracany przez nią typ. (Chodzi o funkcję dodaj)
  4. Nie można w tym samym zakresie widoczności zdefiniować 2 zmiennych o tej samej nazwie. (zmienna tab)
  5. Nie dealokujesz pamięci.
  6. Kod jest do luftu, najlepiej to wywal i napisz od nowa.
0

Mam teraz taki problem, po wpisaniu ilości adminów np. 1 wprowadzam 2x.
a powinno się raz wprowadzić a potem wyświetlić.

 #include<iostream>
 #include<string>
 using namespace std;

int liczba_man=0;

 class Pracownik{

 protected:
 	string imie, nazwisko;
 	int wiek;
 public:
 	virtual void pytaj()
 {
	 cout<<"\nimie: "; cin>>imie;
	 cout<<"nazwisko: "; cin>>nazwisko;
	 cout<<"wiek: "; cin>>wiek;
 }
 virtual void wypisz(){
 cout<<"\nimie: "<<imie<<", nazwisko: "<<nazwisko<<", wiek: "<<wiek;
 }

 };
 class Finansowy : Pracownik{
 string dzial;
 public:
	 void wypisz(){Pracownik::wypisz(); cout<<", dzial: "<<dzial<<'\n';}
	 void pytaj(){Pracownik::pytaj(); cout<<"dzial: "; cin>>dzial;}
 };
 class Admin : Pracownik{
 string siec;
 public:
	 void wypisz(){Pracownik::wypisz();cout<<", siec: "<<siec<<'\n';}
	 void pytaj(){Pracownik::pytaj(); cout<<"siec: "; cin>>siec;}
 };
 class Menager: Pracownik{
 string filia;
 public:
	 void wypisz(){Pracownik::wypisz();cout<<", filia: "<<filia<<'\n';}
	 void pytaj(){Pracownik::pytaj(); cout<<"filia: "; cin>>filia;}
 };
 
 void dodaj(){
 int liczba;
 cout<<"Podaj liczbe pracownikow dzialu finansowego: ";
 cin>>liczba;
 Finansowy *kasa= new Finansowy[liczba];
 for(int i=0; i<liczba;i++)
 {
 kasa[i].pytaj();
 }
         for(int i=0; i<liczba;i++){
         kasa[i].wypisz();
         }


 cout<<"\nPodaj liczbe administratorow: ";
 cin>>liczba;
 Admin *adm=new Admin[liczba];
 for(int i=0; i<liczba;i++){
 adm[i].pytaj();
 }
for(int i=0; i<liczba;i++){
adm[i].pytaj();
}

 cout<<"\nPodaj liczbe bosow: ";
 cin>>liczba;
    liczba_man = liczba;
 Menager *bosu=new Menager[liczba];
 for(int i=0; i<liczba;i++){
 bosu[i].pytaj();
 }
for(int i=0; i<liczba;i++){
bosu[i].wypisz();
}
}

int main(){

dodaj();

return 0;
}
1

Masz dwa razy pętle z adm[i].pytaj();

0

Z załącznika

1, 2a,b - można powiedzieć, że jest

2c - to inna para kaloszy.

3- czy tu chodzi o:

oto, żeby dodać "#include <fstream>" z możliwością zapisu i odczytu, możliwości edycji, itd?

bo jedynie to przychodzi mi do glowy

1 użytkowników online, w tym zalogowanych: 0, gości: 1