Gestion de location des voitures en C
Objectifs:
- Manipuler les structures de données en langage C,
- Manipuler les tableaux dynamiques,
- Manipuler les fichiers,
- Utiliser l'allocation dynamique de la mémoire.
Énoncé:
L'objectif de cet exercice est de créer un programme en langage C pour gérer le parc de voitures d'une agence de location. Une voiture est caractérisée par les éléments suivants:
- le modèle de la voiture,
- son n° d’immatriculation,
- son kilométrage,
- son état (disponible ou en cours de location).
Écrire un programme présentant le menu ci-dessous:
------------------MENU-------------- 1: Louer une voiture 2: Retour d'une voiture 3: Etat d'une voiture 4: Etat du parc de voitures 5: Sauvegarder l’état du parc 0: Fin du programme
Choix 1 : Le programme demande le n° d’immatriculation de la voiture à louer. Si la voiture n'existe pas, le programme signale une erreur; s'elle est déjà loué, le programme indique qu'elle est déjà en location sinon la voiture est marquée comme étant en location.
Choix 2 : Le programme demande le n° d’immatriculation de la voiture à retourner. Si la voiture n'existe pas, le programme signale une erreur; si la voiture n'était pas marquée comme étant en location, le programme le stipule sinon le programme demande le nombre de kilomètres effectués et les rajoute au kilométrage de la voiture. La voiture est alors marquée comme étant disponible.
Choix 3 : Le programme demande le n° d'immatriculation de la voiture dont on désire connaitre l'état. Si la voiture n'existe pas dans le parc, une erreur est signalée sinon son modèle, son n° d'immatriculation, son kilométrage et son état de location sont affichés.
Choix 4 : Le programme affiche un état résumé de l'ensemble du parc de voitures, c'est-à-dire :
- le nombre total de voitures,
- le nombre de voitures en location et leur n° d'immatriculation,
- le nombre de voitures disponible et leur n° d'immatriculation,
- le kilométrage moyen de l'ensemble des voitures.
Choix 5 : Le programme stocke l’état de parc de voitures affichée dans le choix 4 dans un fichier binaire, le nom de fichier sera lu au clavier.
Après l'exécution d'une de ces quatre options, le programme réaffiche le menu.
Travail demandé :
Chaque option du menu devra être implémentée sous la forme d'une fonction séparée de façon à faciliter l'écriture du programme (Vous pouvez changer les prototypes proposés ci-dessous).
- Définir la structure Voiture.
- Créer une fonction permettant de créer le parc de n voitures, par la suite cette fonction sera appelée au début de programme :
void init (Voiture * voitures, int n)
- Créer une fonction permettant de louer une voiture (Voir Choix 1):
int louer (char * matricule, Voiture *voitures, int n)
- Créer une fonction permettant le retour d’une voiture (Voir Choix 2) :
int retour (char * matricule, Voiture* voitures, int n)
- Créer une fonction permettant de renvoyer l’état d’une voiture (Voir choix 3) :
int etat (char * matricule, Voiture* voitures, int n)
- Créer une fonction permettant d’afficher l’état de parc de voitures (Voir choix 4) :
void etatParc (Voiture* voitures, int n)
- Créer une fonction permettant de sauvegarder l’état de parc de voitures dans un fichier binaire (Voir choix 5) :
void save (char * fichier, Voiture* voitures, int n)
- Créer le programme principal (main).