begin process at 2012 05 27 21:05:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > TRI DE FICHES

TRI DE FICHES


 Information sur la source

 Description

algo qui trie des fiches (noms prenom surnon n° de telephone ) par ordre croissant de telephone, qui les affiche puis qui les trie par ordre croissant de nom et qui les affiches

les algo de tris utilisés sont le tri Maximier et le tri par selection;
les tableaux sont créés dynamiquement


Source

  • #include <iostream>
  • #include <conio.h>
  • #include <windows.h>
  • #include <string>
  • using namespace std;
  • typedef struct{
  • string telephone;
  • string nom;
  • string prenom;
  • string surnom;
  • }fi;
  • void TriMaximier(fi* tableau_a_trier,long n,fi* tableau_trie)
  • {
  • long index_plus_petit,index,index_tableau_trie=0;
  • while(n>=1)
  • {
  • index_plus_petit=0;
  • for(index=1;index<n;index++)
  • {
  • if(tableau_a_trier[index_plus_petit].telephone>tableau_a_trier[index].telephone)
  • {
  • index_plus_petit=index;
  • }
  • }
  • tableau_trie[index_tableau_trie]=tableau_a_trier[index_plus_petit];
  • index_tableau_trie++;
  • for(index=index_plus_petit;index<n-1;index++)
  • {
  • tableau_a_trier[index]=tableau_a_trier[index+1];
  • }
  • n--;
  • }
  • }
  • void TriSelection(fi* Tab,long TailleTab)
  • {
  • long Idebut,Ipetit,Iparcours;
  • fi Buffer;
  • for(Idebut=0;Idebut<TailleTab-1;Idebut++)
  • {
  • Ipetit=Idebut;
  • for(Iparcours=Idebut+1;Iparcours<TailleTab;Iparcours++)
  • {
  • if(Tab[Ipetit].nom>Tab[Iparcours].nom)
  • {
  • Ipetit=Iparcours;
  • }
  • }
  • Buffer=Tab[Ipetit];
  • Tab[Ipetit]=Tab[Idebut];
  • Tab[Idebut]=Buffer;
  • }
  • }
  • int main(void)
  • {
  • fi fiche;
  • fi *Tab;
  • fi *Tab_trie;
  • long taille;
  • cout<<"Entrez le nombre de fiches a enregistrer"<<endl;
  • cin>>taille;
  • Tab=new fi[taille];
  • if(Tab==NULL)
  • {
  • cout<<"Echec de l'allocation memoire"<<endl;
  • }
  • else
  • {
  • for(long index=0;index<taille;index++)
  • {
  • cout<<"Entrez les informations de la fiche "<<index+1<<" : "<<endl;;
  • cout<<"Nom: ";
  • cin>>Tab[index].nom;
  • cout<<"Nunmero de telephone: ";
  • cin>>Tab[index].telephone;
  • cout<<"Prenom: ";
  • cin>>Tab[index].prenom;
  • cout<<"Surnom: ";
  • cin>>Tab[index].surnom;
  • clrscr();
  • }
  • Tab_trie=new fi[taille];
  • if(Tab_trie==NULL)
  • {
  • cout<<"Echec de la 2eme allocation memoire"<<endl;
  • delete[] Tab;
  • }
  • else
  • {
  • TriMaximier(Tab,taille,Tab_trie);
  • cout<<"Voici le tableau trie par telephone par la methode du tri maximier:\n"<<endl;
  • for(long index=0;index<taille;index++)
  • {
  • cout<<Tab_trie[index].telephone<<" "<<Tab_trie[index].nom<<" "<<Tab_trie[index].prenom<<" "<<Tab_trie[index].surnom<<endl;
  • }
  • cout<<endl;
  • delete[] Tab;
  • TriSelection(Tab_trie,taille);
  • cout<<"Voici le tableau trie par nom par la methode du tri par selection:\n"<<endl;
  • for(long index=0;index<taille;index++)
  • {
  • cout<<Tab_trie[index].nom<<" "<<Tab_trie[index].prenom<<" "<<Tab_trie[index].surnom<<" "<<Tab_trie[index].telephone<<endl;
  • }
  • cout<<endl;
  • delete[] Tab_trie;
  • }
  • }
  • system("PAUSE");
  • return 0;
  • }
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <string>
using namespace std;

