Répertoire téléphonique en langage c++

djibeson-howard Messages postés 8 Statut Membre -  
ElementW Messages postés 5690 Statut Contributeur -
Bonjour,

Je cherche à réaliser un répertoire téléphonique à l'aide de programme C++
Svp.....est ce quelqu'un peut m'aider.

Merci d'avance.

2 réponses

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    Salut, sachant qu'on va pas faire l'exo a ta place, voici quelques pistes:
    - Apprends à créer une classe
    Contact

    - Fais un tableau dynamique de contacts (vide au début, hein?)
    - À l'aide de l'entrée/sortie standard (
    std::cin
    et
    std::cout
    ), réalise un menu (à choix numérique) qui te permet d'ajouter, supprimer ou modifier un contact en te demandant de remplir les champs que contient un
    Contact
    .
    0
  2. djibeson-howard Messages postés 8 Statut Membre
     
    j'ai commencé mon projet mais je suis caller au stockage aidez moi svp voici mon code
    #include <string>
    #include <iostream>
    #include <conio.h>
    #include <stdio.h>
    #include <ctype.h>
    #include<stdlib.h>
    using namespace std;

    class contact
    {
    private:
    string nom;
    string prenom;
    int numero;
    public:
    string getNom(){return nom;}
    string getPrenom(){return prenom;}
    int getNumero(){return numero;}
    int addContact(contact *TC[], string Nm, int nbp)
    {
    int i,t;
    string tel;
    // Insertion du nom par ordre alphabétique
    TC[i+1] = TC[i];

    i = i + 1;
    TC[i] = (contact*)malloc(sizeof(contact));
    TC[i]->nom = Nm;

    cout<<" Veuillez saisir le numero de Telephone : "<< endl;
    cin>>tel;
    TC[i]->numero = tel;

    cout<<"INSCRIPTION EFFECTUE"<<Nm;
    nbp++;
    return(nbp);
    }
    };
    class Ami : public contact
    {
    private:
    string date_naissance;
    string adresse_postale;
    string adresse_mail;
    public:
    string getdN(){return date_naissance;}
    string getBP(){return adresse_postale;}
    string getMail(){return adresse_mail;}
    int addami(contact *TC[], string Nm, int nbp,string dNaissance,string BP,string mail)
    {
    int i,t;
    string tel;
    // Insertion du nom par ordre alphabétique
    TC[i+1] = TC[i];

    i = i + 1;
    TC[i] = (contact*)malloc(sizeof(contact));
    TC[i]->nom = Nm;

    printf(" Veuillez saisir le numero de Telephone : ");
    cin>>tel;
    TC[i]->numero = tel;

    cout<<"INSCRIPTION EFFECTUE"<<Nm;
    nbp++;
    return(nbp);
    }
    };

    public:
    //constructeurs
    contact(){}
    contact(string nom, string pnom, string num){
    this-> nom=nom;
    prenom=pnom;
    numero=num;

    }
    //accesseurs
    string getNom(){return nom;}
    string getPrenom(){return prenom;}
    string getNumero(){return numero;}
    //modificateurs
    void mnom(string nnom){
    nom=nnom;
    }
    void mprenom(string npnom){
    prenom=npnom;
    }
    void mnum(string nnum){
    numero=nnum;
    }*/

    /* Prototypes des fonctions */

    int addContact(contact *TC[], string zlNom, int nbp);
    int SUPPRIMER(contact *TC[], int nbp, int r);
    void CONSULTER(contact *TP[], int r);
    void AFFICHER(contact *TP[], int nbp);
    int RECHERCHER(contact *TP[], string zlNom[], int nbp);

    void QUITTER(contact *TP[], int nbp);
    void PAUSE();

    //Affichage
    void affichecontact(){
    cout<<"Nom: "<<nom<<endl;
    cout<<"Prenom: "<<prenom<<endl;
    cout<<"Numero: "<<numero<<endl;
    }
    };
    //Amis
    class Ami : public contact
    {
    private:
    string date_naissance;
    string adresse_postale;
    string adresse_mail;
    public:
    //constructeurs
    Ami(){}
    Ami(string nom,string pnom,string num,string dNaissance,string BP,string mail):contact(nom,pnom,num){
    date_naissance=dNaissance;
    adresse_postale=BP;
    adresse_mail=mail;
    }
    //accesseurs
    string getdN(){return date_naissance;}
    string getBP(){return adresse_postale;}
    string getMail(){return adresse_mail;}
    //modificateurs
    void mdn(string ndN){
    date_naissance=ndN;
    }
    void mbp(string nBP){
    adresse_postale=nBP;
    }
    void mmail(string nMail){
    adresse_mail=nMail;
    }
    //Affichage
    void affichecontact(){

    contact::affichecontact();
    cout<<"Date de naissance: "<<date_naissance<<endl;
    cout<<"BP: "<<adresse_postale<<endl;
    cout<<"E-mail: "<<adresse_mail<<endl;
    }

    };
    //Repertoire
    class repertoire{
    private:
    contact *t;
    int N,n;//N=taille max, n=taille courante.
    public:
    repertoire(){}
    repertoire(int Tmax){
    t=new contact[N=Tmax];
    n=0;
    }
    void saisir(string nom, string prenom, string numero){
    contact *c;
    cout<<"Donner le nom du contact: "<<endl;
    cin>>nom;
    cout<<"Donner le prenom du contact: "<<endl;
    cin>>prenom;
    cout<<"Donner le numero du contact: "<<endl;
    cin>>numero;
    c=new contact(nom,prenom,numero);
    }
    void addcontact(contact a){
    if (n<N){
    t[n++]=a;
    }
    }
    void afficherepertoire(){
    for (int i=0; i<n; i++)
    t[i].affichecontact();
    }
    };

    int main()
    {
    cout<<"--------------------------------------------------------------------"<<endl;

    cout<<"1:----------------|Creer un nouveau repertoire|---------------------"<<endl;
    cout<<"2:-----------------|Ajouter un nouveau contact|---------------------"<<endl;
    cout<<"3:-------------------|Supprimer un contact|-------------------------"<<endl;
    cout<<"4:-----------------|Afficher tous les contacts|---------------------"<<endl;
    cout<<"5:-------------|Afficher tous les contacts(avec tri)|---------------"<<endl;
    cout<<"6:---------------|Afficher tous les amis(avec tri)|-----------------"<<endl;
    cout<<"7:-------------------|Rechercher un contact|------------------------"<<endl;
    cout<<"8:--------------------|Vider le repertoire|-------------------------"<<endl;
    cout<<"0:-------------------------|Quitter|--------------------------------"<<endl;

    cout<<"---------------------|COPYRIGHT MAF 2013|-------------------------"<<endl;
    cout<<"-------------------------|Faites un choix|--------------------------"<<endl;
    int n=9;
    cin>>n;
    switch(n)
    {
    case 1 :{
    cout<<"Donner la taille max du repertoire: "<<endl;
    int taille_max;
    cin>>taille_max;
    repertoire r(taille_max);

    contact c1("BA","Aly","77");*/
    contact *c2= new contact ("fd","sdrr","767","10-3-244","23","dfe@dff");
    r.addcontact(c1);
    r.addcontact(c2);
    }
    break;
    case 2 :{
    repertoire r;
    contact *c;
    void repertoire::saisir(string nom, string prenom, string numero);
    r.addcontact(c);
    r.afficherepertoire();
    }
    break;
    case 3 :;
    break;
    case 4 :;
    break;
    case 5 :;
    break;
    case 6 :;
    break;
    case 7 :;
    break;
    case 8 :;
    break;
    case 9 :;
    break;
    case 10 :;
    break;*/
    }

    system("PAUSE");
    return EXIT_SUCCESS;
    }
    0
    1. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      J'ai essayé de le compiler en enlevant l'include de
      conio.h
      et le
      system("PAUSE");
      car c'est pas portable, vire l'include et remplace le system(PAUSE) par
      std::getchar();
      , ça aura le même effet et aura le mérite d'être portable.

      Après, ou la la le tas d'erreurs de compilation. Ça marche chez toi? Voilà ce qui ne va pas:
      l. 32:
      TC[i]->numero = tel;
      , numero est un
      int
      et tel un
      string
      , la conversion ne se fera pas toute seule. De plus un int ne t'affichera pas le zéro du numéro ou le code de pays (ex: +33 pour la france), change le champ
      int numero
      en
      string
      , de même du type retour de
      contact::getNumero
      .

      l. 49 dans
      int addami
      , tu assignes une valeur à des champs qui ne te sont pas accessibles, utilises les fonctions getXYZ et utilises tes fonctions
      mnom
      , etc.

      Vers la ligne 70 ça devient n'importe quoi: tu as une partie d'une classe par-ci, une autre par-là, c'est un gros bazar.

      Tu as écrit ce code à la main sans tester? Car la c'est loin d'être fonctionnel...

      Et en plus tu viens visiblement du monde du C: on ne fait pas de
      malloc
      d'une
      class
      dans un tableau, on utilise une référence de
      std::vector
      et on instancie sa classe avec
      new
      ...
      0