J'ai besoin de votre assistance dans la traduction de code de langage c en algo

Messages postés
2
Date d'inscription
jeudi 1 septembre 2016
Statut
Membre
Dernière intervention
15 mai 2019
-
C'est pour traduire ce code en algorithimique avec des fonctions et procedures qui m'est difficile (gestion des etudiants ou employés)
Je félicite votre aide à l'avance.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NMAX 20


typedef struct employe
{
int matricule;
char nom[20];
char prenom[50];
int jour,mois,annee;
}employe;

employe v[NMAX],personne;
int n;

int main()
{
void creer();
void afficher();
int rechercher();
void trierODA();
void ajouterTrier();
void supprimerPA();
int choix,position;
do{
system("cls");
printf("|---------------------------MENU PRINCIPALE------------------------------|\n");
printf("__________________________________________________________________________\n");
printf("| 1.creer |\n");
printf("__________________________________________________________________________\n");
printf("| 2.afficher |\n");
printf("__________________________________________________________________________\n");
printf("| 3.Rechercher un employe par son matricule |\n");
printf("__________________________________________________________________________\n");
printf("| 4.Trier la liste par ordre decroissant des ages |\n");
printf("__________________________________________________________________________\n");
printf("| 5.Ajouter un nouvel employe dans la liste trie |\n");
printf("__________________________________________________________________________\n");
printf("| 6.Supprimer le plus age dans la liste trie |\n");
printf("__________________________________________________________________________\n");
printf("| 0.quitter |\n");
printf("__________________________________________________________________________\n");
printf("| faite votre choix: |\n");
printf("__________________________________________________________________________\n");
scanf("%d",&choix);
system("pause");
switch(choix)
{
case 1:system("cls");
creer();
break;
case 2:system("cls");
afficher();
break;
case 3:system("cls");printf("Donner le matricule de l'employe:\n");
scanf("%d",&personne.matricule);
position=rechercher(personne.matricule);
if(position==-1)
printf("L'element n'existe pas\n");
else
{
printf("\t \tMATRICULE: %d\t\n",v[position].matricule);
printf("\t \tNOM: %s\t\n",v[position].nom);
printf("\t %d \tPRENOM: %s\n",position+1,v[position].prenom);
printf("| \t |----------DATE DE NAISSANCE------------------");
printf(" \t \tJOUR: %d",v[position].jour);
printf(" \t \tMOIS: %d",v[position].mois);
printf(" \t \tANNEE: %d\n",v[position].annee);
printf("_______________________________________________________________");
}
break;
case 4:system("cls");trierODA();afficher();
break;
case 5:system("cls");ajouterTrier();
break;
case 6:system("cls");supprimerPA();
break;
}
system("pause");
}while(choix!=0);
return 0;
}

void creer()
{
int i,matricule;
int rechercher(int matricule);
int posit;

do{
printf("Donner le nombre d'employer:\n"); scanf("%d",&n);
}while(n<0 || n>NMAX);
for(i=0;i<n;i++)
{
printf("MATRICULE DE L'EMPLOYER:%d\n",i+1);
A:scanf("%d",&matricule);
posit=rechercher(matricule);
if(posit!=-1)
{
printf("CE MATRICULE EXISTE DEJA. VEUILLEZ SAISIR UN NOUVEAU\n");
goto A;
}
v[i].matricule=matricule;
printf("Nom:"); gets(v[i].nom);gets(v[i].nom);
printf("Prenom:");gets(v[i].prenom);
printf("Date\n");
do
{
printf("Jours:"); scanf("%d",&v[i].jour);
}while(v[i].jour<1 || v[i].jour>31);
do
{
printf("mois:"); scanf("%d",&v[i].mois);
}while(v[i].mois<1 || v[i].mois>12);
do
{
printf("Annee:"); scanf("%d",&v[i].annee);
}while(v[i].annee<1000);
}
}

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

