begin process at 2012 05 28 11:33:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

aide pour un programme en c++ novice


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

aide pour un programme en c++ novice

mercredi 27 janvier 2010 à 17:40:20 | aide pour un programme en c++ novice

tooth

bonjour
j'ai besoin d'aide pour compiler et exécuter un programme qu'on nous a demandé à l'école, j'ai jamais étudié de c++ alors je galère bcp,
voilà le travail demandé:
Objectif : Une entreprise Beta alloue des voitures de fonctions à ses employés et
collaborateurs, le but de ce programme est d’affecter les véhicules et de gérer les imprévus
comme accidents ou panne.

Structure :
Classes utilisées :
1- Collaborateur : nom, N°, Fonction.
2- Voiture : marque, N° d’immatriculation, Etat (affectée, accidentée, disponible, en
panne…).

Opérations Possibles :
- Ajouter des véhicules (Achat…).
- Embaucher des collaborateurs, leur affecter des voitures (ou non).
- Affecter des voitures (une voiture ne peut être alloué que si elle est disponible).
- Afficher l’état du stock (voiture, état, à qui elle est affectée le cas échéant).
- Supprimer des voitures (Vente, Casse…).

voilà le travail que j'ai effectué mais qui ne se compile pas:

fichier voiture.h

#ifndef voiture_h
#define voiture_h

#include<iostream>
#include<cstdlib>
#include<string>

using namespace std;

class voiture
{
public:
//constructeurs et distructeur

voiture(){compteur++;};
voiture(std::string m,std::etat e,std::string mtr);
~voiture(){compteur--;};

//autres methodes

int setvoiture();
void affichestock() const;


std::string marque, matricule;
enum etat {dispo,affecte,accidente,en_panne};
etat status;
static int compteur;

};
#endif

fichier collaborateur.h

#ifndef collaborateur_h
#define collaborateur_h

#include<iostream>
#include<cstdlib>
#include<string>

using namespace std;

class collaborateur
{
public :
bool servi;
//constructeurs et distructeur

collaborateur(){compteur1++;};
~collaborateur(){compteur1--;};

//autres methodes

void setcollaborateur();
void affecter();

private :
std::string Nom,Fonction;
int Numero;
bool droit;

int static compteur1;
};
#endif

fichier voiture.cpp

#include "voiture.h"
#include "collaborateur.h"
#include <cstdlib>
#include <iostream>
#include <string>


using namespace std;

compteur=0;

//constructeur

voiture::voiture(std::string m, std::string mtr, std::etat e) : marque(m), matricule(mtr), status(e)
{compteur++;}

//saisie des voitures

void voiture::setvoiture()
{
cout<<"donner la marque:"<<endl;
cin>>marque;
cout<<"donner l'etat de la voiture:"<<endl;
cin>>status;
cout<<"donner la matruicule:"<<endl;
cin>>matricule;
return compteur++;
}

//afficher le stock

void voiture::affichestock()const
{
cout<<"La marque de la voiture est:"<<marque<<endl;
cout<<"L'état de la voiture est:"<<status<<endl;
cout<<"La matricule de la voiture est:"<<matricule<<endl;
cout<<"Le nombre de voiture dans le stock est:"<<compteur<<endl;
}

//distructeur

voiture::~voiture(){compteur--;}

fichier collaborateur.cpp

#include "voiture.h"
#include "collaborateur.h"
#include <cstdlib>
#include <iostream>
#include <string>


using namespace std;

compteur1=0;

//constructeur

collaborateur::collaborateur: Nom("dacia"), Fonction("fsfsdd"), Numero(142), droit(true)
{compteur1++;}

//créer des collaborateurs

int collaborateur::setcollaborateur(std::string Nom, std::string Fonction, int Numero, bool droit)
{
cout<<"Donner le nom:";
std::cin>>Nom;
cout<<"Donner sa fonction:";
std::cin>>Fonction;
cout<<"Donner son numéro:";
cin>>Numero;
cout<<"Est ce qu'il a droit a une voiture:";
cin>>droit;
servi=false;
return compteur1++;
}

