| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 
 | #include <BasicConsole.h>
#include "vehicule3.h"
#include "chaine.h"
 
 
Vehicule3::Vehicule3()
:NombreDePlace(0)
{
}
 
Vehicule3::~Vehicule3()
{
}
 
Vehicule3::Vehicule3(const CChaine& UneImmatriculation, short nombreDePlaces)
:m_Immatriculation(UneImmatriculation), m_NombreDePlaces(UnShort)
{
}
 
Vehicule3::Vehicule3(const Vehicule3& Source) //constructeur par copie de CVehicule3
:m_Immatriculation(Source.m_Immatriculation),m_NombreDePlaces(Source.m_NombreDePlaces)
{
}
 
CVoiture::CVoiture()
:m_VTM(0.0)
{
}
 
CVoiture::CVoiture(const CVoiture& Source)
:Vehicule3(Source)
{
}
 
 
CVoiture::~CVoiture()
{
}
 
CTabVoitures::CTabVoitures()
:m_Nombre(0),m_Tableau(NULL)
{
}
 
CTabVoitures::~CTabVoitures()
{
}
 
CLeTout::CLeTout()
{
 
}
 
CLeTout::~CLeTout()
{
 
}
 
bool	CLeTout::Charger(const char* NomFichier)
{
 
	CChargeurFichierTexte	Chargeur;
 
 
	return Chargeur.Charger(NomFichier,'\t',CLeTout::FctnTraiterLigne,this);
}
 
bool CLeTout::FctnTraiterLigne(const CChargeurFichierTexte& CC, void* Contexte)
{
	return ((CLeTout*)Contexte)->TraiterLigne(CC);
}
 
bool CLeTout::TraiterLigne(const CChargeurFichierTexte& CC)
{
	if (strlen(CC.Champs(0)) == 1) switch (CC.Champs(0)[0])
	{
		case 'R':
			if (CC.NombreChamps() == 4) m_TV.Ajouter(CVoiture(CC.Champs(1),CC.Champs(2)),CC.Champs(3),CC.Champs(4));
			break;
	}
	return true;
}
 
 
bool CTabVoitures::Ajouter(const CVoiture& Modele)
{
	if (!Modele.EstValide()) return false;
	//if (Indice(Modele.Nom()) >= 0) return true;
	CVoiture* AAjouter = new CVoiture(Modele);
	if (AAjouter == NULL) return false;
	void* Nouveau = realloc(m_Tableau,(m_Nombre+1)*sizeof(CVoiture*));
	if (Nouveau == NULL)
	{
		delete AAjouter;
		return false;
	}
	m_Tableau = (CVoiture**)Nouveau;
	m_Tableau[m_Nombre] = AAjouter;
	m_Nombre++;
	return true;
}
 
bool CVoiture::EstValide() const
{
	return (Vehicule3::EstValide()) && (m_VTM > 0);
}
 
bool Vehicule3::EstValide() const
{
	return !m_Immatriculation.EstVide();
} | 
Partager