j3r3mux Voir le profil de j3r3mux
Posté le 8 mai 2012 à 20:41:39 Avertir un administrateur
Sinon tu sais ce qu'est une enum en c ? Marque != char *
Pas plus que ce que j'ai dans mon cours.
Code :
- include <stdio.h>
- include <stdlib.h>
- define MAX_VEHICULE 12
- define MAX_WAGON 20
typedef enum {ALFA_ROMEO, AUDI, BMW, CITROEN, FORD, MERCEDES, OPEL, PEUGEOT, RENAULT, SEAT, VOLKSWAGEN, VOLVO} Marque;
typedef struct
{ char genre[12];
char immatriculation[11];
Marque marque;
char modele[21];
int puissance;
int portes;
char couleur[11];
int annee;
} Veh;
typedef struct
{ Veh *marchandise;
} Wag;
typedef struct
{ Veh *wagon;
} Tra;
void saisie_veh(Veh *vehicule)
{ printf("\nVeuillez entrer le genre du vehicule (voiture, camionnette ou moto) :");
scanf("%s", (*vehicule).genre);
printf("\nVeuillez entrer l'immatriculation du vehicule :");
scanf("%s", (*vehicule).immatriculation);
printf("\nVeuillez entrer la marque du vehicule");
printf("\nLes marques disponibles sont : ALFA_ROMEO, AUDI, BMW, CITROEN, FORD, MERCEDES, OPEL, PEUGEOT, RENAULT, SEAT, VOLKSWAGEN, VOLVO :");
scanf("%s", (*vehicule).marque);
printf("\nVeuillez entrer le modele du vehicule :");
scanf("%s", (*vehicule).modele);
printf("\nVeuillez entrer la puissance du vehicule:");
scanf("%d", (*vehicule).puissance);
if(((*vehicule).genre)!="moto")
{ printf("\nVeuillez entrer le nombre de portes du vehicule :");
scanf("%d", (*vehicule).portes);
}
printf("\nVeuillez entrer la couleur du vehicule :");
scanf("%s", (*vehicule).couleur);
printf("\nVeuillez entrer l'annee du vehicule :");
scanf("%d", (*vehicule).annee);
}
void saisie_wag(Wag *wagon, char nb_wagon)
{ char i;
char nb_vehicule;
do
{
printf("Veuillez entrer le nombre de vehicule pour le wagon %d (entre 1 et %d):", nb_wagon, MAX_VEHICULE);
scanf("%d", &nb_vehicule);
}
while((nb_vehicule<0)&&(nb_vehicule>MAX_VEHICULE+
1));
(*wagon).marchandise=(Veh*)malloc(sizeof(Veh)*nb_
vehicule);
for(i=0; i<nb_vehicule; i++)
{
saisie_veh(&((*wagon).marchandise[i]));
}
free((*wagon).marchandise);
}
void saisie_tra(Tra *train)
{ char i;
char nb_wagon;
do
{
printf("Veuillez entrer le nombre de wagon (entre 1 et %d):", MAX_WAGON);
scanf("%d", &nb_wagon);
}
while((nb_wagon<0)&&(nb_wagon>MAX_VEHICULE+1));
(*train).wagon=(Wag*)malloc(sizeof(Wag)*nb_wagon)
;
for(i=0; i<nb_wagon; i++)
{
saisie_wag(&((*train).wagon[i]), nb_wagon);
}
free((*train).wagon);
}
void main()
{
Tra train_de_marchandise;
saisie_tra(&train_de_marchandise);
}