Пример #1
0
        // Remplace toutes les occurance "continent" du pays demandé par "newContinent"
        private static void ModifierContinent(Pays[] pays, string nomPays, char newContinent)
        {
            Pays aChercher = new Pays(' ', nomPays, "", 0, 0);
            int  pos;

            if ((pos = Array.IndexOf(pays, aChercher)) >= 0)
            {
                pays[pos].Continent = newContinent;
                Console.WriteLine(" - Le continent du pays '{0}' a été modifiée avec la valeur '{1}'", nomPays, newContinent);
            }
            else
            {
                Console.WriteLine(" - Le pays {0} n'a pas été trouvé dans le tableau", nomPays);
            }
        }
Пример #2
0
        // Remplace toutes les occurances "capitale" du pays demandé par "newCapitale"
        private static void ModifierCapitale(Pays[] pays, string nomPays, string newCapitale)
        {
            Pays aChercher = new Pays(' ', nomPays, "", 0, 0);
            int  pos;

            if ((pos = Array.IndexOf(pays, aChercher)) >= 0)
            {
                pays[pos].Capitale = newCapitale;
                Console.WriteLine(" - La capitale du pays '{0}' a été modifié avec la valeur '{1}'", nomPays, newCapitale);
            }
            else
            {
                Console.WriteLine(" - Le pays {0} n'a pas été trouvé dans le tableau", nomPays);
            }
        }
Пример #3
0
        // Modifie toutes les occurances "population" du pays demandé en le multipliant par "produit"
        private static void ModifierPopulationMultiplier(Pays[] pays, string nomPays, int produit)
        {
            Pays aChercher = new Pays(' ', nomPays, "", 0, 0);
            int  pos;

            if ((pos = Array.IndexOf(pays, aChercher)) >= 0)
            {
                pays[pos].Population *= produit;
                Console.WriteLine(" - La population du pays '{0}' a été multiplée par {1}. Nouvelle valeur = {2}", nomPays, produit, pays[pos].Population);
            }
            else
            {
                Console.WriteLine(" - Le pays {0} n'a pas été trouvé dans le tableau", nomPays);
            }
        }
Пример #4
0
 // Cherche la liste des pays demandés et affiche leur informations
 private static void ChercheAffichePays(Pays[] pays, string[] listPays)
 {
     foreach (var p in listPays)
     {
         Pays aChercher = new Pays(' ', p, "", 0, 0);
         int  pos       = Array.BinarySearch(pays, aChercher);
         if (pos > 0)
         {
             Console.WriteLine(pays[pos]);
         }
         else
         {
             Console.WriteLine("Le pays {0} n'existe pas dans le tableau", p);
         }
     }
 }
Пример #5
0
        // Crée un fichier contenant les pays du continent spécifié
        private static void CreerFichier(Pays[] pays, int nbPays, char codeContinent)
        {
            string       fileName = Pays.GetContinentName(codeContinent) + ".txt";
            FileInfo     fichier  = new FileInfo(fileName);
            StreamWriter sw       = fichier.CreateText();

            for (int i = 0; i < nbPays; i++)
            {
                if (pays[i].Continent == codeContinent)
                {
                    sw.WriteLine("{0}{1,-35}{2,-26}{3,8}{4,15}", pays[i].Continent, pays[i].Nom, pays[i].Capitale, pays[i].Superficie, pays[i].Population);
                }
            }
            sw.Close();
            Console.WriteLine("Le fichier '{0}' a été créé.", fileName);
        }
Пример #6
0
        // Affiche le pays le plus peuplé du continent spécifié
        private static void AfficherPlusPeuple(Pays[] pays, char codeContinent)
        {
            int index      = 0;
            int plusPeuple = int.MinValue;

            for (int i = 0; i < pays.Length; i++)
            {
                if (pays[i] != null && pays[i].Continent == codeContinent)
                {
                    if (plusPeuple < pays[i].Population)
                    {
                        plusPeuple = pays[i].Population;
                        index      = i;
                    }
                }
            }
            Console.WriteLine(" - Le pays le plus peuplé d'{0} est : {1}", Pays.GetContinentName(codeContinent), pays[index].Nom);
        }
Пример #7
0
        // Lit le fichier passé en paramètre, rempli le tableau avec les données lues et compte le nombre de personnes
        private static void LireFichier(string nomFichier, Pays[] tab, out int nb)
        {
            nb = 0;
            StreamReader sr    = File.OpenText(nomFichier);
            string       ligne = "";

            // On parcours le fichier
            while ((ligne = sr.ReadLine()) != null)
            {
                char   codeContinent = ligne.Substring(0, 1)[0];
                string nom           = ligne.Substring(1, 35).Trim();
                string capitale      = ligne.Substring(36, 25).Trim();
                int    superficie    = int.Parse(ligne.Substring(61, 10));
                int    population    = int.Parse(ligne.Substring(71));
                tab[nb++] = new Pays(codeContinent, nom, capitale, superficie, population);
            }
            sr.Close();
            Console.WriteLine(" - Fin de la lecture du fichier {0}. Il contient {1} pays.", nomFichier, nb);
        }
