nourhene4
Messages postés9Date d'inscriptionjeudi 19 janvier 2012StatutMembreDernière intervention16 avril 2012
-
31 mars 2012 à 14:19
nourhene4
Messages postés9Date d'inscriptionjeudi 19 janvier 2012StatutMembreDernière intervention16 avril 2012
-
1 avril 2012 à 17:23
Bonjour,
J'ai fais un code d'un programme qui permet de saisir les informations du personnel dans une entreprise ( employé,cadre), mais mon code comporte beaucoup d'erreurs surtout aux niveau des constructeurs , pourvez vous m'aider ?
Merci d'avance
#include
#include
#include <string>
using namespace std;
class Personnel
{
int NCI;
char Nom[20];
char Prenom[20];
public:
Personnel();
Personnel(int nc,char *nm,char *pr);
~Personnel();
void saisie();
void affichage();
};
Personnel::Personnel()
{
NCI=125;
strcpy(Nom,"");
strcpy(Prenom,"");
}
Personnel::Personnel(int nc,char *nm,char *pr)
{
NCI=nc;
strcpy(Nom,nm);
strcpy(Prenom,pr);
}
Personnel::~Personnel()
{
cout<<"Ceci est un destructeur de la classe Personnel"<<endl;
}
void Personnel::saisie()
{
cout<<"Entrez le numero de la carte d'identité"<<endl;
cin>>NCI;
cout<<"Entrez votre Nom"<<endl;
cin>>Nom;
cout<<"Entrez votre Prenom"<<endl;
cin>>Prenom;
}
void Personnel::affichage()
{
cout<<"NCI= "<<NCI<<endl;
cout<<"Nom= "<<Nom<<endl;
cout<<"Prenom= "<>nb_h;
cout<<"Entrez le tarif"<<endl;
cin>>tarif;
}
void affichage::Employe()
{
Personnel::affichage();
cout<<"nb_h= "<<nb_h;
cout<<"tarif= "<<tarif;
}
class Cadre:public Employe
{
float salaire,prime;
public:
Cadre();
Cadre(int nc,char *nm,char *pr,float sal,float pri);
~Cadre();
void saisie();
void affichage();
};
Cadre::Cadre()
{
salaire=100;
prime=0;
}
Cadre::Cadre(int nc,char *nm,char *pr,float sal,float pri):Personnel(nc,nm,pr)
{
salaire=sal;
prime=pri;
}
Cadre::~Cadre()
{
cout<<"Ceci est un destructeur de la classe Cadre"<<endl;
}
void saisie::Cadre()
{
Personnel::saisie();
cout<<"Entrez le salaire"<<endl;
cin>>salaire;
cout<<"Entrez la prime"<<endl;
cin>>prime;
}
void affichage::Cadre()
{
Personnel::affichage();
cout<<"Salaire= "<<salaire;
cout<<"Prime= "<<prime;
}
void main()
{
clrscr();
cout<<"saisie une personne"<<endl;
Personnel p;
p.saisie();
p.affichage();
cout<<"saisie cadre"<<endl;
Cadre c;
c.saisie();
c.affichage();
cout<<"saisie employ\x82"<<endl;
Employe e;
e.saisie();
e.affichage();
getch();
}
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 1 avril 2012 à 13:33
Bonjour.
Tout d'abord quelques conseils sur des points qui me choquent dans ton code:
- Évite les "using namespace", voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace - Préfère un std::string à un char*
- "int main()" et non "void main()"
- Tu fais un héritage sans utiliser de virtual, ce qui rend ton héritage très bancal...
Il y a des fautes des syntaxes que tu aurais pu corriger avant de poster ce code...
Notamment ligne 55, il te manque le type de variable de ton argument "tar" (une virgule en trop ?).
Ceci: "void saisie::Employe()" devrait être "void Employe::saisie()", tu as inversé à de nombreux endroits.
Je te laisse déjà corriger tout cela, avant d'aller plus loin.
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
nourhene4
Messages postés9Date d'inscriptionjeudi 19 janvier 2012StatutMembreDernière intervention16 avril 2012 1 avril 2012 à 17:23
Bonjour;
J'ai corrigé void main() en int , et void saisie::Employe()" en "void Employe::saisie(), et ça marche bien maintenant , merci !
Pour le using namespace , je suis entrain de comprendre le lien que tu m'as envoyé