Vous êtes sur la page 1sur 14

Projet 

ASD :Gestion de location des voitures

Etudiantes :KhouloudTiouajni et DouaaZaoui

Enseignante :InesWachem

Voiture= Enregistrement

- modèle : chaine de caractères. 

- numéro_immatriculation : entier.

- kilométrage : entier.

- état : entier.

Fin enregistrement.

client= Enregistrement

- nom : chaine de caractères 

- prénom : chaine de caractères 

- CIN : entier

- numéro_de_téléphone : entier

-numéro_immatriculation :tableau_immatriculation

Fin enregistrement.

tableau_immatriculation =enregistrement

nombre :entier.

tableau_voiture :tableau de [1..50]d’entiers .

fin enregistrement.

Procédure saisir_voiture (var v : voiture)

Début

Lire (v. Modéle)

Repeter

Lire (v.numéro_immatriculation)
Jusqu’à  (v.numero_immatriculation < 0 )

Lire (v. Kilométrage)

Répéter

Lire (v. Etat)

Jusqu’à ( (v.etat=0) ou (v.etat=1) )

Fin.

Procédure afficher_voiture (v :voiture)

Debut

Ecrire(v. Modéle)

Ecrire(v.numéro_immatriculation)

Ecrire(v. Kilométrage)

Ecrire(v. Etat)

Fin

Procédure saisir_client (var c :client)

Début

Lire(c. nom) 

Lire(c.prenom ) 

Lire(c. cin)

Lire(c.num_tel)

Lire(numéro_immatriculation.nombre)

Pour i de 1 à (numéro_immatriculation.nombre) faire

Lire (numéro_immatriculation.tableau_voiture[i])

Fin pour

Fin

Procédure afficher_client (c :client)

Debut

Ecrire(c.nom)
Ecrire(c.prenom)

Ecrire(c.cin)

Ecrire(c.num_tel)

Ecrire (c.numéro_immatriculation.nombre)

Pour i de 1 à (c.numéro_immatriculation.nombre) faire

Ecrire (c.numéro_immatriculation.tableau_voiture[i])

Fin pour

Fin

tabv=tableau[1..50]de voitures.

Procedure remplir_tv(var tv :tabv)

Variable i :entier 

Debut

Pour i de 1 à nv faire

saisir_voiture(tv[i])

fin pour

fin

procedure afficher_tv(tv :tabv)

variable i:entier

debut

pour i de 1 à nv faire

afficher_voiture(tv[i])

fin pour

fin

tabc= tableau [1..50]de clients

Procedure remplir_tc(var tc :tabc)

Variable i:entier
Debut

Pour i de 1 à nc faire

saisir_client(tc[i])

fin pour

fin

procedure afficher_tc(tc :tabc)

variable i:entier

debut

pour i de 1 à nc faire

afficher_client(tc[i])

fin pour

fin

fonction seek_personne(tc:tabc , nc :entier , cin  : entier) :entier

variable i :entier

debut

i=1

tant que ( (i<=nc) && ( (tc[i].cin) <> cin) ) faire

i=i+1

fin tant que

si ( i<nc ) alors

seek_personne=i

sinon

seek_personne=-1

fin si

fin
fonction seek_voiture(tv:tabv , nv :entier , numero : entier) :entier

variable i :entier

debut

i=1

tant que ( (i<nv) && ( (tv[i].numero_immatriculation) <> numero) ) faire

i=i+1

fin tant que

si ( i<nv ) alos

seek_voiture=i

sinon

seek_voiture=-1

fin si

fin

fonction seek_voiture_client( cl : clien ,numero:entier) :entier

variable i ,nb:entier

debut

i=1

nb=cl.numéro_immatriculation.nombre

