Étudiant

Description

Un programme qui fait la saisie des étudiants puis les trier
Un programme qui fait la saisie des étudiants puis les trier.
Il vous donne
Liste des étudiants par ordre alphabétique des villes
La liste des étudiants par ordre alphabétique des noms
La liste étudiants classé par ville et par nom
La liste étudiants classé par nom et par ville

Bon c?est mon premier programme avec les structure c?est vous avez des remarque ou des modifications n?hésitez pas à corriger les erreurs.

Enfin n?hésitez pas à corriger les erreurs 

Source / Exemple :


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

typedef struct adresse
{
        int num_rue;
        char nom_rue[41];
        char ville[16];
}adress;

typedef struct etudiant
{
        char nom[26];
        char prenom[21];
        char fil[4];
        adress adr;
}etud;
            //FONCTION DE SAISIE             
void saisie(etud t[100],int x)
{
     int i=1,f;
     do
     {
         printf("Etudiant numero %d \n-----------------\n",i);
         printf("entrez le nom : ");
         gets(t[i-1].nom);
         printf("entrez le prenom : ");
         gets(t[i-1].prenom);
         printf("entrez la filiere : ");
         gets(t[i-1].fil);
         printf("entrez le numero de la rue : ");
         scanf("%d",&t[i-1].adr.num_rue);
         getchar();
         printf("entrez le nom de la rue : ");
         gets(t[i-1].adr.nom_rue);
         printf("entrez la ville : ");
         gets(t[i-1].adr.ville);
         i++;
     }while(i<=100 && i<=x);
}
     //fonction echange
void echange(etud *e1,etud *e2)
{
     etud tmp;
     tmp=*e1;

  • e1=*e2;
  • e2=tmp;
} //fonction de tri par ville void tri_ville(etud t[100],int debut,int fin) { int i,j,k; for(i=debut;i<fin-1;i++) { k=i; for(j=i+1;j<fin;j++) if(stricmp(t[i].adr.ville,t[j].adr.ville)>0) k=j; echange(&t[k],&t[i]); } } //fonction de tri par nom void tri_nom(etud t[100],int debut,int fin) { int i,j,k; for(i=debut;i<fin-1;i++) { k=i; for(j=i+1;j<fin;j++) if(stricmp(t[i].nom,t[j].nom)>0) k=j; echange(&t[k],&t[i]); } } //fonction de tri par nom et ville void tri_nom_ville(etud t[100],int debut,int fin) { int i,j,str,end,trouv; tri_nom(t,debut,fin); i=debut; while(i<fin) { str=i;end=i; trouv=1; for(j=i+1;j<fin&&trouv;j++) if(stricmp(t[i].nom,t[j].nom)==0) end=j; else trouv=0; if(str!=end) tri_ville(t,str,end); i=end+1; } } void tri_ville_nom(etud t[100],int debut,int fin) { int i,j,str,end,trouv; tri_ville(t,debut,fin); i=debut; while(i<fin) { str=i;end=i; trouv=1; for(j=i+1;j<fin&&trouv;j++) if(stricmp(t[i].adr.ville,t[j].adr.ville)==0) end=j; else trouv=0; if(str!=end) tri_nom(t,str,end); i=end+1; } } void affichage(etud t[100],int debut,int fin) { int i; for(i=debut;i<fin;i++) { puts(t[i].nom); puts(t[i].prenom); puts(t[i].fil); printf("%d\n",t[i].adr.num_rue); puts(t[i].adr.nom_rue); puts(t[i].adr.ville); } } void choixmenu(void) { int a,n; char ch; etud t[100]; printf("combien d'etudiant voulez-vous saisir (max 100) : "); scanf("%d",&n); getchar(); saisie(t,n); do{ printf("\n+---------------------------MENU-----------------------------+"); printf("\n| (1) | Liste des etudiant par ordre alphabetique des villes |"); printf("\n| (2) | Liste des etudiant par ordre alphabetique des nom |"); printf("\n| (3) | Liste etudaints classée par ville et par nom |"); printf("\n| (4) | Liste etudaints classée par nom et par ville |"); printf("\n| (5) | sortir du programme |"); printf("\n+------------------------------------------------------------+\n"); printf("\nchoisissez le numero correspondant a ce que vous voulez faire : "); scanf("%d",&a); switch(a) { case 1: tri_ville(t,0,n); affichage(t,0,n);break; case 2: tri_nom(t,0,n); affichage(t,0,n);break; case 3: tri_ville_nom(t,0,n); affichage(t,0,n);break; case 4: tri_nom_ville(t,0,n); affichage(t,0,n);break; case 5: exit(0); default: printf("choix incorrect\n"); } getchar(); printf("voulez-vous faire un autre chois (O/N) : "); scanf("%c",&ch); }while(ch=='O' || ch=='o'); } main () { choixmenu(); getch(); }

Codes Sources

A voir également

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.