Пример #8
0
        // Entrée du programme
        static void Main(string[] args)
        {
            const string fileName = "Nations.txt";
            const int    maxPays  = 250;

            Pays[] pays = new Pays[maxPays];


            //1. lire le fichier, remplir un tableau de pays, compter puis transmettre le nombre effectif de pays lus;
            AfficheTitre("1. lire le fichier, remplir un tableau de pays, compter puis transmettre le nombre effectif de pays lus :");
            LireFichier(fileName, pays, out int nbPays);
            Console.WriteLine("");

            //2. Afficher seulement 15 premiers pays lus (en utilisant, entre autres, la redéfinition de ToString) après la lecture;
            AfficheTitre("2. Afficher seulement les 15 premiers pays lus :");
            AfficheTableau(pays, 15);
            Console.WriteLine("");


            //3. Faire la recherche séquentielle (avec Array.IndexOf …)  puis de :
            //	- modifier le continent de la Russie, c’est un pays d’Europe;
            //	- de modifier la capitale de la Chine, c’est Pekin;
            //	- de changer la population de l’Allemagne : c’est 10 fois la population lue
            //
            //	On réaffiche 15 premiers pays du tableau après ces modifications;
            AfficheTitre("3a. Faire la recherche séquentielle et modifier le continent de la Russie :");
            ModifierContinent(pays, "Russie", '5');

            AfficheTitre("3b. Faire la recherche séquentielle et modifier la capitale de la Chine :");
            ModifierCapitale(pays, "Chine", "Pekin");

            AfficheTitre("3c. Faire la recherche séquentielle et modifier la population de l’Allemagne :");
            ModifierPopulationMultiplier(pays, "Allemagne", 10);

            AfficheTitre("3d. Afficher seulement les 15 premiers pays lus :");
            AfficheTableau(pays, 15);
            Console.WriteLine("");

            //4. Afficher les pays dont le nom est identique au nom de la capitale (exemples Luxembourg, Panama, etc)
            AfficheTitre("4. Afficher les pays dont le nom est identique au nom de la capitale :");
            AffichichePaysEgalCapitale(pays);
            Console.WriteLine("");


            //5. Déterminer puis afficher :
            //	- le pays d’Europe dont la densité est la plus petite.
            //	- le pays d’Océanie dont la densité est la plus petite. (densité : nombre d’habitants par km2)
            AfficheTitre("5a. Déterminer puis afficher le pays d’Europe dont la densité est la plus petite :");
            AfficherPlusPetiteDensite(pays, '5');
            AfficheTitre("5b. Déterminer puis afficher le pays d’Océanie dont la densité est la plus petite :");
            AfficherPlusPetiteDensite(pays, '4');
            Console.WriteLine("");


            //6. Déterminer puis afficher le pays le plus peuplé
            //	- du continent Amérique ;
            //	- du continent Europe
            AfficheTitre("6a. Déterminer puis afficher le pays le plus peuplé du continent Amérique :");
            AfficherPlusPeuple(pays, '2');
            AfficheTitre("6b. Déterminer puis afficher le pays le plus peuplé du continent Europe :");
            AfficherPlusPeuple(pays, '5');
            Console.WriteLine("");


            //7. Déterminer et d’afficher les informations :
            //	a) des pays dont le nom commence par une voyelle
            //	b) du pays d’Amérique dont  la capitale contient le plus de lettres alphabétiques
            AfficheTitre("7a. Déterminer et afficher les informations des pays dont le nom commence par une voyelle :");
            AfficherPaysCommenceVoyelle(pays);
            AfficheTitre("7b. Déterminer et afficher les informations du pays d’Amérique dont la capitale contient le plus de lettres :");
            AfficherPaysCapitalePluslettres(pays, '2');
            Console.WriteLine("");


            //8. Trier (avec Array.Sort) selon les noms des pays et d’afficher les 10 premiers pays après le tri
            AfficheTitre("8. Trier (avec Array.Sort) selon les noms des pays et d’afficher les 10 premiers pays après le tri : ");
            Array.Sort(pays, 0, nbPays);
            AfficheTableau(pays, 10);
            Console.WriteLine("");


            //9. Chercher (en utilisant la recherche avec Array.BinarySearch) puis afficher les pays suivants :
            //                - Chili, France, Chine,  Mexique
            AfficheTitre("9. Chercher (en utilisant la recherche avec Array.BinarySearch) puis afficher les pays Chili, France, Chine,  Mexique :");
            string[] listPays = { "Chili", "France", "Chine", "Mexique" };
            ChercheAffichePays(pays, listPays);
            Console.WriteLine("");


            //10a. Créer le fichier texte du nom Europe.txt qui contient seulement les pays d’Europe;
            AfficheTitre("10a. Créer le fichier texte du nom Europe.txt qui contient seulement les pays d’Europe :");
            CreerFichier(pays, nbPays, '5');

            //10b. Créer le fichier texte du nom Asie.txt qui contient seulement les pays d’Asie.
            AfficheTitre("10b. Créer le fichier texte du nom Asie.txt qui contient seulement les pays d’Asie :");
            CreerFichier(pays, nbPays, '3');
            Console.WriteLine("");
        }
Пример #9
0
        // Affiche le nom dy pays ayant la plus petite densité sur le continent spécifié
        private static void AfficherPlusPetiteDensite(Pays[] pays, char codeContinent)
        {
            int   index   = 0;
            float densite = float.MaxValue;

            for (int i = 0; i < pays.Length; i++)
            {
                if (pays[i] != null && pays[i].Continent == codeContinent)
                {
                    var temp = (float)pays[i].Population / pays[i].Superficie;
                    if (temp < densite)
                    {
                        densite = temp;
                        index   = i;
                    }
                }
            }
            Console.WriteLine(" - Le pays d'{0} ayant la plus petite densité est : {1}", Pays.GetContinentName(codeContinent), pays[index].Nom);
        }