コード例 #1
0
ファイル: Tp2C.cs プロジェクト: stephantasy/CSharp_H18_2
        // 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, Personne[] tab, out int nb)
        {
            nb = 0;
            StreamReader sr    = File.OpenText(nomFichier);
            string       ligne = "";

            // On parcours le fichier
            while ((ligne = sr.ReadLine()) != null)
            {
                string nom    = ligne.Substring(0, 30).Trim();
                char   sexe   = ligne.Substring(30, 1)[0];
                double taille = Double.Parse(ligne.Substring(31, 10));
                double poids  = Double.Parse(ligne.Substring(42, 15));
                int    numero = int.Parse(ligne.Substring(57));
                tab[nb++] = new Personne(nom, sexe, taille, poids, numero);
            }
            sr.Close();
            Console.WriteLine("Fin de la lecture du fichier {0}. Il contient {1} personnes.", nomFichier, nb);
        }
コード例 #2
0
ファイル: Tp2C.cs プロジェクト: stephantasy/CSharp_H18_2
        // Ajoute une personne dans le tableau
        private static void InsererPersonne(Personne[] pers, Personne nouvellePersonne, ref int nbPers)
        {
            int index = -1;

            // On s'assure qu'il y a de place dans le tableau
            if (nbPers < pers.Length)
            {
                // On recherche où insérer le numéro
                index = CherchePositionNumero(pers, nouvellePersonne.Numero);
            }
            // Si index est positif, c'est qu'il y a de la place
            if (index >= 0)
            {
                Console.WriteLine("Insertion à l'index {0} de : \n{1}", index, nouvellePersonne);
                Tools.InsererLigneDansTableau(pers, nouvellePersonne, index);
                nbPers++;   // On n'oubli pas d'incérmenter le nombre de personne
            }
            else
            {
                Console.WriteLine("Impossible d'insérer une nouvelle personne, il n'y a plude de place dans le tableau.");
            }
        }
コード例 #3
0
ファイル: Tp2C.cs プロジェクト: stephantasy/CSharp_H18_2
        // Point d'entré du programme
        static void Main(string[] args)
        {
            string    nomFichier = "met_cs_h18.txt";
            const int maxPers    = 30;

            Personne[] pers = new Personne[maxPers];

            // 1. Lire le fichier, de remplir le tableau pers (tableau d’objets de la classe Personne) et de compter puis de transmettre par sortie le nombre de personnes lues;
            AfficheTitre("1. Lire le fichier, remplir pers[] et compter le nombre de personnes :");
            LireFichier(nomFichier, pers, out int nbPers);


            // 2. Afficher le contenu du tableau pers en utilisant la redéfinition de ToString;
            AfficheTitre("2. Afficher le contenu du tableau pers en utilisant la redéfinition de ToString :");
            AfficherContenuTableau(pers);
            Console.WriteLine("");


            // 3. Chercher puis modifier le sexe de la personne ayant le numéro 2325 (sexe féminin au lieu de masculin)
            AfficheTitre("3. Chercher puis modifier le sexe de la personne 2325 :");
            ModifierSexe(pers, 2325, 'F');


            /* 4. Chercher séquentiellement et afficher les résultats de la recherche de:
             *          Coutu Pierre, Robitaille Suzanne et Gagnon Daniel
             *  On affiche toutes les personnes trouvées s’il y en a plusieurs;*/
            AfficheTitre("4. Chercher séquentiellement et afficher les résultats de la recherche :");
            string[] chercherPers = { "Coutu Pierre", "Robitaille Suzanne", "Gagnon Daniel" };
            RechercherSeqAffiche(chercherPers, pers);
            Console.WriteLine("");


            // 5. Trier le tableau pers (avec QuickSort) selon les numéros des personnes;
            AfficheTitre("5. Tri du tableau pers (avec QuickSort) selon les numéros des personnes :");
            TriAvecQuickSort(pers, nbPers);


            // 6. Afficher le contenu du tableau pers qui vient d’être trié;
            AfficheTitre("6. Affichage du tableau trié :");
            AfficherContenuTableau(pers);
            Console.WriteLine("");

            // 7. Chercher avec la recherche dichotomique et afficher les résultats de la recherche des personnes ayant des numéros suivants: 4612, 4371, 2325 et 9876
            AfficheTitre("7. Chercher avec la recherche dichotomique et afficher les résultats  :");
            int[] chercherNumero = { 4612, 4371, 2325, 9876 };
            RechercheDichoAffiche("", chercherNumero, pers, nbPers);


            // 8. Supprimer la personne ayant le numéro 4371
            AfficheTitre(" 8. Supprimer la personne ayant le numéro 4371 :");
            SupprimerPersonne(4371, pers, ref nbPers);
            Console.WriteLine("");


            // 9. Ajouter 4 cm à la taille de la personne ayant le numéro 2636
            AfficheTitre("9. Ajouter 4 cm à la taille de la personne ayant le numéro 2636 :");
            ModifierTaille(2636, 4, pers, nbPers);
            Console.WriteLine("");


            /* 10. Insérer la personne suivante:
             *          Gosselin Laurent, sexe masculin, taille 1.68 mètre, 72.1 kg, numéro 3430
             *  en conservant l’ordre trié des numéros du tableau. On réaffiche le contenu du tableau.*/
            AfficheTitre("10-1. Insérer une personne :");
            Personne nouvellePersonne = new Personne("Gosselin Laurent", 'M', 1.68, 72.1, 3430);

            InsererPersonne(pers, nouvellePersonne, ref nbPers);
            AfficheTitre("10-2. Contenu du tableau après insertion :");
            AfficherContenuTableau(pers);
            Console.WriteLine("");
        }