{
printf("%d %s %s %d %d %d\n",v[i].matricule,v[i].prenom,v[i].nom,v[i].jour,v[i].mois,v[i].annee);
}
}
int rechercher(int matricule)
{
int i,posit;
i=0;posit=-1;
while(i<n && v[i].matricule!=matricule)
{
i++;
}
if(i<n)
posit=i;
return(posit);
}

void menutrier()
{
int choix;
do
{
printf("1.Trier par ordre decroissant des ages\n");
printf("2.Ajouter dans la liste trier\n");
printf("3.Supprimer le plus age\n");
printf("4.Afficher la liste des personnels\n");
printf("0.Retoure au menu principale\n");
printf("Votre choix ic:"); scanf("%d",&choix);
}while(choix!=0);
}

void permuter(int j)
{
personne.matricule=v[j-1].matricule;
v[j-1].matricule=v[j].matricule;
v[j].matricule=personne.matricule;

strcpy(personne.prenom,v[j-1].prenom);
strcpy(v[j-1].prenom,v[j].prenom);
strcpy(v[j].prenom,personne.prenom);

strcpy(personne.nom,v[j-1].nom);
strcpy(v[j-1].nom,v[j].nom);
strcpy(v[j].nom,personne.nom);

personne.jour=v[j-1].jour;
v[j-1].jour=v[j].jour;
v[j].jour=personne.jour;

personne.mois=v[j-1].mois;
v[j-1].mois=v[j].mois;
v[j].mois=personne.mois;

personne.annee=v[j-1].annee;
v[j-1].annee=v[j].annee;
v[j].annee=personne.annee;

}
void trierODA()
{
int i,j,onapermuter;
onapermuter=1;
i=0;
while(onapermuter)
{
j=n-1;
onapermuter=0;
while(i<j)
{
if(v[j-1].annee>v[j].annee)
{
permuter(j);
onapermuter=1;
}
else if(v[j-1].annee==v[j].annee && v[j-1].mois>v[j].mois)
{
permuter(j);
onapermuter=1;
}
else if(v[j-1].annee==v[j].annee && v[j-1].mois==v[j].mois)
{
if(v[j-1].jour>v[j].jour)
{
permuter(j);
onapermuter=1;
}
}
j--;
}
i++;
}
}

int position(int anne)
{
int i,posit;
if(v[0].annee>anne)
posit=0;
else
{
i=1;
while(i<n && v[i].annee<anne)
i=i+1;
if(i<n)
posit=i;
else
posit=n;
}
return(posit);
}

void ajouterTrier()
{
int i,posit;
printf("Donner les renseingnement de l'employe a ajouters\n");
printf("Matricule:");
A:scanf("%d",&personne.matricule);
posit=rechercher(personne.matricule);
if(posit!=-1)
{
printf("CE MATRICULE EXISTE DEJA. VEUILLEZ SAISIR UN NOUVEAU\n");
goto A;
}
printf("Nom:"); gets(personne.nom);gets(personne.nom);
printf("Prenom:"); gets(personne.prenom);
printf("Date de naissance\n");
printf("Jour:"); scanf("%d",&personne.jour);
printf("Mois:"); scanf("%d",&personne.mois);
printf("Annee:"); scanf("%d",&personne.annee);
posit=position(personne.annee);
n=n+1;
if(posit<n)
{
for(i=n-1;i>=posit+1;i--)
{
v[i].matricule=v[i-1].matricule;
strcpy(v[i].nom,v[i-1].nom);
strcpy(v[i].prenom,v[i-1].prenom);
v[i].jour=v[i-1].jour;
v[i].mois=v[i-1].mois;
v[i].annee=v[i-1].annee;
}
}
v[posit].matricule=personne.matricule;
strcpy(v[posit].nom,personne.nom);
strcpy(v[posit].prenom,personne.prenom);
v[posit].jour=personne.jour;
v[posit].mois=personne.mois;
v[posit].annee=personne.annee;

}

void supprimerPA()
{
int i;
for(i=0;i<n;i++)
{
v[i]=v[i+1];
}
n=n-1;
printf("\nSUPPRIMER AVEC SUCCES\n\n");
}
Afficher la suite