0% ont trouvé ce document utile (0 vote)
17 vues6 pages

Code

Le document présente un programme en C pour la gestion d'un parc de véhicules, incluant la saisie des informations sur chaque véhicule, le calcul des revenus et des bénéfices, ainsi que l'analyse de performance. Il définit une structure 'Vehicule' et plusieurs fonctions pour gérer les opérations liées aux véhicules, telles que la saisie, l'affichage et le tri par bénéfice. Le programme principal permet à l'utilisateur de saisir un nombre de véhicules, de calculer les bénéfices et d'afficher les résultats.

Transféré par

glodiem4
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues6 pages

Code

Le document présente un programme en C pour la gestion d'un parc de véhicules, incluant la saisie des informations sur chaque véhicule, le calcul des revenus et des bénéfices, ainsi que l'analyse de performance. Il définit une structure 'Vehicule' et plusieurs fonctions pour gérer les opérations liées aux véhicules, telles que la saisie, l'affichage et le tri par bénéfice. Le programme principal permet à l'utilisateur de saisir un nombre de véhicules, de calculer les bénéfices et d'afficher les résultats.

Transféré par

glodiem4
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Nom : Eyengola

Postnom : Bile
Prenom : Elsie
Module d’enseignement : Projet Programmation C
Niveau : Licence GL1-1/ Licence BI1-1

#include <stdio.h>

#include <string.h>

#include <stdlib.h> // Ajouté pour bonnes pratiques

#define MAX 100

// 1. Définition de la structure Vehicule

typedef struct { char

immatriculation[20]; char

marque[30]; int annee; float

prixParJour; int joursLoues; float

coutMaintenance;

float benefice;

} Vehicule;

// 2. Fonction de saisie d'un véhicule avec contrôle AMÉLIORÉ

Vehicule Saisie_Vehicule() {

Vehicule v;

printf("\n--- Saisie d'un véhicule ---\n");

printf("Immatriculation : "); scanf("%19s",

[Link]); // ← CORRIGÉ : limite buffer

printf("Marque : ");
scanf("%29s", [Link]); // ← CORRIGÉ : limite buffer

printf("Année de mise en service (1900-2026) : "); scanf("%d",

&[Link]); while ([Link] < 1900 || [Link] > 2026) { // ← AJOUTÉ :

contrôle année printf("Année invalide (1900-2026) : "); scanf("%d",

&[Link]);

do { printf("Prix de location par jour

(>0) : "); scanf("%f", &[Link]);

} while ([Link] <= 0);

do { printf("Nombre de jours loués (0-

365) : "); scanf("%d", &[Link]);

} while ([Link] < 0 || [Link] > 365);

do { printf("Coût annuel de maintenance

(>0) : "); scanf("%f", &[Link]);

} while ([Link] <= 0);

[Link] = 0;

return v;

// 3. Procédure de saisie de plusieurs véhicules void

Saisie_Vehicules(Vehicule tab[], int n) {

for (int i = 0; i < n; i++) {

printf("\nVéhicule %d :\n", i + 1);

tab[i] = Saisie_Vehicule();

}
// 4. Fonction calcul du revenu d'un véhicule

float Revenu_Vehicule(Vehicule v)

{ return [Link] * [Link];

// 5. Fonction calcul du bénéfice d'un véhicule float

Benefice_Vehicule(Vehicule v) { return

Revenu_Vehicule(v) - [Link];

// 6. Procédure de calcul des bénéfices void

Calcul_Benefices(Vehicule tab[], int n) {

for (int i = 0; i < n; i++) {

tab[i].benefice = Benefice_Vehicule(tab[i]);

// 7. Fonction bénéfice total float

Benefice_Total(Vehicule tab[], int n)

{ float total = 0; for (int i = 0; i < n; i++)

{ total += tab[i].benefice;

return total;

// Fonction utilitaire pour échanger deux véhicules void

Echanger(Vehicule *a, Vehicule *b) {

Vehicule temp = *a;

*a = *b;

*b = temp;
}

// 8. Analyse de performance void

Analyse_Performance(Vehicule tab[], int n) { //

Tri par bénéfice décroissant (tri à bulles) for

(int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i -

1; j++) { if (tab[j].benefice < tab[j +

1].benefice) {

Echanger(&tab[j], &tab[j + 1]);

printf("\n--- Analyse de Performance ---\n"); printf("Véhicule le

plus rentable : %s (%s) - Bénéfice : %.2f\n",

tab[0].immatriculation, tab[0].marque, tab[0].benefice);

printf("Véhicule le moins rentable : %s (%s) - Bénéfice : %.2f\n",

tab[n - 1].immatriculation, tab[n - 1].marque, tab[n - 1].benefice);

// 9. Procédure d'affichage d'un véhicule void

Affiche_Vehicule(Vehicule v) { printf("\

nImmatriculation : %s", [Link]);

printf("\nMarque : %s", [Link]); printf("\

nAnnée : %d", [Link]); printf("\nPrix/Jour : %.2f",

[Link]); printf("\nJours loués : %d",

[Link]); printf("\nCoût maintenance : %.2f",

[Link]); printf("\nRevenu annuel :

%.2f", Revenu_Vehicule(v)); printf("\nBénéfice

annuel : %.2f\n", [Link]);

}
// Affichage de tous les véhicules void Affiche_Tous(Vehicule tab[], int n) { printf("\

n===== LISTE DES VEHICULES (classés par bénéfice décroissant) =====\n");

for (int i = 0; i < n; i++) { printf("\

n--- Véhicule %d ---", i + 1);

Affiche_Vehicule(tab[i]);

// 10. Programme principal

int main() {

Vehicule parc[MAX];

int n;

printf("=== GESTION PARC VEHICULES ===\n");

printf("Nombre de véhicules (1-%d) : ", MAX); scanf("%d",

&n);

while (n <= 0 || n > MAX)

{ printf("Nombre invalide (1-%d) : ",

MAX); scanf("%d", &n);

// Saisie

Saisie_Vehicules(parc, n);

// Calcul des bénéfices

Calcul_Benefices(parc, n);
// Affichage bénéfice total float total = Benefice_Total(parc,

n); printf("\n*** Bénéfice total de l'entreprise : %.2f ***\n",

total);

// Analyse performance (tri + identification)

Analyse_Performance(parc, n);

// Affichage final après tri

Affiche_Tous(parc, n);

printf("\n=== FIN DU PROGRAMME ===\n");

return 0;

Vous aimerez peut-être aussi