Rechercher : dans
Par :

Tableau d'objet en c++

Dernière réponse le 2 aoû 2008 à 13:39:26 yeuxdelynx, le 21 jun 2008 à 08:31:24 
 Signaler ce message aux modérateurs

Bonjour,
je dois faire un programme de gestion d'un parc en c++,alors pr avoir une base de données j'ai utilisé un tableau d'objet initialisé par les informations necessaires, mais le problème c'est que j'arrive pas à accéder aux données qui sont des chaines de caractères alors que pour les entiers et les booleens ça marche. Si quelqu'un à une idée comment utiliser les tableaux d'objets, ou si j'ai commis une erreurs, j'en serai reconnaissante.

bon voila comment j'ai initialisé mon tableau:

scooter scoot1("YAMAHA","YAM80",1410,true);
scooter scoot2("PIAGGIO","PIA125",1220,false);
scooter scoot3("MBK","MBK250",450,false);
scooter scoot4("GILERA","GIL80",740,true);
scooter scoot5("HONDA","HON250",1800,true);
scooter scoot6("SUZUKI","SUZ80",50,true);

scooter database[6]={scoot1,scoot2,scoot3,scoot4,scoot5,scoot6};

et voilà une fonction membre ou je fait appel aux membres d'un objet:

void scooter::rent(char id[])
{
int i=0;
do {

strcmp(id,database[i].num_id);
i++;
}while(strcmp(id,database[i].num_id)&&i<6);

if(strcmp(id,database[i].num_id))

cout<<"ce num‚ro ne correspond à aucun scooter\n";

else
{
if(database[i].etat)

cout<<"Desole mais le scooter est d‚ja lou‚\n";
else
{ cout<<"Félicitation, le scooter est disponible\n";
database[i].etat=true; }

}

}

merci d'avance.

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « Tableau d'objet en c++ » dans :
Trier un tableau sans utiliser la fonction sort VoirTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle...
Les files en langage C VoirLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un...
Décaler les éléments d'un tableau (Rotation) -Récursivité- VoirVoici une procédure récursive qui permet de décaler tous les éléments d’un tableau d’une position à droite à partir de la position p Procedure Decaler (Var t : Tab; p, n : integer); Begin If p
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Les constructeurs et les destructeurs en langage C++ VoirLa notion de constructeur Le constructeur est la fonction membre appelée automatiquement lors de la création d'un objet (en statique ou en dynamique). Cette fonction membre est la première fonction membre à être exécutée, il s'agit donc d'une...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...

1

jjsteing, le 21 jun 2008 à 08:59:36

Euh.. il manquerait pas un bout de ton prog la...

database[i].num_id il sort d ou le num_id ???

Répondre à jjsteing

2

yeuxdelynx, le 21 jun 2008 à 09:08:31

Désolée j'ai oublié de mentionner que l'utilisateur doit entrer le numéro du scooteur qu'il désir, et selon ce numéro on vérifi les autres paramètres. dans cette fonction membre, l'utilisatuer désir louer un scooter dont il a entre son numéro d'identification donc je doit vérifier s'il est disponible ou pas. bref le num_id c'est membre de la classe désignant le numéro du scooter.

Répondre à yeuxdelynx

3

yeuxdelynx, le 21 jun 2008 à 09:10:30

Bon voila la class que j'ai utilisé:
class scooter
{ char model[12];
char num_id[8];
int km;
bool etat;
public:
scooter(){};
scooter(char m[],char n[] , int k ,bool e )
{ model[12]=m[12]; num_id[8]=n[8]; km=k;etat=e;
};
void menu();
void rent(char id[]);
void back(char id[]);
void stat(char id[]);
void parc();
void quit();
~scooter() {};
};

Répondre à yeuxdelynx

4

Solaris, le 2 aoû 2008 à 12:39:19

Sais-tu que l'on peut appeler explicitement le constructeur d'une classe? exemple, pour la création de ton tableau, tu peu remplacer

scooter scoot1("YAMAHA","YAM80",1410,true);
scooter scoot2("PIAGGIO","PIA125",1220,false);
scooter scoot3("MBK","MBK250",450,false);
scooter scoot4("GILERA","GIL80",740,true);
scooter scoot5("HONDA","HON250",1800,true);
scooter scoot6("SUZUKI","SUZ80",50,true);

scooter database[6]={scoot1,scoot2,scoot3,scoot4,scoot5,scoot6};


par
scooter_database[6]={scooter("YAMAHA","YAM80",1410,true),scooter("YAMAHA","YAM80",1410,true),scooter("YAMAHA","YAM80",1410,true),scooter("YAMAHA","YAM80",1410,true),scooter("YAMAHA","YAM80",1410,true),scooter("YAMAHA","YAM80",1410,true)};

he, juste au dessu le _ remplace un espace qui ne voulait pas s'afficher

en tout cas moi je trouve cette syntaxemeilleur, parce qu'avec la tienne tu six objet scouteurs et un tableaux d'objets scooter, mais ton tableaux ne contient pas les objets scoot1 à 6 mais des copies, tu a donc douze objets scooters alors que tu n'en veut que six je suppose, alors qu'avec la syntaxe que je t'ai donné, tu a seulement 6 objets scooters rangés dans un tableaux,
mais pour le reste je ne peut pas t'aider

Répondre à Solaris

5

 mich62120, le 2 aoû 2008 à 13:39:26

Salut,

Je pense que tu dois revoir ton traitement des char[]:

num_id[8]=n[8  //tu ne copie un tableau dans l'autre mais tu mets la case 8 de id 
dans la case 8 de num_id.]


Dans le main quand tu mets à jour id[] il faut le faire avec gets(id); //renseigne toi il me semble que c'est cette fonction là.
Et dans ton constructeur:

int i=0;

do{

num_id[i]=id[i];  //on copie

}while(id[i] != '\0')  //tant que différent que le caractère fin de phrase


Mich
"Lu et à prouver"    Mich

Répondre à mich62120