Tableau d'objet en c++
yeuxdelynx
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
mich62120 Messages postés 631 Date d'inscription Statut Membre Dernière intervention -
mich62120 Messages postés 631 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- Tableau d'objet en c++
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
5 réponses
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.
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() {};
};
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() {};
};
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Je pense que tu dois revoir ton traitement des char[]:
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:
Mich
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