//affectation des voitures

void collaborateur::affecter()
{
if(droit==true)
{ if (servi==false)
{ if(etat==1)
{etat=affecte;
servi=true;
cout<<"la voiture vous a été affecté"<<endl;
else
cout<<"la voiture n'est pas disponible"<<endl;
}
else
cout<<"vous avez déja une autre voiture"<<endl;
}
else
cout<<"vous avez pas droit a une voiture"<<endl;
}
}

//destructeur
collaborateur::~collaborateur(){--compteur1;}

fichier main.cpp

#include <cstdlib>
#include <iostream>
#include <string>
#include "voiture.h"
#include "collaborateur.h"
using namespace std;




int main()
{
voiture a;
a.setvoiture;
collaborateur b;
b.setcollaborateur();
b.affecter();
a.affichestock();
return 0;
system("PAUSE");
}



si quelqu'un peut m'aider un grand merci en avance

mercredi 27 janvier 2010 à 17:44:05 | aide pour un programme en c++ novice

tooth

voilà les erreurs que je reçois

5 C:\Documents and Settings\rachida\Mes documents\essai\main.cpp In file included from main.cpp

16 C:\Documents and Settings\rachida\Mes documents\essai\voiture.h `std::etat' has not been declared (j'avais mis directement etat mais le compilateur ne l'a pas reconnu)

16 C:\Documents and Settings\rachida\Mes documents\essai\voiture.h ISO C++ forbids declaration of `e' with no type