Tant que ( (i <= nb ) && ( (cl.numéro_immatriculation.tableau_voiture[i]) <> numero)faire

i=i+1

Fin tant que

Si ( i<= nb) alors

Seek_voiture_client=i

Sinon

Seek_voiture_client=-1

Fin si .

Fin
Procedure delete_voiture_client(pos : entier, var cl :client,var tc :tabc,var nc :entier )

Variable i  , nb , ncc , j:entier

Debut

Nb=cl.numéro_immatriculation.nombre

Ncc=cl.numéro_immatriculation.cin

Si ( nb=1 )alors

J=seek_client(tc,nc,ncc)

Pour i de j à ( nc-1 ) faire

tabc[i]= tabc[i+1]

Fin pour

Nc=nc-1

Sinon

Pour i de pos à (nb-1) faire

(cl.numéro_immatriculation.tableau_voiture[i])=(cl.numéro_immatriculation.tableau_voiture[i+1])

Fin pour

cl.numéro_immatriculation.numero = cl.numéro_immatriculation.numero - 1

Fin si

Fin
Procedure choix1(var numero ,var CIN , var tv, var tc,var nc )

Variable pos , y  , ncc:entier

C :client

Debut

Ecrire(« donner le numéro d’immatriculation de la voiture à louer »)

Lire(numero)

Pos=seek_voiture(tv,nv,numero)

Si ( pos = -1 ) alors

Ecrire(« erreur »)

Sinon

Si ( tv[pos].état = 1 )alors

Ecrire(« la voiture est déjà en location »)

Sinon

Tv[pos].état=1

Ecrire(« donneer votre numero CIN »)

Lire(CIN)

Y=seek_client(tc,nc,CIN)

Si (y=-1) alors

Nc=nc+1

Tc[nc]=saisir_client(c)

sinon

c=tc[y]

(c.numero_immatriculation.nombre ) = (c.numero_immatriculation.nombre) +1

Ncc= (c.numero_immatriculation.nombre)
c.numero_immatriculation.tableau.voiture[ncc]=numero

fin si

fin si

fin si_

Fin

Fonction seek_client_numero(tc :tabc,nc :entier,numero :entier)

Variable i,j,nb :entier

Debut

Pour i de 1 à nc faire

Nb=tc[i].numero_immatriculation.numero

Pour j de 1 à nb faire

Si ( tc[i].numero_immatriculation.tableau_voiture[j] = numero ) alors

Seek_client_numero = i

Fin si

Fin pour

Fin pour

fin

Procedure choix2(

Variable

Debut

Ecrire(« donner le numero d’immatriculation de la voiture à retourner »)

Lire(numero)

Ecrire (« donner votre numero CIN »)

Lire(CIN)

Y=seek_voiture(tv,nv,numero)

Z=seek_client(tc,nc,CIN)

Si ( y= -1 ) alors
Ecrire(« erreur »)

Sinon

Si ( z <> -1) alos

Ecrire(« donner le nombre de kilométres effectués « )

Lire(NKM)

Tv[y].kilométrage= Tv[y].kilométrage + NKM

Tv[y].etat=0

X=seek_voiture_client(cl,numero)

Delete_voiture_client(cl,x)

Sinon

Ecrire(« client inexistant »)

R=seek_client_numero(tc ,nc,numero)

Ecrire(« votre numero CIN est : « , tc[R].CIN)

Fin si

Fin si

Fin si

fin

procedure choix3 (tv :tabv , nv :entier, var numero : entier)

variable i, c :entier

debut

ecrire( « donner numero d’immatriculation «  )

lire(numero)

c=seek_voiture(tv,nv,numero)

si ( tv[c].etat=0 ) alors

afficher_voiture( tv[c] )

sinon
ecrire( « une erreur est signalée «  )

fin si

fin

procedure choix4( tv :tabv, nv : entier)

variable i,nb,nc,m :entier

debut

ecrire( « le nombre total de voiture est : «  , nv )

nb=0 

nc=0 

m=0

pour i de 1 a nv faire

si ( tv[i].etat=1) alors

nb=nb+1

ecrire(«  le numero de matriculation est : «  , tv[i].numero_immatriculation )

fin si

fin pour

ecrire( «  le nombre de voitures en location est : «  ,nb )

pour i de 1 a nv faire

si ( tv[i].etat=0) alors

nc=nc+1

ecrire(«  le numero de matriculation est : «  , tv[i].numero_immatriculation )

fin si

m=m+tv[i].kilometrage

fin pour

ecrire( ‘’ le nombre de voitures disponible est : ‘’ ,nc )

ecrire( ‘’le kilometrage moyen de l’ensemble des voitures ‘’ , m/nv)

fin
liste :^nœud

nœud :enregistrement

val :voiture

suiv :liste

fin enregistrement

procedure choix5(nv :entier ,var L :liste)

variable p :liste

i :entier

debut

pour i de 1 a nv faire

si (tv[i].etat = 0 ) alors

créer(p)

p^.val :=tv[i]

p^.suiv :=L

L :=p

Fin si

fin pour

Fin
Procedure choix6 (nv :entier ,var L :liste)

variable p :liste

i :entier

debut

pour i de 1 a nv faire

si (tv[i].etat = 1 ) alors

créer(p)

p^.val :=tv[i]

p^.suiv :=L

L :=p

Fin si

Fin pour

fin

******** programme principal********

Algorithme menu

Variable

r,nv,nc :entier

Debut

Ecrire (« donner nombre des voitures « )

Lire(nv)

Ecrire (« donner nombre des clients")

Lire(nc)

Remplir(tv)
Afficher(tv)

Remplir (tc)

Afficher(tc)

Répéter

Ecrire(‘’----------MENU----------‘‘ )

Ecrire( ‘ ‘Donner votre choix’’ )

Ecrire( ‘’1 : Location d’une voiture’’ ) 

Ecrire( ‘’2 : Retour d’une voiture’’ )

Ecrire( ‘‘3 : Etat d’une voiture’’ )

Ecrire( ‘‘4 : Etat du parc de voitures’’ )

Ecrire( ‘‘5 : Stockage et affichage des voitures disponible’’ )

Ecrire( ‘‘6 : Stockage des voitures en location’’ )

Ecrire( ‘’0 : Fin du programme ‘’)

Lire (r)

Jusqu’à (r=0)

Si (r=1)

//choix1

//

Si (r=2)

//choix2

//

Si (r=3)

//choix3

choix3 (tv , nv , numero)

//
Si(r=4)

//choix4

choix4( tv , nv )

//

Si(r=5)

//choix5

Ecrire(« les voitures disponibles sont « ,choix5(nv,L))

//

Si(r=6)

//choix6

Écrire (« les voitures en locations sont",choix6(nv,L))

//

Si(r=0)

//

Ecrire(‘’ Fin du programme’’ )

//

Vous aimerez peut-être aussi