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

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. Contributeur
    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
    1. 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. Contributeur
        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