16 C:\Documents and Settings\rachida\Mes documents\essai\voiture.h ISO C++ forbids declaration of `e' with no type

15 C:\Documents and Settings\rachida\Mes documents\essai\main.cpp statement cannot resolve address of overloaded function

C:\Documents and Settings\rachida\Mes documents\essai\Makefile.win [Build Error] [main.o] Error 1

merci pour votre temps

mercredi 27 janvier 2010 à 20:58:39 | Re : aide pour un programme en c++ novice

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
Il y a beaucoup de petites erreurs. J'ai quasiment tout remis au propre.
Tout d'abord:
- N'utilise jamais using namespace std. Voir: [ Lien ]
- Pas besoin de cstdlib
- Pas besoin de system("pause")
- Généralement, on appelle les fichiers .cpp/.hpp ou .cc/.hh, mais le .h tout seul est réservé au fichier d'entête du C.
- string est dans iostream, donc pas besoin de l'inclure
- On met une majuscule au classe
- Les attributs sont différenciés grâce à un _

Voiture.hh
Code C/C++ :
#ifndef VOITURE_HH_
# define VOITURE_HH_

#include <iostream>

enum Etat
  {
    DISPO = 1,
    AFFECTE = 2,
    ACCIDENTE = 3,
    EN_PANNE = 4
  };

class Voiture
{
public:
  Voiture();
  Voiture(const std::string& m, Etat e, const std::string& mtr);
  ~Voiture();

  void setVoiture();
  void afficheStock() const;

private:
  std::string _marque, _matricule;
  Etat _status;
  static int compteur;
};
#endif


Voiture.cc
Code C/C++ :
#include "voiture.hh"
#include <iostream>

int Voiture::compteur = 0;

Voiture::Voiture()
{
  compteur++;
}

Voiture::~Voiture()
{
  compteur--;
}

Voiture::Voiture(const std::string& m, Etat e, const std::string& mtr)
  : _marque(m), _matricule(mtr), _status(e)
{
  compteur++;
}

void Voiture::setVoiture()
{
  std::cout << "Donnez la marque: " << std::endl;
  std::cin >> _marque;
  std::cout << "Donnez l'etat de la Voiture: " << std::endl;
  int tmp;
  std::cin >> tmp;
  _status = Etat(tmp);
  std::cout << "Donnez la matricule: " << std::endl;
  std::cin >> _matricule;
}

void Voiture::afficheStock() const
{
  std::cout << "La marque de la Voiture est: " << _marque << std::endl
	    << "L'état de la Voiture est: " << _status << std::endl
	    << "La matricule de la Voiture est: " << _matricule << std::endl
	    << "Le nombre de Voiture dans le stock est: " << compteur
	    << std::endl;
}


Collaborateur.hh
Code C/C++ :
#ifndef COLLABORATEUR_HH_
# define COLLABORATEUR_HH_

#include<iostream>

class Collaborateur
{
 public :
  bool _servi;

  Collaborateur();
  Collaborateur(const std::string& Nom,
			const std::string& Fonction,
			int Numero, bool droit);
  ~Collaborateur();

  void demandeCollaborateur();
  void affecter();

 private :
  std::string _nom;
  std::string _fonction;
  int _numero;
  bool _droit;

  static int compteur;
};
#endif


Collaborateur.cc
Code C/C++ :
#include "collaborateur.hh"
#include <iostream>

int Collaborateur::compteur = 0;

Collaborateur::Collaborateur()
{
  compteur++;
}

Collaborateur::~Collaborateur()
{
  compteur--;
}

Collaborateur::Collaborateur(const std::string& nom,
			     const std::string& fonction,
			     int numero, bool droit)
  : _nom(nom), _fonction(fonction), _numero(numero), _droit(droit)
{
  compteur++;
}

void Collaborateur::demandeCollaborateur()
{
  std::cout << "Donnez le nom: ";
  std::cin >> _nom;
  std::cout << "Donnez sa fonction: ";
  std::cin >> _fonction;
  std::cout << "Donnez son numéro: ";
  std::cin >> _numero;
  std::cout << "Est ce qu'il a droit a une voiture: ";
  std::cin >> _droit;
  _servi = false;
}

void Collaborateur::affecter()
{
// Pas compris ce que tu cherchais à faire, tu sembles mélanger
// la classe voiture et la classe collaborateur.
// J'ai donc tout mis en commentaire
//
//   if (_droit)
//   {
//     if (!_servi)
//     {
//       if (etat == DISPO)
//       {
// 	_etat=affecte;
// 	_servi = true;
// 	std::cout << "La voiture vous a été affecté " << std::endl;
//       }
//       else
// 	std::cout<<"La voiture n'est pas disponible" << std::endl;
//     }
//     else
//       std::cout<<"Vous avez déja une autre voiture" << std::endl;
//   }
//   else
//     std::cout<<"Vous n'avez pas le droit a une voiture" << std::endl;
}


main.cc
Code C/C++ :
#include "voiture.hh"
#include "collaborateur.hh"

int main()
{
  Voiture a;
  a.setVoiture();
  Collaborateur b;
  b.demandeCollaborateur();
  b.affecter();
  a.afficheStock();

  return 0;
}


_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
mercredi 27 janvier 2010 à 21:19:51 | Re : aide pour un programme en c++ novice

tooth

merci beaucoup pour l'aide CptPingu
pour ce que t'as mit en commentaire:
pour affecter une voiture il faut faire des testes sur des variables appartenant à la classe voiture et d'autres de la classe collaborateur, une variable bool droit qui définit si le collaborateur a droit à une voiture de fonction, et un test sur la voiture si elle est disponible ou pas (variable status de type enum etat), aussi sur la variable bool servi, qui verifie si le collaborateur n'a pas déjà une voiture de fonction, et les "else" pour donner un message pour la cause du refus, ou bien un message pour confirmer l'affectation
merci encore
mercredi 27 janvier 2010 à 21:24:43 | Re : aide pour un programme en c++ novice

CptPingu

Administrateur CodeS-SourceS
Alors il te faut un attribut de type "Voiture" dans ta classe "Collaborateur".
Tu affectes une voiture en fonction des critères que tu m'as décrit.

_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
mercredi 27 janvier 2010 à 21:34:21 | Re : aide pour un programme en c++ novice

tooth

comme ça

class Collaborateur
{
public :
bool _servi;

Collaborateur();
Collaborateur(const std::string& Nom,
const std::string& Fonction,
int Numero, bool droit);
~Collaborateur();

void demandeCollaborateur();
void affecter();
void voiture();
private :
std::string _nom;
std::string _fonction;
int _numero;
bool _droit;

static int compteur;
};
#endif
mercredi 27 janvier 2010 à 21:46:35 | Re : aide pour un programme en c++ novice

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
Pour confondre une méthode avec un attribut de classe, tu dois avoir de nombreuses lacunes :)
Je t'invite à regarder des tutoriaux, sur le site du zéro par exemple.

Code C/C++ :
private:
  Voiture _voiture;


_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
mercredi 27 janvier 2010 à 22:07:51 | Re : aide pour un programme en c++ novice

tooth

bon j'ai compiler et executer le prog:
il me demande de donner la marque et le status puis il sort du programme
mercredi 27 janvier 2010 à 22:13:34 | Re : aide pour un programme en c++ novice

tooth

comme j'ai dit dans mon premier poste j'ai jamais étudié le c++ avant, je suis en admission parallèle donc j'ai pas de pré-requis, c'est pour ça que j'aprécie bcp ton aide.
bon dans l'implémentation il y a du traitement por la variable tmp; est ce que c'est la cause de l'interruption du programme à l'exécution?
mercredi 27 janvier 2010 à 23:00:30 | Re : aide pour un programme en c++ novice

tooth

j'ai trouvé que pour l'etat il faut donne un chiffre qui correspond à dispo ou accidenté ect, mais apres il termine l'execution

1 2

Cette discussion est classée dans : include, cout, std, voiture, collaborateur


Répondre à ce message

Sujets en rapport avec ce message

fprintf de factorielles ! [ par Xs ] voila, je comprend pas pourquoi le prog me met une erreur lors de l'execution alors que le compilateur et le linker n'ont rien vu d'anormal !#include Dans le genre prenant........ [ par Xs ] oui !c 'est trés chiant !j'explique mon pb : j'ai un code source, fais par moi-meme, et dedans, je veux que l'on saisisse des renseignement comme le l Problème avec une boucle while [ par arconius ] voilà j'ai fait un prog où l'on tire des dés mais j'ai un problème avec ma boucle while car au lieu de me donner un chiffre aléatoire à chaque fois il pourquoi aprés avoir fait une boucle mon textbackground prend tout l'écran ? [ par arconius ] Voila mon prog et après avoir fait une boucle mon text background prend tout l'écran si quelqu'un à une solution se serait sympa merci d'avance#includ une fiche de renseignement [ par cabarrus ] je cherche à faire un programme qui demande des renseignements pour pouvoir ensuite les affiché comme une fiche d'identité!!!voici monprogramme mais m Les nombres aléatoires en C++ (Visual C++ 6.0) [ par Yabo ] Tout d'abord voilà le code :CODE #include #include #include #include using namespace std;void animstartscreen() { int n incompatibilité 'std' et 'friend' [ par cabieces ] CABECOUJ'ai définit une fonction amie, celle ci doit donc pouvoir accéder aux champs privée de la classe. Ceci marche trés bien sauf quand la classe u recherche et comparaison dans fichier [ par rissorg ] J'ai un probleme de recherche et de comparaison entre une string rentree au clavier et des donnees sur un fichier texte.Voici mon source:#include #inc Passer un algo iteratif en recursif [ par Peavy57 ] Selon vous est ce possible de mettre cela en recursif ? Code: #include #include #include #include void sequencesSerie4(int seq[],int seqSize, int Probleme avec certains #include ... [ par yudi ] Hello !Voila, cela fait plusieurs sources (récupérées sur le site) ke j'essaye de compiler sans succes, visiblement car la bibliotheque alakelle fait


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,396 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales