aidez moi svp

aidez moi svp - C++ - Programmation

Marsh Posté le 17-04-2014 à 17:01:27    


Développer une classe abr pour gérer un arbre binaire de recherche.
-méthodes à implémenter  
    +constructeur
    +insertion
    +création
    +suppression
    +sauvegarde dans un fichier
    +chargement à partir fichier (constructeur)
    +affichage
    +recherche élément
Expl :
Main ()
{
abr a;
abr b(‘’personne.txt’’);
b.view ();
a.creer ();
a.delete (1350)
}

Reply

Marsh Posté le 17-04-2014 à 17:01:27   

Reply

Marsh Posté le 17-04-2014 à 17:08:13    

ameni123 a écrit :


Développer une classe abr pour gérer un arbre binaire de recherche.
-méthodes à implémenter  
    +constructeur
    +insertion
    +création
    +suppression
    +sauvegarde dans un fichier
    +chargement à partir fichier (constructeur)
    +affichage
    +recherche élément
Expl :
Main ()
{
abr a;
abr b(‘’personne.txt’’);
b.view ();
a.creer ();
a.delete (1350)
}


 

Citation :

[0A.1] Certaines questions simples peuveut se résoudre via une simple recherche.
 
    Sur Google : http://www.google.com ou http://groups.google.com.
    N'oubliez pas non plus de consulter la documentation accompagnant votre environnement de développement/compilateur.  
 
 
[0C] On ne fait pas le boulot à votre place.
 
    Les demandes du style "vous pouvez faire un programme faisant [...] pour moi ?" sont assez mal vues et ne sont pas dans l'esprit de la catégorie. Le but de la catégorie étant de vous aider dans vos problèmes de programmation, toute demande de travail tout fait sera modérée.
    Les offres d'emploi et recrutements doivent être postées sur Emploi & Études, même si elles concernent des jobs de programmation.
    Les demandes de bénévolat, ou les demandes de features "rémunérées" (sans être dans le cadre d'un emploi) seront modérées car hors-sujet : cela ne concerne que de loin la programmation en elle-même. Si vous cherchez du monde pour votre dernière meilleure idée de projet, le plus simple est de le mettre en signature et de participer normalement au forum, la notoriété étant la meilleure des publicités (note : notoriété != spam).  
 
 
[0D] De la même manière, les demandes de résolutions d'exercices ne seront pas acceptées
 
    Du moins, s'il s'agit d'une demande de solution toute faite, sans effort manifeste du côté du demandeur. Cette décision a été prise étant donné le nombre croissant de ce type de demandes lors des périodes de reprise des cours ou d'approche des périodes d'examens.
    Merci aux membres du forum de ne pas donner des résolutions d'exercice lorsqu'il est clair que le demandeur n'a rien fait de son côté ;)

Reply

Marsh Posté le 17-04-2014 à 17:08:36    

et tu as fait quoi ?


---------------
last.fm
Reply

Marsh Posté le 17-04-2014 à 17:09:40    

merci :)

Reply

Marsh Posté le 17-04-2014 à 23:19:24    

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
class data
{
private:
    int cle;
    char nom[20];
    char prenom[30];
    char ville[20];
public:
    void set_data_cle(int l_cle)
    {
      cle=l_cle;
    };
    void set_data_nom(char * l_nom)
    {
      strcpy(nom,l_nom);
    };
    void set_data_prenom(char *l_prenom)
    {
      strcpy(prenom,l_prenom);
    };
    void set_data_ville(char *l_ville)
    {
       strcpy(ville,l_ville);
    };
    int get_data_cle()
    {
      return(cle);
    };
    char *get_data_nom()
    {
        return(nom);
    };
    char *get_data_prenom()
    {
        return(prenom);
    };
    char *get_data_ville()
    {
        return(ville);
    };
    static int lire_data(data &l_d)
    {
        cout<< "cle:";
        cin>> l_d.cle;
        if(l_d.cle==-1) return(0);
        cout<< "nom:";
        cin>> l_d.nom;
        cout<< "prenom:";
        cin>> l_d.prenom;
        cout<< "ville:";
        cin>>l_d.ville;
        return(1);
    }
    void print_data()
    {
     cout<< "\ncle=**"<<cle;
     cout<< "\nnom=**"<<nom;
     cout<< "\nprenom=**"<<prenom;
     cout<< "\nville=**"<<ville;
    }
 
};
 
