Tableau d'objet en c++

Fermé
yeuxdelynx Messages postés 8 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 2 juin 2009 - 21 juin 2008 à 08:31
mich62120 Messages postés 631 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 - 2 août 2008 à 13:39
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.

5 réponses

jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
21 juin 2008 à 08:59
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 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 2 juin 2009 1
21 juin 2008 à 09:08
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 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 2 juin 2009 1
21 juin 2008 à 09:10
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
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 631 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 6
2 août 2008 à 13:39
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