typedef struct{
  string telephone;
  string nom;
  string prenom;
  string surnom;
}fi;

void TriMaximier(fi* tableau_a_trier,long n,fi* tableau_trie)
{
  long index_plus_petit,index,index_tableau_trie=0;
  while(n>=1)
  {
    index_plus_petit=0;
    for(index=1;index<n;index++)
    {
      if(tableau_a_trier[index_plus_petit].telephone>tableau_a_trier[index].telephone)
      {
        index_plus_petit=index;
      }
    }
    tableau_trie[index_tableau_trie]=tableau_a_trier[index_plus_petit];
    index_tableau_trie++;
    for(index=index_plus_petit;index<n-1;index++)
    {
      tableau_a_trier[index]=tableau_a_trier[index+1];
    }
    n--;
  }
}

void TriSelection(fi* Tab,long TailleTab)
{
  long Idebut,Ipetit,Iparcours;
  fi Buffer;
  for(Idebut=0;Idebut<TailleTab-1;Idebut++)
  {
    Ipetit=Idebut;
    for(Iparcours=Idebut+1;Iparcours<TailleTab;Iparcours++)
    {
      if(Tab[Ipetit].nom>Tab[Iparcours].nom)
      {
        Ipetit=Iparcours;
      }
    }
    Buffer=Tab[Ipetit];
    Tab[Ipetit]=Tab[Idebut];
    Tab[Idebut]=Buffer;
  }
}

int main(void)
{
  fi fiche;
  fi *Tab;
  fi *Tab_trie;
  long taille;
  cout<<"Entrez le nombre de fiches a enregistrer"<<endl;
  cin>>taille;
  Tab=new fi[taille];
  if(Tab==NULL)
  {
    cout<<"Echec de l'allocation memoire"<<endl;
  }
  else
  {
    for(long index=0;index<taille;index++)
    {
      cout<<"Entrez les informations de la fiche "<<index+1<<" : "<<endl;;
      cout<<"Nom: ";
      cin>>Tab[index].nom;
      cout<<"Nunmero de telephone: ";
      cin>>Tab[index].telephone;
      cout<<"Prenom:  ";
      cin>>Tab[index].prenom;
      cout<<"Surnom: ";
      cin>>Tab[index].surnom;
      clrscr();
    }
    Tab_trie=new fi[taille];
    if(Tab_trie==NULL)
    {
      cout<<"Echec de la 2eme allocation memoire"<<endl;
      delete[] Tab;
    }
    else
    {
      TriMaximier(Tab,taille,Tab_trie);
      cout<<"Voici le tableau trie par telephone par la methode du tri maximier:\n"<<endl;
      for(long index=0;index<taille;index++)
      {
        cout<<Tab_trie[index].telephone<<" "<<Tab_trie[index].nom<<" "<<Tab_trie[index].prenom<<" "<<Tab_trie[index].surnom<<endl;
      }
      cout<<endl;
      delete[] Tab;
      TriSelection(Tab_trie,taille);
      cout<<"Voici le tableau trie par nom par la methode du tri par selection:\n"<<endl;
      for(long index=0;index<taille;index++)
      {
        cout<<Tab_trie[index].nom<<" "<<Tab_trie[index].prenom<<" "<<Tab_trie[index].surnom<<" "<<Tab_trie[index].telephone<<endl;
      }
      cout<<endl;
      delete[] Tab_trie;
    }
  }
  system("PAUSE");
  return 0;
}

 Conclusion

merci de laisser des commentaires et une tite note siouplé :)


 Sources du même auteur

CLASSE FILE UTILISANT UN TABLEAU
CLASSE PILE UTILISANT UN TABLEAU
VOIE PARALLELE COUPLEUR MC 68230 IMPRIMANTE SOUS LINUX
CALCUL PUISSANCE PAR FONCTION RECURSIVE
CALCUL FACTORIEL PAR FONCTION RECURSIVE

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de Kypper_667 le 10/10/2008 19:03:07 10/10

J'ai testé le programme et ça marche très bien ;)

Bien joué !

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales