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 

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.