Accueil > > > MINI RÉPERTOIRE TÉLÉPHONIQUE
MINI RÉPERTOIRE TÉLÉPHONIQUE
Information sur la source
Description
C'est un répertoire téléphonique en mode console. Il est programmé orienté objet. il peut enregistrer le nom, prénom, numéro téléphone de domicile, numéro téléphone portable, numéro téléphone du travail, adresse de la personne, code postal, ville et 3 adresses mail. La sauvegarde se fait avec un fichier .txt qui se trouve dans le même répertoire que le fichier .exe (\bin\Debug).
Source
- using System;
- using System.IO; //Pour utiliser les flux
- using System.Collections; //Pour utiliser l'ArrayList
- using nsClearConsole; //Pour effacer la console
-
- namespace repert
- {
- /// <summary>
- /// Description résumée de Class1.
- /// </summary>
-
- // ----- - CLASSE personne - ------
- class personne
- {
- private string nom;
- private string prenom;
- private string tel_home; //telephone domicile
- private string tel_port; //telephone portable
- private string tel_bur; //telephone du bureau
- private string adr_n_rue; //numero de rue
- private string adr_rue; //nom de la rue
- private string adr_cp; //code postal
- private string adr_ville; //ville
- private string email1; //adresse mail 1
- private string email2; //adresse mail 2
- private string email3; //adresse mail 3
-
- //---------------------- Constructeur (sans parametre)-------------------
- public personne ()
- {
- nom="";
- prenom="";
- tel_home="";
- tel_port="";
- tel_bur="";
- adr_n_rue="";
- adr_rue="";
- adr_cp="";
- adr_ville="";
- email1="";
- email2="";
- email3="";
- }
- //---------------------- Constructeur (avec ts parametres)---------------
- public personne(string p_nom,string p_prenom,string p_teldomicile,
- string p_telportabl,string p_telbureau,string p_adnumrue,
- string p_adrue,string p_adcodepostal,string p_adville,
- string p_email1,string p_email2,string p_email3)
- {
- nom=p_nom;
- prenom=p_prenom;
- tel_home=p_teldomicile;
- tel_port=p_telportabl;
- tel_bur=p_telbureau;
- adr_n_rue=p_adnumrue;
- adr_rue=p_adrue;
- adr_cp=p_adcodepostal;
- adr_ville=p_adville;
- email1=p_email1;
- email2=p_email2;
- email3=p_email3;
- }
- //---------------------- Get et Set (nom) -------------------------------
- public string getnom()
- {
- return (nom);
- }
- public void setnom(string n)
- {
- nom=n;
- }
- //---------------------- Get et Set (prenom) ----------------------------
- public string getprenom()
- {
- return (prenom);
- }
- public void setprenom(string p)
- {
- prenom=p;
- }
-
- //---------------------- Get et Set (telephone home) --------------------
- public string gettel_h()
- {
- return (tel_home);
- }
-
- public void settel_h(string t)
- {
- tel_home=t;
- }
-
- //---------------------- Get et Set (telephone port) --------------------
- public string gettel_p()
- {
- return (tel_port);
- }
- public void settel_p(string tp)
- {
- tel_port=tp;
- }
- //---------------------- Get et Set (telephone bureau) ------------------
- public string gettel_b()
- {
- return (tel_bur);
- }
- public void settel_b(string tb)
- {
- tel_bur=tb;
- }
- //---------------------- Get et Set (numero de rue) ---------------------
- public string getnrue()
- {
- return (adr_n_rue);
- }
- public void setnrue(string anr)
- {
- adr_n_rue=anr;
- }
- //---------------------- Get et Set (nom de la rue) ---------------------
- public string getrue()
- {
- return (adr_rue);
- }
- public void setrue(string ar)
- {
- adr_rue=ar;
- }
- //---------------------- Get et Set (code postal) -----------------------
- public string getcp()
- {
- return (adr_cp);
- }
- public void setcp(string cp)
- {
- adr_cp=cp;
- }
- //---------------------- Get et Set (nom de la ville) -------------------
- public string getville()
- {
- return (adr_ville);
- }
- public void setville(string ville)
- {
- adr_ville=ville;
- }
- //---------------------- Get et Set (premier mail) ----------------------
- public string getemail1()
- {
- return (email1);
- }
- public void setemail1(string e1)
- {
- email1=e1;
- }
- //---------------------- Get et Set (deuxième mail) ---------------------
- public string getemail2()
- {
- return (email2);
- }
- public void setemail2(string e2)
- {
- email2=e2;
- }
- //---------------------- Get et Set (troisième mail) --------------------
- public string getemail3()
- {
- return (email3);
- }
- public void setemail3(string e3)
- {
- email3=e3;
- }
- //---------------------- Override de la Méthode ToString() --------------------
- // ----- Chaque chaine sont séparée par une virgule ----
- public override string ToString()
- {
- return(this.getnom()+","+this.getprenom()+","+this.gettel_h()+","+this.gettel_p()+","+this.gettel_b()+","+this.getnrue()+","+this.getrue()+","+this.getcp()+","+this.getville()+","+this.getemail1()+","+this.getemail2()+","+this.getemail3()+",");
- }
- }
-
- // ------- - CLASSE repertoire - ------
- class repertoire : ArrayList
- {
- //private personne[] rep=new personne[500];
- private int nbp=0;
-
- // destructeur
- ~repertoire()
- {
- // Perform some cleanup operations here.
- //this.Initialize();
- }
-
- //------------------- Constructeur (sans paramètre) ---------------------
- public repertoire()
- {
- string n,p,th,tb,tp,nr,r,cp,v,e1,e2,e3;
- // Table de chaîne qui contiendra les chaînes d'une ligne
- string[] tabn = new string[12];
-
- // Ouverture du Flux d'écriture pour tester si le fichier existe
- StreamWriter sw = new StreamWriter("repertoire.txt",true, System.Text.Encoding.Default);
- // On ferme le flux d'ecriture
- sw.Close();
-
- // Ouverture du Flux de lecture du fichier texte
- StreamReader sr=new StreamReader("repertoire.txt");
-
- //Lecture du fichier texte
- try
- {
- n=sr.ReadLine();
- while (n!=null)
- {
- // affecte dans chaque case, chaque mot séparé par les virgules
- tabn=n.Split(',');
- // Affectation dans les variables hôtes
- n=tabn[0];
- p=tabn[1];
- th=tabn[2];
- tp=tabn[3];
- tb=tabn[4];
- nr=tabn[5];
- r=tabn[6];
- cp=tabn[7];
- v=tabn[8];
- e1=tabn[9];
- e2=tabn[10];
- e3=tabn[11];
- // Stocke dans une nouvelle classe personne
- personne Pe=new personne(n,p,th,tp,tb,nr,r,cp,v,e1,e2,e3);
- ajouter(Pe);
- // Lire la ligne suivante
- n=sr.ReadLine();
- }
-
- sr.Close();
- }
- catch(Exception ex)
- {
- Console.WriteLine("{0} \nLe fichier est peut-être endommagé ou inexistant, Veuillez le changer.",ex);
- }
- }
-
- //------------------- Procédure ajouter ---------------------------------
- public void ajouter(personne p)
- {
- /*int pos;
- pos=0;
- Tri Croissant
- while (pos>1 && p.getnom() < rep[pos-1].getnom())
- {
- rep[pos]=rep[pos-1];
- pos++;
- }*/
- this.Add(p);
- }
-
- //------------------- Procédure modifier -------------------
- public void modifier(personne p)
- {
- // Modifier les coordonnées d'une personne;
- }
-
- //------------------- Procédure afficherrep (sans parametre)-------------
- public void afficherrep()
- {
- string m_rien="inconnu";
- string adr;
- Console.WriteLine("\nContenu du répertoire :\n");
- foreach (personne Pe in rep)
- {
- if (Pe != null)
- {
- Console.WriteLine("Nom:{0} Prénom:{1}",Pe.getnom(),Pe.getprenom());
- Console.WriteLine("TélDomicile:{0} TélPortable:{1} TélDuBureau: {2}",((Pe.gettel_h()=="")?m_rien:Pe.gettel_h()),((Pe.gettel_p()=="")?m_rien:Pe.gettel_p()),((Pe.gettel_b()=="")?m_rien:Pe.gettel_b()));
- if (Pe.getnrue() != "" || Pe.getrue() != "")
- {
- adr=Pe.getcp()+", "+Pe.getrue();
- }
- else
- {
- adr="inconnu";
- }
- Console.WriteLine("Adresse:{0}",adr);
- Console.WriteLine("CodePostal:{0} Ville:{1}",((Pe.getcp()=="")?m_rien:Pe.getcp()),((Pe.getville()=="")?m_rien:Pe.getville()));
- Console.WriteLine("AdressesMail:\n-{0}\n-{1}\n-{2}",((Pe.getemail1()=="")?m_rien:Pe.getemail1()),((Pe.getemail2()=="")?m_rien:Pe.getemail2()),((Pe.getemail3()=="")?m_rien:Pe.getemail3()));
- Console.ReadLine() ; //Pause
- }else{
- break;
- }
- }
- }
-
- //-------------------- Fonction afficherrep (avec parametre) -----------
- public void afficherrep(personne Pe)
- {
- string m_rien="inconnu";
- string adr;
-
- Console.WriteLine("\nNom:{0} Prénom:{1}",Pe.getnom(),Pe.getprenom());
- Console.WriteLine("TélDomicile:{0}",((Pe.gettel_h()=="")?m_rien:Pe.gettel_h()));
- Console.WriteLine("TélPortable:{1}",((Pe.gettel_p()=="")?m_rien:Pe.gettel_p()));
- Console.WriteLine("TélDuBureau:{2}",((Pe.gettel_b()=="")?m_rien:Pe.gettel_b()));
- if (Pe.getnrue() != "" || Pe.getrue() != "")
- {
- adr=Pe.getcp()+", "+Pe.getrue();
- }
- else
- {
- adr="inconnu";
- }
- Console.WriteLine("Adresse:{0}",adr);
- Console.Write("CodePostal:{0}",((Pe.getcp()=="")?m_rien:Pe.getcp()));
- Console.WriteLine("Ville:{1}",((Pe.getville()=="")?m_rien:Pe.getville()));
- Console.WriteLine("AdressesMail:");
- Console.WriteLine("-{0}",((Pe.getemail1()=="")?m_rien:Pe.getemail1()));
- Console.WriteLine("-{1}",((Pe.getemail2()=="")?m_rien:Pe.getemail2()));
- Console.WriteLine("-{2}",((Pe.getemail3()=="")?m_rien:Pe.getemail3()));
- Console.ReadLine() ; //Pause
- }
-
- //------------------- Fonction rechercherpers ---------------------------
- public personne rechercherpers(string n)
- {
- personne Pe = new personne();
-
- foreach (personne p in this)
- {
- if (p.getnom()==n)
- {
- Pe=p;
- }
- }
- if (Pe.getnom()==n)
- {
- return(Pe);
- }
- else
- {
- return (null);
- }
- }
-
- //------------------- Fonction rechercherpers (nom + prenom) ---------------------------
- public personne rechercherpers(string n,string pm)
- {
- personne[] tbp = new personne[0];
- personne Pe = new personne();
- int i=0;
-
- nbp=0;
- foreach (personne p in this)
- {
- if (p.getnom()==n)
- {
- tbp[i] = p;
- i++;
- Console.WriteLine("i={0}",i);
- }
- else
- {
- nbp++;
- }
- }
- Console.WriteLine("nbp={0}",nbp);
- if (Pe.getnom()==n)
- {
- while (i<tbp.Length)
- {
- if (tbp[i].getprenom() == pm)
- {
- Pe = tbp[i];
- }
- else
- {
- i++;
- }
- }
- return(Pe);
- }
- else
- {
- return (null);
- }
- }
-
- //------------------- Fonction rechbytel --------------------------------
- public void rechbytel(string t)
- {
- int j=0;
-
- foreach (personne p in this)
- {
- if (p.gettel_h()==t)
- {
- Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
- j++;
- }
- }
- if (j <= 1)
- {
- Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
- }
- else
- {
- Console.WriteLine("Aucun résultat.");
- }
- Console.ReadLine(); //Pause
- }
-
- //------------------- Fonction rechbynom --------------------------------
- public void rechbynom(string nm)
- {
- int j=0;
-
- foreach (personne p in this)
- {
- if (p.getnom() == nm)
- {
- Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
- j++;
- }
- }
- if (j <= 1)
- {
- Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
- }
- else
- {
- Console.WriteLine("Aucun résultat.");
- }
- Console.ReadLine(); //Pause
- }
-
- //------------------- Fonction rechbyprenom --------------------------------
- public void rechbyprenom(string pm)
- {
- int j=0;
-
- foreach (personne p in this)
- {
- if (p.getprenom() == pm)
- {
- Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
- j++;
- }
- }
- if (j <= 1)
- {
- Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
- }
- else
- {
- Console.WriteLine("Aucun résultat.");
- }
- Console.ReadLine(); //Pause
- }
-
- //------------------- Fonction rechbyville --------------------------------
- public void rechbyville(string vl)
- {
- int j=0;
-
- foreach (personne p in this)
- {
- if (p.getville() == vl)
- {
- Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
- j++;
- }
- }
- if (j <= 1)
- {
- Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
- }
- else
- {
- Console.WriteLine("Aucun résultat.");
- }
- Console.ReadLine(); //Pause
- }
-
- //------------------- Procédure sauvegarder -----------------------------
- public void sauvegarder()
- {
-
- // Flux qui va écrire dans le fichier
- // true permet d'ajouter au lieu de remplacer le fichier
- StreamWriter sw = new StreamWriter("repertoire.txt",false,System.Text.Encoding.UTF8);
-
- foreach (personne Pe in this)
- {
-
- if (Pe == null)
- {
- continue;
- }
- sw.WriteLine(Pe.ToString());
- }
- //sw.WriteLine();
- // On ferme le flux d'ecriture
- sw.Close();
- }
- }
- class Class1
- {
- /// <summary>
- /// Point d'entrée principal de l'application.
- /// </summary>
- [STAThread]
- static void Main(string[] args)
- {
- //
- // TODO : ajoutez ici le code pour démarrer l'application
- //
- ClearConsole ClearMyConsole = new ClearConsole();
- repertoire rpt= new repertoire();
- personne per=new personne();
- string nomp,prenomp,telhp,telpp,telbp;
- string numrp,ruep,cpostp,villp,email1p;
- string email2p,email3p;
- string mdfnm,mdfpm;
- string tmp="";
- int choix;
- int choix1=0;
- string quit;
-
- do
- {
- Console.WriteLine("------------------- MENU -------------------\n");
- Console.WriteLine("1) Afficher tout le répertoire,");
- Console.WriteLine("2) Ajouter une nouvelle personne dans le répertoire,");
- Console.WriteLine("3) Afficher les coordonnées d'une personne,");
- Console.WriteLine("4) Modifier les coordonnées d'une personne,*");
- Console.WriteLine("5) Supprimer une personne,*");
- Console.WriteLine("6) Rechercher par numéro de téléphone,");
- Console.WriteLine("7) Rechercher par nom,");
- Console.WriteLine("8) Rechercher par prénom,");
- Console.WriteLine("9) Rechercher par ville,");
- Console.WriteLine("10) Afficher les personnes commencant par une lettre du nom,*");
- Console.WriteLine("11) Afficher le nombre de personnes enregistrées,");
- Console.WriteLine("12) Actualiser,");
- Console.WriteLine("13) Réinitialiser la console");
- Console.WriteLine("14) Quitter");
- Console.Write("Votre choix : ");
- try
- {
- choix=Convert.ToInt32(Console.ReadLine());
- }
- catch(System.FormatException)
- {
- choix=0;
- }
-
- switch (choix)
- {
- case 1 : rpt.afficherrep();
- break;
-
- case 2 : Console.WriteLine("Ajouter une personne dans votre répertoire");
- // Saisie des coordonnées de la personne qui sera ajouter dans le répertoire
- Console.WriteLine("Entrer le nom :");
- nomp=Console.ReadLine();
- Console.WriteLine("Entrer le prénom :");
- prenomp=Console.ReadLine();
- Console.WriteLine("Entrer le n° téléphonique du domicile :");
- telhp=Console.ReadLine();
- Console.WriteLine("Entrer le n° du téléphone portable :");
- telpp=Console.ReadLine();
- Console.WriteLine("Entrer le n° téléphonique du bureau :");
- telbp=Console.ReadLine();
- Console.WriteLine("Entrer le n° de la rue :");
- numrp=Console.ReadLine();
- Console.WriteLine("Entrer le nom de la rue :");
- ruep=Console.ReadLine();
- Console.WriteLine("Entrer le code postal :");
- cpostp=Console.ReadLine();
- Console.WriteLine("Entrer le nom de la ville :");
- villp=Console.ReadLine();
- Console.WriteLine("Entrer le 1er adresse mail :");
- email1p=Console.ReadLine();
- Console.WriteLine("Entrer le 2ème adresse mail :");
- email2p=Console.ReadLine();
- Console.WriteLine("Entrer le 3ème adresse mail :");
- email3p=Console.ReadLine();
- // Création d'une nouvelle classse personne
- per=new personne(nomp,prenomp,telhp,telpp,telbp,numrp,ruep,cpostp,villp,email1p,email2p,email3p);
- // Ajout la nouvelle classe personne dans le répertoire
- rpt.ajouter(per);
- // Affichage du résultat
- rpt.afficherrep(per);
- break;
-
- case 3 : Console.WriteLine("Entrer le nom de la personne recherchée");
- nomp=Console.ReadLine();
- if (rpt.rechercherpers(nomp) != null)
- {
- per=rpt.rechercherpers(nomp);
- rpt.afficherrep(per);
- }
- else
- {
- Console.WriteLine("La personne que vous recherchez n'existe pas");
- }
- break;
-
- case 4 : // modifie les coordonnées d'une personne
- Console.WriteLine("Quel personne voulez-vous modifier?");
- Console.WriteLine("1. En recherchant dans la liste,");
- Console.WriteLine("2. En donnant le nom et prénom de la personne");
- Console.Write("Indiquez votre choix: ");
- try
- {
- choix1=Convert.ToInt32(Console.WriteLine());
- }
- catch(System.FormatException)
- {
- Console.WriteLine("Vous avez mal indiqué votre choix.");
- choix1=0;
- }
- switch(choix1)
- {
- case 1 : //ezkg,zeoig,
- break;
-
- case 2 : // Modification en indiquant nom & prénom de la personne
- Console.Write("Nom : ");
- mdfnm=Console.ReadLine();
- Console.Write("Prénom : ");
- mdfpm=Console.ReadLine();
- per=rpt.rechercherpers(mdfnm,mdfpm);
- break;
-
- default : break;
- }
- if ( choix1 == 1 || choix1 == 2)
- {
- rpt.modifier(per);
- }
- break;
-
- case 5 : // supprime une personne
- break;
-
- case 6 : // recherche par numéro de téléphone
- Console.WriteLine("Entrer le numéro de téléphone de domicile recherché :");
- telhp=Console.ReadLine();
- rpt.rechbytel(telhp);
- break;
-
- case 7 : // recherche par nom
- Console.WriteLine("Entrer le nom recherché :");
- nomp=Console.ReadLine();
- rpt.rechbynom(nomp);
- break;
-
- case 8 : // recherche par prénom
- Console.WriteLine("Entrer le prénom recherché :");
- prenomp=Console.ReadLine();
- rpt.rechbyprenom(prenomp);
- break;
-
- case 9 : // recherche par ville
- Console.WriteLine("Entrer la ville recherchée :");
- villp=Console.ReadLine();
- rpt.rechbyville(villp);
- break;
-
-
- case 10 : // affiche les personnes par lettre du nom
- break;
-
- case 11 : // affiche le nombre de personne dans le répertoire.
- if (rpt.Count != 0)
- {
- Console.WriteLine("Il y a actuellement {0} personne{1} dans le répertoire.",rpt.Count,((rpt.Count != 1)?"s":""));
- }
- else
- {
- Console.WriteLine("Le répertoire est vide.");
- }
- break;
-
- case 12 : //Finalize(); //destructeur ou constructeur pr actualiser
- break;
-
-
- case 13 : ClearMyConsole.Clear(); // Clear the screen
- break;
-
- case 14 : Console.Write("Voulez-vous réellement quitter l'application (o/n)? ");
- quit=Console.ReadLine();
- if (quit == "o" || quit == "O")
- {
- rpt.sauvegarder();
- }
- else
- {
- choix=0;
- }
- break;
-
- default : break;
- }
- }while(choix != 14);
- }
- }
- }
using System;
using System.IO; //Pour utiliser les flux
using System.Collections; //Pour utiliser l'ArrayList
using nsClearConsole; //Pour effacer la console
namespace repert
{
/// <summary>
/// Description résumée de Class1.
/// </summary>
// ----- - CLASSE personne - ------
class personne
{
private string nom;
private string prenom;
private string tel_home; //telephone domicile
private string tel_port; //telephone portable
private string tel_bur; //telephone du bureau
private string adr_n_rue; //numero de rue
private string adr_rue; //nom de la rue
private string adr_cp; //code postal
private string adr_ville; //ville
private string email1; //adresse mail 1
private string email2; //adresse mail 2
private string email3; //adresse mail 3
//---------------------- Constructeur (sans parametre)-------------------
public personne ()
{
nom="";
prenom="";
tel_home="";
tel_port="";
tel_bur="";
adr_n_rue="";
adr_rue="";
adr_cp="";
adr_ville="";
email1="";
email2="";
email3="";
}
//---------------------- Constructeur (avec ts parametres)---------------
public personne(string p_nom,string p_prenom,string p_teldomicile,
string p_telportabl,string p_telbureau,string p_adnumrue,
string p_adrue,string p_adcodepostal,string p_adville,
string p_email1,string p_email2,string p_email3)
{
nom=p_nom;
prenom=p_prenom;
tel_home=p_teldomicile;
tel_port=p_telportabl;
tel_bur=p_telbureau;
adr_n_rue=p_adnumrue;
adr_rue=p_adrue;
adr_cp=p_adcodepostal;
adr_ville=p_adville;
email1=p_email1;
email2=p_email2;
email3=p_email3;
}
//---------------------- Get et Set (nom) -------------------------------
public string getnom()
{
return (nom);
}
public void setnom(string n)
{
nom=n;
}
//---------------------- Get et Set (prenom) ----------------------------
public string getprenom()
{
return (prenom);
}
public void setprenom(string p)
{
prenom=p;
}
//---------------------- Get et Set (telephone home) --------------------
public string gettel_h()
{
return (tel_home);
}
public void settel_h(string t)
{
tel_home=t;
}
//---------------------- Get et Set (telephone port) --------------------
public string gettel_p()
{
return (tel_port);
}
public void settel_p(string tp)
{
tel_port=tp;
}
//---------------------- Get et Set (telephone bureau) ------------------
public string gettel_b()
{
return (tel_bur);
}
public void settel_b(string tb)
{
tel_bur=tb;
}
//---------------------- Get et Set (numero de rue) ---------------------
public string getnrue()
{
return (adr_n_rue);
}
public void setnrue(string anr)
{
adr_n_rue=anr;
}
//---------------------- Get et Set (nom de la rue) ---------------------
public string getrue()
{
return (adr_rue);
}
public void setrue(string ar)
{
adr_rue=ar;
}
//---------------------- Get et Set (code postal) -----------------------
public string getcp()
{
return (adr_cp);
}
public void setcp(string cp)
{
adr_cp=cp;
}
//---------------------- Get et Set (nom de la ville) -------------------
public string getville()
{
return (adr_ville);
}
public void setville(string ville)
{
adr_ville=ville;
}
//---------------------- Get et Set (premier mail) ----------------------
public string getemail1()
{
return (email1);
}
public void setemail1(string e1)
{
email1=e1;
}
//---------------------- Get et Set (deuxième mail) ---------------------
public string getemail2()
{
return (email2);
}
public void setemail2(string e2)
{
email2=e2;
}
//---------------------- Get et Set (troisième mail) --------------------
public string getemail3()
{
return (email3);
}
public void setemail3(string e3)
{
email3=e3;
}
//---------------------- Override de la Méthode ToString() --------------------
// ----- Chaque chaine sont séparée par une virgule ----
public override string ToString()
{
return(this.getnom()+","+this.getprenom()+","+this.gettel_h()+","+this.gettel_p()+","+this.gettel_b()+","+this.getnrue()+","+this.getrue()+","+this.getcp()+","+this.getville()+","+this.getemail1()+","+this.getemail2()+","+this.getemail3()+",");
}
}
// ------- - CLASSE repertoire - ------
class repertoire : ArrayList
{
//private personne[] rep=new personne[500];
private int nbp=0;
// destructeur
~repertoire()
{
// Perform some cleanup operations here.
//this.Initialize();
}
//------------------- Constructeur (sans paramètre) ---------------------
public repertoire()
{
string n,p,th,tb,tp,nr,r,cp,v,e1,e2,e3;
// Table de chaîne qui contiendra les chaînes d'une ligne
string[] tabn = new string[12];
// Ouverture du Flux d'écriture pour tester si le fichier existe
StreamWriter sw = new StreamWriter("repertoire.txt",true, System.Text.Encoding.Default);
// On ferme le flux d'ecriture
sw.Close();
// Ouverture du Flux de lecture du fichier texte
StreamReader sr=new StreamReader("repertoire.txt");
//Lecture du fichier texte
try
{
n=sr.ReadLine();
while (n!=null)
{
// affecte dans chaque case, chaque mot séparé par les virgules
tabn=n.Split(',');
// Affectation dans les variables hôtes
n=tabn[0];
p=tabn[1];
th=tabn[2];
tp=tabn[3];
tb=tabn[4];
nr=tabn[5];
r=tabn[6];
cp=tabn[7];
v=tabn[8];
e1=tabn[9];
e2=tabn[10];
e3=tabn[11];
// Stocke dans une nouvelle classe personne
personne Pe=new personne(n,p,th,tp,tb,nr,r,cp,v,e1,e2,e3);
ajouter(Pe);
// Lire la ligne suivante
n=sr.ReadLine();
}
sr.Close();
}
catch(Exception ex)
{
Console.WriteLine("{0} \nLe fichier est peut-être endommagé ou inexistant, Veuillez le changer.",ex);
}
}
//------------------- Procédure ajouter ---------------------------------
public void ajouter(personne p)
{
/*int pos;
pos=0;
Tri Croissant
while (pos>1 && p.getnom() < rep[pos-1].getnom())
{
rep[pos]=rep[pos-1];
pos++;
}*/
this.Add(p);
}
//------------------- Procédure modifier -------------------
public void modifier(personne p)
{
// Modifier les coordonnées d'une personne;
}
//------------------- Procédure afficherrep (sans parametre)-------------
public void afficherrep()
{
string m_rien="inconnu";
string adr;
Console.WriteLine("\nContenu du répertoire :\n");
foreach (personne Pe in rep)
{
if (Pe != null)
{
Console.WriteLine("Nom:{0} Prénom:{1}",Pe.getnom(),Pe.getprenom());
Console.WriteLine("TélDomicile:{0} TélPortable:{1} TélDuBureau: {2}",((Pe.gettel_h()=="")?m_rien:Pe.gettel_h()),((Pe.gettel_p()=="")?m_rien:Pe.gettel_p()),((Pe.gettel_b()=="")?m_rien:Pe.gettel_b()));
if (Pe.getnrue() != "" || Pe.getrue() != "")
{
adr=Pe.getcp()+", "+Pe.getrue();
}
else
{
adr="inconnu";
}
Console.WriteLine("Adresse:{0}",adr);
Console.WriteLine("CodePostal:{0} Ville:{1}",((Pe.getcp()=="")?m_rien:Pe.getcp()),((Pe.getville()=="")?m_rien:Pe.getville()));
Console.WriteLine("AdressesMail:\n-{0}\n-{1}\n-{2}",((Pe.getemail1()=="")?m_rien:Pe.getemail1()),((Pe.getemail2()=="")?m_rien:Pe.getemail2()),((Pe.getemail3()=="")?m_rien:Pe.getemail3()));
Console.ReadLine() ; //Pause
}else{
break;
}
}
}
//-------------------- Fonction afficherrep (avec parametre) -----------
public void afficherrep(personne Pe)
{
string m_rien="inconnu";
string adr;
Console.WriteLine("\nNom:{0} Prénom:{1}",Pe.getnom(),Pe.getprenom());
Console.WriteLine("TélDomicile:{0}",((Pe.gettel_h()=="")?m_rien:Pe.gettel_h()));
Console.WriteLine("TélPortable:{1}",((Pe.gettel_p()=="")?m_rien:Pe.gettel_p()));
Console.WriteLine("TélDuBureau:{2}",((Pe.gettel_b()=="")?m_rien:Pe.gettel_b()));
if (Pe.getnrue() != "" || Pe.getrue() != "")
{
adr=Pe.getcp()+", "+Pe.getrue();
}
else
{
adr="inconnu";
}
Console.WriteLine("Adresse:{0}",adr);
Console.Write("CodePostal:{0}",((Pe.getcp()=="")?m_rien:Pe.getcp()));
Console.WriteLine("Ville:{1}",((Pe.getville()=="")?m_rien:Pe.getville()));
Console.WriteLine("AdressesMail:");
Console.WriteLine("-{0}",((Pe.getemail1()=="")?m_rien:Pe.getemail1()));
Console.WriteLine("-{1}",((Pe.getemail2()=="")?m_rien:Pe.getemail2()));
Console.WriteLine("-{2}",((Pe.getemail3()=="")?m_rien:Pe.getemail3()));
Console.ReadLine() ; //Pause
}
//------------------- Fonction rechercherpers ---------------------------
public personne rechercherpers(string n)
{
personne Pe = new personne();
foreach (personne p in this)
{
if (p.getnom()==n)
{
Pe=p;
}
}
if (Pe.getnom()==n)
{
return(Pe);
}
else
{
return (null);
}
}
//------------------- Fonction rechercherpers (nom + prenom) ---------------------------
public personne rechercherpers(string n,string pm)
{
personne[] tbp = new personne[0];
personne Pe = new personne();
int i=0;
nbp=0;
foreach (personne p in this)
{
if (p.getnom()==n)
{
tbp[i] = p;
i++;
Console.WriteLine("i={0}",i);
}
else
{
nbp++;
}
}
Console.WriteLine("nbp={0}",nbp);
if (Pe.getnom()==n)
{
while (i<tbp.Length)
{
if (tbp[i].getprenom() == pm)
{
Pe = tbp[i];
}
else
{
i++;
}
}
return(Pe);
}
else
{
return (null);
}
}
//------------------- Fonction rechbytel --------------------------------
public void rechbytel(string t)
{
int j=0;
foreach (personne p in this)
{
if (p.gettel_h()==t)
{
Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
j++;
}
}
if (j <= 1)
{
Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
}
else
{
Console.WriteLine("Aucun résultat.");
}
Console.ReadLine(); //Pause
}
//------------------- Fonction rechbynom --------------------------------
public void rechbynom(string nm)
{
int j=0;
foreach (personne p in this)
{
if (p.getnom() == nm)
{
Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
j++;
}
}
if (j <= 1)
{
Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
}
else
{
Console.WriteLine("Aucun résultat.");
}
Console.ReadLine(); //Pause
}
//------------------- Fonction rechbyprenom --------------------------------
public void rechbyprenom(string pm)
{
int j=0;
foreach (personne p in this)
{
if (p.getprenom() == pm)
{
Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
j++;
}
}
if (j <= 1)
{
Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
}
else
{
Console.WriteLine("Aucun résultat.");
}
Console.ReadLine(); //Pause
}
//------------------- Fonction rechbyville --------------------------------
public void rechbyville(string vl)
{
int j=0;
foreach (personne p in this)
{
if (p.getville() == vl)
{
Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
j++;
}
}
if (j <= 1)
{
Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
}
else
{
Console.WriteLine("Aucun résultat.");
}
Console.ReadLine(); //Pause
}
//------------------- Procédure sauvegarder -----------------------------
public void sauvegarder()
{
// Flux qui va écrire dans le fichier
// true permet d'ajouter au lieu de remplacer le fichier
StreamWriter sw = new StreamWriter("repertoire.txt",false,System.Text.Encoding.UTF8);
foreach (personne Pe in this)
{
if (Pe == null)
{
continue;
}
sw.WriteLine(Pe.ToString());
}
//sw.WriteLine();
// On ferme le flux d'ecriture
sw.Close();
}
}
class Class1
{
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO : ajoutez ici le code pour démarrer l'application
//
ClearConsole ClearMyConsole = new ClearConsole();
repertoire rpt= new repertoire();
personne per=new personne();
string nomp,prenomp,telhp,telpp,telbp;
string numrp,ruep,cpostp,villp,email1p;
string email2p,email3p;
string mdfnm,mdfpm;
string tmp="";
int choix;
int choix1=0;
string quit;
do
{
Console.WriteLine("------------------- MENU -------------------\n");
Console.WriteLine("1) Afficher tout le répertoire,");
Console.WriteLine("2) Ajouter une nouvelle personne dans le répertoire,");
Console.WriteLine("3) Afficher les coordonnées d'une personne,");
Console.WriteLine("4) Modifier les coordonnées d'une personne,*");
Console.WriteLine("5) Supprimer une personne,*");
Console.WriteLine("6) Rechercher par numéro de téléphone,");
Console.WriteLine("7) Rechercher par nom,");
Console.WriteLine("8) Rechercher par prénom,");
Console.WriteLine("9) Rechercher par ville,");
Console.WriteLine("10) Afficher les personnes commencant par une lettre du nom,*");
Console.WriteLine("11) Afficher le nombre de personnes enregistrées,");
Console.WriteLine("12) Actualiser,");
Console.WriteLine("13) Réinitialiser la console");
Console.WriteLine("14) Quitter");
Console.Write("Votre choix : ");
try
{
choix=Convert.ToInt32(Console.ReadLine());
}
catch(System.FormatException)
{
choix=0;
}
switch (choix)
{
case 1 : rpt.afficherrep();
break;
case 2 : Console.WriteLine("Ajouter une personne dans votre répertoire");
// Saisie des coordonnées de la personne qui sera ajouter dans le répertoire
Console.WriteLine("Entrer le nom :");
nomp=Console.ReadLine();
Console.WriteLine("Entrer le prénom :");
prenomp=Console.ReadLine();
Console.WriteLine("Entrer le n° téléphonique du domicile :");
telhp=Console.ReadLine();
Console.WriteLine("Entrer le n° du téléphone portable :");
telpp=Console.ReadLine();
Console.WriteLine("Entrer le n° téléphonique du bureau :");
telbp=Console.ReadLine();
Console.WriteLine("Entrer le n° de la rue :");
numrp=Console.ReadLine();
Console.WriteLine("Entrer le nom de la rue :");
ruep=Console.ReadLine();
Console.WriteLine("Entrer le code postal :");
cpostp=Console.ReadLine();
Console.WriteLine("Entrer le nom de la ville :");
villp=Console.ReadLine();
Console.WriteLine("Entrer le 1er adresse mail :");
email1p=Console.ReadLine();
Console.WriteLine("Entrer le 2ème adresse mail :");
email2p=Console.ReadLine();
Console.WriteLine("Entrer le 3ème adresse mail :");
email3p=Console.ReadLine();
// Création d'une nouvelle classse personne
per=new personne(nomp,prenomp,telhp,telpp,telbp,numrp,ruep,cpostp,villp,email1p,email2p,email3p);
// Ajout la nouvelle classe personne dans le répertoire
rpt.ajouter(per);
// Affichage du résultat
rpt.afficherrep(per);
break;
case 3 : Console.WriteLine("Entrer le nom de la personne recherchée");
nomp=Console.ReadLine();
if (rpt.rechercherpers(nomp) != null)
{
per=rpt.rechercherpers(nomp);
rpt.afficherrep(per);
}
else
{
Console.WriteLine("La personne que vous recherchez n'existe pas");
}
break;
case 4 : // modifie les coordonnées d'une personne
Console.WriteLine("Quel personne voulez-vous modifier?");
Console.WriteLine("1. En recherchant dans la liste,");
Console.WriteLine("2. En donnant le nom et prénom de la personne");
Console.Write("Indiquez votre choix: ");
try
{
choix1=Convert.ToInt32(Console.WriteLine());
}
catch(System.FormatException)
{
Console.WriteLine("Vous avez mal indiqué votre choix.");
choix1=0;
}
switch(choix1)
{
case 1 : //ezkg,zeoig,
break;
case 2 : // Modification en indiquant nom & prénom de la personne
Console.Write("Nom : ");
mdfnm=Console.ReadLine();
Console.Write("Prénom : ");
mdfpm=Console.ReadLine();
per=rpt.rechercherpers(mdfnm,mdfpm);
break;
default : break;
}
if ( choix1 == 1 || choix1 == 2)
{
rpt.modifier(per);
}
break;
case 5 : // supprime une personne
break;
case 6 : // recherche par numéro de téléphone
Console.WriteLine("Entrer le numéro de téléphone de domicile recherché :");
telhp=Console.ReadLine();
rpt.rechbytel(telhp);
break;
case 7 : // recherche par nom
Console.WriteLine("Entrer le nom recherché :");
nomp=Console.ReadLine();
rpt.rechbynom(nomp);
break;
case 8 : // recherche par prénom
Console.WriteLine("Entrer le prénom recherché :");
prenomp=Console.ReadLine();
rpt.rechbyprenom(prenomp);
break;
case 9 : // recherche par ville
Console.WriteLine("Entrer la ville recherchée :");
villp=Console.ReadLine();
rpt.rechbyville(villp);
break;
case 10 : // affiche les personnes par lettre du nom
break;
case 11 : // affiche le nombre de personne dans le répertoire.
if (rpt.Count != 0)
{
Console.WriteLine("Il y a actuellement {0} personne{1} dans le répertoire.",rpt.Count,((rpt.Count != 1)?"s":""));
}
else
{
Console.WriteLine("Le répertoire est vide.");
}
break;
case 12 : //Finalize(); //destructeur ou constructeur pr actualiser
break;
case 13 : ClearMyConsole.Clear(); // Clear the screen
break;
case 14 : Console.Write("Voulez-vous réellement quitter l'application (o/n)? ");
quit=Console.ReadLine();
if (quit == "o" || quit == "O")
{
rpt.sauvegarder();
}
else
{
choix=0;
}
break;
default : break;
}
}while(choix != 14);
}
}
}
Conclusion
Je vous préviens que le code est incomplet. Ses fonctions pour le moment sont l'ouverture du fichier txt, la lecture, affichage des coordonnées d'une personne, et la sauvegarde (l'écriture) dans le fichier 'repertoire.txt'.
Je voudrais que vous puissiez m'aider pour faire les autres fonctions, c'est-à-dire la recherche par numéro de téléphone, la recherche par nom, la recherche par prénom et la recherche par ville; ces recherches doivent afficher le résultat en une liste de personne. Et j'ai découvert un énorme problème : lorsque je fais 'Quitter' dans mon programme, il sauvegarde le contenu de l'ArrayList dans le fichier .txt mais dans le fichier .txt, il y a 2 lignes qui sont rajouté à la fin (ou plutôt il y a 2 retour à la lignes à la fin). Si je relance l'application, il y a un bug car c'est à cause de ces 2 retours à la ligne qui pose problème.
/!\ ----------------------------------- -------------------------------------------------- --------------------------------- Si vous pourriez m'aider à corriger et compléter mon code. Les coordonnées dans le fichier 'repertoire.txt' sont entièrement factices issues de ma propre imagination. N'essayer pas de faire quoi que ce soit avec ces coordonnées. Je décline toute resposabilitée. ---------------------------------- -------------------------------------------------- ----------------------------------
Merci bien.
Historique
- 27 février 2005 02:44:03 :
- Découverte du bug qui rajoute 2 ligne lorsque l'application quitte en sauvegardant le fichier 'repertoire.txt'
- 02 mars 2005 03:22:00 :
- Modification du code :
correction lisibilité du code;
ajout des fonctions rechbytel(), rechbynom(), rechbyprenom() et rechbyville();
correction d'un bug, création du fichier .txt si le fichier .txt n'existe pas;
correction d'un bug, lorsque l'on tape un caractère, une chaîne, ou directement la
touche 'Entrée', le menu s'affiche encore pour insister sur le fait qu'il faut taper un
chiffre et non autre chose.
- 05 mars 2005 20:04:55 :
- - Modification de la fonction 'sauvegarder()', il ne produit plus de bug lors de la prochaine exécution du programme.
- Ajout de la fonction 'ToString()' dans la classe 'personne'.
- 10 mars 2005 00:42:03 :
- - La classe 'repertoire' est complètement en collection (la déclaration du tableau de personnes 'rep' est mis en commentaire, donc ignoré).
- Ajout de 4 nouvelles fonctions dans le menu principal :
1. modifier les coordonnées d'une personne,
2. supprimer une personne,
3. afficher le nombre de personnes enregistrées dans le répertoire,
et 4.afficher les personnes par lettres alphabétiques.
- Parmi ces quatres fonctions,
la 3 est opérationnelle, la 1 est en cours, les deux autres sont a écrire.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
supprimer, copier tous les fichiers d'un repertoire (del *.* sous DOS) [ par VoodooChiles ]
Je cherche la syntaxe pour effectuer une File.copy (\\path1\\*.*, \\path2\\ )Par quoi remplacer *.* ????Merci !
taille d'un repertoire [ par meihua ]
bonjour, j'aimerais savoir comment fait-on pour afficher la taille d'un repertoire d'abord est ce que c'est possible?!
repertoire et fichier [ par junior300 ]
salut je cherche a savoir comment on peut faire pour énumerer le contenu d'un répertoire dans un menu.merci de me répondre rapidementjunior300
ouvrir un repertoire avec un OpenFileDialog [ par nicola2s ]
je voudrais utiliser une boite de dialogue pour ouvrir un repertoirej'utilise un OpenFileDialog masi ca ne permet que d'ouvrir des fichiers. Y a t il
comment savoir si un repertoire ou un fichier sont existant ??? [ par shinevilkyo ]
lu,j amerais savoir si il existe une fonction en c# qui me permette de verifier si un repertoire ou bien un fichier est present sur un de mes disque d
Charger le contenu d'un répertoire via une url [ par reyman ]
HelloJe connais la bibliotheque System.IO.DirectoryInfo pour recuperer la liste des fichiers d'un repertoire.Cela fonctionne qd on passe en parametre
utilisateur active directory et droit sur repertoire [ par grossetruieviolette ]
bonjour,je suis confronté a un probleme : en effet je desire modifier les droits d'un repertoire pour donner l'attribut "modifier" et "lire" a pl
Creer un repertoire [ par fred65200 ]
Bonjour à tous, depuis ce matin, je galére pour trouver la synthaxe pour la création d'un répertoire et de sous répertoire. J
[c#]FTP [ par 00ali00 ]
j'ai réussi à me connecter au serveur ftp mais je voudrais savoir quel est le repertoire courant du site. Est ce qu'il existe une commande o
probleme repertoire [ par emmanuel9 ]
Bonjour à tous, En faite j'ai un repertoire avec pleins de fichier et je voudrais les copier vers un repertoire, quel est la meilleur méth
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|