Tableau d'objet en c++

yeuxdelynx Messages postés 8 Statut Membre -  
mich62120 Messages postés 636 Statut Membre -
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.
A voir également:

5 réponses

jjsteing Messages postés 1803 Statut Contributeur 181
 
Euh.. il manquerait pas un bout de ton prog la...

database[i].num_id il sort d ou le num_id ???
0
yeuxdelynx Messages postés 8 Statut Membre 1
 
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.
0
yeuxdelynx Messages postés 8 Statut Membre 1
 
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() {};
};
0
Solaris
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mich62120 Messages postés 636 Statut Membre 6
 
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
0