class noeud
{
private :
    data d;
    noeud *gauche;
    noeud *droite;
public:
    noeud(data l_d)
    {
        d.set_data_cle(l_d.get_data_cle());
        d.set_data_nom(l_d.get_data_nom());
        d.set_data_prenom(l_d.get_data_prenom());
        d.set_data_ville(l_d.get_data_ville());
        gauche=droite=NULL;
    }
    friend class abr;
    friend void affiche_abr(noeud *);
    friend void chargement(FILE*fp,noeud *n);
};
 
class abr
{
private:
    noeud *racine;
public:
    abr()
    {
        racine=NULL;
    }
 
 
    void insert_abr(data );
    void creer_abr();
    noeud *seek_abr(int );
    void save_abr(char*);
    abr(char*);
    void view_abr();
    void delete_abr(data );
 
 
};
 
void abr::insert_abr(data l_d)
{
    noeud **p;
    p=&racine;
    while(*p)
    {
        if(((*p)->d).get_data_cle()==l_d.get_data_cle())
            exit(0);
        else
        {
            if(((*p)->d).get_data_cle()<l_d.get_data_cle())
                p=&((*p)->droite);
            else p=&((*p)->gauche);
        }
 
 
    }
    *p=new noeud(l_d);
}
 
void abr::creer_abr()
{
    data l_d;
    while(data::lire_data(l_d))
        insert_abr(l_d);
};
 
void abr::view_abr()
{
  affiche_abr(racine);
}
void affiche_abr(noeud *n )
{
 if(n)
 {
     affiche_abr(n->gauche);
     (n->d).print_data();
     affiche_abr(n->droite);
 }
 
}
 
noeud *abr::seek_abr(int key )
{   noeud *p=racine;
    while(p)
    {
        if((p->d).get_data_cle()==key)
        {cout<<"le voila";(p->d).print_data();
         return(p);
        }
 
        else if((p->d).get_data_cle()<key)
            p=p->droite;
        else p=p->gauche;
    }
    return(NULL);
};
 
 abr::abr(char *name)
{
 FILE *fp;int l_cle; char l_nom[10],l_prenom[10],l_ville[10],s[100];data l_d;
 racine=NULL;
 if (!(fp=fopen(name,"r" ))) cout<<"probleme d'ouverture";
 else
 {
     cout<<"ouverture reussite";
     rewind(fp);
     while(fgets(s,100,fp))
     {
         sscanf(s,"%3d%10s%10s%10s",&l_cle,l_nom,l_prenom,l_ville);
         l_d.set_data_cle(l_cle);
         l_d.set_data_nom(l_nom);
         l_d.set_data_prenom(l_prenom);
         l_d.set_data_ville(l_ville);
         insert_abr(l_d);
 
         cout<<"hello";
     };
     fclose(fp);
 }
};
void abr::save_abr(char*name)
{FILE *fp;
if (!(fp=fopen(name,"w+" ))) cout<<"probleme d'ouverture";
 else
 {
  chargement(fp,racine) ;
 };
 fclose(fp);
};
 
 
void chargement(FILE*fp,noeud *n)
{
    if(n)
    {
        chargement(fp,n->gauche);
        fprintf(fp,"%3d%10s%10s%10s",(n->d).get_data_cle(),(n->d).get_data_nom(),(n->d).get_data_prenom(),(n->d).get_data_ville());
        chargement(fp,n->droite);
    }
}
 
int main()
{  abr a;
a.creer_abr();
a.save_abr("jiji.txt" );
}

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed