Vous êtes sur la page 1sur 5

Algorithme Gestion_de_vote

Types:

T_candidats=Enregistrement
Nom_complet:Chaine de caractere;
Vote:entier;
Fin
T_Tablo:Tableau[3]:T_candidats;

Variables

Candidats:T_tablo;
Password:chane de caractre;
Aj :boolen;
// Tester si la liste est deja rempli par des candidats
Option_a,Option_g:chaine de caractere;

Procdure Menu_g()

Dbut
crire(choisir loption souhaite);
crire(1/admin);
crire(2/Voter);
crire(0/Quitter);
Finprocdure
Procdure Menu_g2(Opt_G:chaine de caractere par adresse)

Dbut
Menu_g();
Repeter
lire(Opt_G);
si (Opt_G!=1 et Opt_G!=0 et Opt_G!=2 ) alors
crire(Option introuvable.Ressayez);
Finsi
jusqua ( Opt_G=1 ou Opt_G=2 ou Opt_G=0 )
FinProcdure

Procdure Menu_Admin()

Dbut
crire(session admin);
crire(A/ajouter les candidats);
crire (B/Initialiser le vote);
crire(C/finaliser le vote et afficher le rsultat);
crire(D/Changer Mot de passe);
crire(0/ Retour);
crire(00/Quitter);
Finprocdure

Procdure Menu_Admin2(Opt_A:Chaine de caractere par adresse)

Dbut
Menu_Admin();
Repeter
lire(Opt_A)::
Si ( Opt_A!=A Et Opt_A!=B Et Opt_A!=C Et Opt_A!=D Et Opt_A!=0 Et
Opt_A!=00) alors
crire(Vous avez donn une option invalide. Ressayez);
Finsi
jusqua ( Opt_A=A ou Opt_A=B ou Opt_A=C ou Opt_A=D ou Opt_A=0 ou
Opt_A=00 )
Finprocdure

Procdure Menu_vote(L:T_Tablo par adresse)


Variable i:entier

Dbut
Repeter
crire("Veuillez choisir le candidat que vous voulez");
Pour i allant de 0 2 faire
crire(i+1, ") ",L[i].Nom_complet");
Finpour
lire(i);
si i=< 0 ou i>= 4 alors
crire("Vous avez vot pour un candidat inexistant. Ressayez noveau");
Finsi
Jusqu'a (i>0 et i<4)
L[i-1].vote<-L[i-1].vote+1
FinProcdure

Procdure Ajouter(L:T_Tablo Par adresse)


Variable i:entier;
test:caractre

Dbut
test Y
crire("Vous allez ajouter 3 candidats");
Si Aj= Vrai Alors
crire("Il y'a dja 3 candidats dans la liste");
crire("souhaitez vous craser les anciens donnes?");
crire("Repondez par Y (pour oui) ou N (pour non)");
Repeter
Lire(test);
Si test!='Y' et Yest!='N' alors
crire ("vous avez donn un caractere invalie. Ressayez");
Finsi

jusqu'a (test='Y' ou test='N')


FinSi
Si Test=Y alors
Pour i allant de 0 2 faire
crire("Donnez le nom complet du",i+1,"Candidat");
lire(L[i].Nom_complet)
Finpour
Finsi
Aj Vrai;
FinProcdure
Procdure Initialiser(L:T_tablo par adresse)
Variable I:entier
T0,T1,T2:boolen

Dbut
Si Aj=Faux alors
crire(La liste de candidats est vide.);
sinon
Pour I allant de 0 2 faire
L[ I ].vote 0;
Finpour
crire(Initialisation reussie);
Finsi
Finprocdure
Procdure Finaliser(L:T_Tablo)
Variable I:entier

Dbut
crire(Le vote est termin);
crire(Les rsultats sont:);
Pour I allant de 0 2 faire
crire(Le candidat N:,I+1, ), L[I].nom_complet,a eu,L[i].vote);
FinPour
Si L[0].vote>= L[1].vote et L[0].vote>=L[2].vote
alors T0 vrai
Finsi
Si L[1].vote>=L[0].vote et L[1].vote>=L[2].vote
alors T1 Vrai
Finsi
Si L[2].vote>=L[0].vote et L[2].vote>=L[1].vote
alors T2 Vrai
Finsi
crire(Le ou les gagnants (mme nombre de votes) est/sont);

Si T0=vrai alors
crire(L[0].Nom_complet,avec,L[0].vote);
Finsi
Si T1=vrai alors
crire(L[1].Nom_complet,avec,L[1].vote);
Finsi
Si T2=vrai alors
crire(L[2].Nom_complet,avec,L[2].vote);
Finsi
Finprocdure
Fonction Test_pass(Pw:Chaine de caractere):boolen
Variable i:entier;
x:chaine de caractere

Dbut
i 0;
Repeter
crire(Entrez le mot de passe. Essai N:,i+1);
lire(x);
ii+1
Si x!=Pw
alors
crire(Mot de passe incorrecte);
Finsi
Jusqua (X=Pw ou i=3)
Retourner ( X=Pw) // ceci va retourner soit Vrai pour X=Pw, soit faux poru X!=PW
Finfonction
Procdure Changer_pass(Pw:Chaine de caractere par adresse)

Dbut
crire(Veuillez donnez le nouveau mot de passe:);
lire(PW);
crire(Modification russie. Votre nouveau passe est:,Pw);
Fin procdure

Dbut
Aj faux ; // initialiser le fait que la liste est vide au dbut du programme
crire(Cest la premiere foix que vous lancer le programme);
crire(Veuilelz donnez un mot de passe pour la session Admin);
Lire(Password);
crire(Votre mot de passe a t enregistr);
Repeter
Menu_G2(Option_G);
Si (Option_G=1) alors
Si (Test_pass=vrai) alros
Menu_admin2(Option_A);
Cas de (Option_A)
A: Ajouter(Candidats);
B:Initialiser(Candidats);
C:Finaliser(Candidats);
D:Changer_pass(Password);
0:crire(Redirection vers le menu principal);
Fincas
Finsi
sinonsi (Option_G=2) alors
Menu_vote(candidats)
Finsi
Si (Option_G=0 ou Option_A=00) alors
crire (vous avez quitter le programme);
Finsi
Jusqua (Option_G=0 ou Option_A=00)
Fin.