Ejemplo n.º 1
0
        // метод ввода фамилии гимнаста для сравнения
        public AbstrClass InpGymnast(Case <AbstrClass> spmen)
        {
            AbstrClass X = new Gymnasts();

            Console.Write("\nВведите фамилию гимнаста: ");
            string s;

            s = Console.ReadLine();
            for (int i = 0; i < spmen.Length; i++)
            {
                if (s == spmen[i].Name && spmen[i] is Gymnasts)
                {
                    return(spmen[i]);
                }
            }
            Console.WriteLine("\nне нашлось гимнастов с указанной фамилией.");
            string yes = "";
            int    j   = 0;

            do
            {
                for (; ;)
                {
                    j = rand.Next(0, spmen.Length);
                    if (spmen[j].KindOfSport == "гимнаст")
                    {
                        break;
                    }
                }
                Console.WriteLine("\n\n" + spmen[j].Name + " подойдёт? (нажмите \"y\" для подтверждения, либо другую кнопку для перехода дальше)");
                yes = Console.ReadLine();
                if (yes == "y" || yes == "Y" || yes == "н" || yes == "Н")
                {
                    //X = spmen[j];
                    return(spmen[j]);
                }
            } while (yes != "y" || yes != "Y" || yes != "н" || yes != "Н");
            return(X);
        }
Ejemplo n.º 2
0
        public void CompGymnast(Case <AbstrClass> spmen)
        {
            Gymnasts Sp1 = (Gymnasts)InpGymnast(spmen);
            Gymnasts Sp2 = (Gymnasts)InpGymnast(spmen);

            if (Sp1 > Sp2)
            {
                Console.WriteLine("\n\n-------------------------------------------------------------------------");
                Console.WriteLine("\nу гимнаста " + Sp1.Name + " лучший результат выше, чем у " + Sp2.Name);
                Console.WriteLine("\n-------------------------------------------------------------------------");
            }
            else if (Sp2 > Sp1)
            {
                Console.WriteLine("\n\n-------------------------------------------------------------------------");
                Console.WriteLine("\nу гимнаста " + Sp2.Name + " лучший результат выше, чем у " + Sp1.Name);
                Console.WriteLine("\n-------------------------------------------------------------------------");
            }
            else
            {
                Console.WriteLine("\n\n-------------------------------------");
                Console.WriteLine("\nлучшие результаты гимнастов равны!");
                Console.WriteLine("\n-------------------------------------");
            }
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            Console.SetWindowSize(140, 50);  // задаём размер окна консоли
            Console.WriteLine("\n\n--------------------------<экзамен C# Булгаков >-------------------------------------------\n");

            // 1. Создаём коллекцию
            Case <AbstrClass> sp = new Case <AbstrClass>();

            FileInp inp_str = new FileInp();
            string  inp     = inp_str.ReadFile(); // получаем строку из файла


            // Отделяем строки друг от друга + помещаем их в массив строк:
            string[] TimetableLines = inp.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
            int      j = -1;                        //счётчик строк

            foreach (string line in TimetableLines) //перебираем полученные предложения
            {
                j++;                                //номер строки

                // 1. убираем лишние пробелы между словами:
                string pattern     = "\\s+";
                string replacement = "";
                Regex  rgx_w       = new Regex(pattern);
                string line_w      = rgx_w.Replace(line, replacement);

                // делим строку на слова и записываем в строковый массив
                string[] words = line_w.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

                List <double> OcRes = new List <double>();
                int           num_w = -1; // индекс слова
                // перебираем слова в предложении
                foreach (string w in words)
                {
                    ++num_w;  // счётчик слов
                    switch (num_w)
                    {
                    case 0:                                    // выделение памяти на объект и вид спорта
                        //t++; // счётчик слов
                        if (String.Compare(w, "гимнаст") == 0) // если гимнаст
                        {
                            sp[j]             = new Gymnasts();
                            sp[j].KindOfSport = w;
                        }
                        else if (String.Compare(w, "пловец") == 0)      // если пловец
                        {
                            sp[j]             = new Swimmer();
                            sp[j].KindOfSport = w;
                        }
                        break;

                    case 1:       // имя спортсмена
                        sp[j].Name = w;
                        break;

                    case 2:       // возраст
                        sp[j].Age = Convert.ToInt32(w);
                        break;

                    // время и оценки
                    // Всё, что попадётся в предложении после 3-ёй ';' - является оценками
                    default:
                        if (num_w > 2)
                        {
                            OcRes.Add(Convert.ToDouble(w));
                        }
                        break;
                    } // закрывающая switch
                }     // закрывающая foreach по словам
                sp[j].OcenResult = OcRes.ToArray(); // заносим каждый объект в массив   <---------------------------------------------------------------------------------
                if (sp[j] is Gymnasts)
                {
                    sp[j].SetOcen();
                }
            } // закрывающая foreach по строкам


            // отображение считанного из файла массива спортсменов
            int q = 0;

            //foreach (AbstrClass item in sp)
            //{
            //    //Console.WriteLine("Контроль объекта: ");
            //    sp[q].Show();
            //    q++;
            //}

            Console.WriteLine("\nТаблица №1: ");

            Table T1 = new Table(13, 16, 24, 34, "фамилия", "возраст", "вид спорта", "лучший результат");

            T1.Cap_table(T1, "список спортсменов без сортировки");
            q = 0;
            while (q < sp.Length)
            {
                if (sp[q] != null)
                {
                    AbstrClass.Tab(T1, sp[q]); // вывод каждого объекта
                }
                ++q;
            }
            T1.Base_table(T1);

            // сортировка по возрасту
            sp.SortAthletes();

            Console.WriteLine("\n\nТаблица №2: ");

            Table T2 = new Table(13, 16, 24, 34, "фамилия", "возраст", "вид спорта", "лучший результат");

            T1.Cap_table(T2, "список спортсменов, отсортированный по возрасту");
            q = 0;
            while (q < sp.Length)
            {
                if (sp[q] != null)
                {
                    AbstrClass.Tab(T2, sp[q]); // вывод каждого объекта
                }
                ++q;
            }
            T2.Base_table(T2);

            Console.WriteLine("\nСравниваем двух гимнастов по результатам:\n");

            Gymnasts gm = new Gymnasts();

            gm.CompGymnast(sp);

            //Вывод текущего времени
            Console.Write(DateTime.Now.ToString("HH:mm:ss   "));
            //Выводим дату с названием месяца
            Console.WriteLine(DateTime.Now.ToString("dd MMMM yyyy года\n"));
            Console.WriteLine("----------------------------------------<End>----------------------------------------------\n");
            Console.ReadKey();
        }