예제 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Клуб любителів туризму.");
            //Створюємо країни та міста
            Country Greece1  = new Country("Греція", "Афіни");      //History
            Country Greece2  = new Country("Греція", "Маратос");    //Camping
            Country Ukraine1 = new Country("Україна", "Копачів");   //Camping
            Country Ukraine2 = new Country("Україна", "Кирилівка"); //Sea
            Country Turkey1  = new Country("Турція", "Анталія");    //Sea
            Country Turkey2  = new Country("Турція", "Аланія");     //Sea
            Country Turkey3  = new Country("Турція", "Сіде");       //History
            Country Egypt1   = new Country("Єгипет", "Хургада");    //Sea
            Country Egypt2   = new Country("Єгипет", "Каїр");       //History
            Country America1 = new Country("Америка", "Флорида");   //Sea

            Tours[] Choices = new Tours[5];
            //Створюємо тури
            //Tours TourA1CG1 = new Tours("Histour", Greece1, "Історія", 5, 9);
            Choices[0] = new Tours("Histour", Greece1, "History", 5, 9);
            //Tours TourA1CT1 = new Tours("Histour", Turkey1, "Історія", 2, 11);
            Choices[1] = new Tours("LifeToure", Ukraine1, "Camping", 4, 10);
            Choices[2] = new Tours("FlyBoy", Turkey1, "Sea", 3, 10);
            Choices[3] = new Tours("FlyBoy", Egypt2, "Sea", 3, 10);
            Choices[4] = new Tours("Histoure", Turkey3, "History", 1, 12);

            Console.Write("Який вид туру ви бажаєте? ");
            string UserType = Console.ReadLine();

            Console.Write("З якого місяця ви плануєте подорож? ");
            int UserStart = Convert.ToInt32(Console.ReadLine());

            Console.Write("До якого місяця ви плануєте подорож? ");
            int   UserEnd       = Convert.ToInt32(Console.ReadLine());
            Stack correct_tours = new Stack();

            for (int i = 0; i < Choices.Length; i++)
            {
                if (UserType == Choices[i].type && UserStart >= Choices[i].MonthSt && UserEnd <= Choices[i].MonthEnd)
                {
                    int check = 0;
                    foreach (Tours element in correct_tours)
                    {
                        if (element == Choices[i])
                        {
                            check = 1;
                            break;
                        }
                    }
                    if (check != 1)
                    {
                        correct_tours.Push(Choices[i]);
                    }
                }
            }
            Stack correct_agencies = new Stack();

            foreach (Tours element in correct_tours)
            {
                int check = 0;
                foreach (string name in correct_agencies)
                {
                    if (element.AgencyName == name)
                    {
                        check = 1;
                        break;
                    }
                }
                if (check != 1)
                {
                    correct_agencies.Push(element.AgencyName);
                }
            }

            Stack Final = new Stack();
            int   Count = 0;

            Console.WriteLine("Варіанти, які можуть Вас задовільнити:");
            foreach (string element in correct_agencies)
            {
                Console.WriteLine("Варіанти від агентства " + element);
                foreach (Tours tour in correct_tours)
                {
                    if (tour.AgencyName == element)
                    {
                        Count++;
                        Final.Push(tour);
                        Console.WriteLine(Count + ". Тур у " + tour.cityName + ", " + tour.counName + " від " + tour.MonthSt + " і до " + tour.MonthEnd);
                    }
                }
            }
            Console.Write("Ivan, please, write which to choose? Input '0' to cancel everything. ");
            int input = Convert.ToInt32(Console.ReadLine());

            if (input == 0)
            {
                Console.WriteLine("OK, you win, bye-bye!");
            }
            else
            {
                //Make into function
                //int Length = Final.Count;
                //for (int i = 0; i < Math.Abs(Count - input); i++)
                //    Final.Pop();
                //Tours FT = Final.Pop();
                int   temp = 0;
                Tours FT   = null;
                foreach (Tours element in Final)
                {
                    if (temp != Final.Count - input)
                    {
                        temp++;
                    }
                    else
                    {
                        FT = element;
                        break;
                    }
                }
                Console.WriteLine("Ви обрали тур від агентства " + FT.AgencyName + " на тематику " + FT.type + " у " + FT.cityName + ", " + FT.counName + " від " + FT.MonthSt + " і до " + FT.MonthEnd);
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            Country[] Countries = new Country[5];
            Countries[0] = new Country("Греція", "Сучасна Греція — спадкоємиця культури Стародавньої Греції " +
                                       "і вважається колискою західної цивілізації, батьківщиною світової демократії, західної філософії," +
                                       " основних принципів фізико-математичних наук, мистецтва театру та Олімпійських ігор сучасності." +
                                       " Грецька мова має найдовшу історію серед усіх мов індоєвропейської групи," +
                                       " адже нараховує 34 століття тільки писемного періоду. Завдяки своїй унікальній географії, " +
                                       "Греція має низку мікрокліматичних зон з місцевими відмінностями. У північній та північно-східній частині материкової Греції, " +
                                       "на захід від гірського пасма Пінд, клімат вологіший і має деякі риси, типові для морського клімату." +
                                       " На схід від Пінду підсоння здебільшого посушливе, а погода порівняно більш вітряна.");
            Countries[1] = new Country("Україна", "Гірські масиви в Україні представлені частиною Карпатських гір" +
                                       " — Українськими Карпатами, де розташована найвища вершина України —" +
                                       " гора Говерла (2061 м над рівнем моря), та Кримськими горами, найвищою вершиною яких є" +
                                       " гора Роман-Кош (1545 м).");
            Countries[2] = new Country("Турція", "Приваблюють туристів погодні умови узбережної частини Туреччини, " +
                                       "де панує субтропічний середземноморський клімат, або так звані сухі субтропіки. Він характеризується доволі " +
                                       "сухим і спекотним літом, що є надзвичайно сприятливою умовою для літнього відпочинку. У внутрішніх районах " +
                                       "панує континентальний клімат, на сході у горах переважає гірський.");
            Countries[3] = new Country("Єгипет", "Якщо Ви вибрали Єгипет для відпочинку, перед Вами відкриваються безмежні " +
                                       "можливості, використовуйте їх усі. Єгипет – це шанс доторкнутися до історії найдавнішої цивілізації, " +
                                       "до благ природи і всіх принад сучасного сервісу. Насолоджуйтесь курортами, пам’ятниками, морем і сонцем.");
            Countries[4] = new Country("США", "Відкрийте для себе Америку. Сполучені Штати Америки можуть запропонувати безліч нового, приємного, корисного. Ви можете дізнатися цікаві факти з історії США; відвідати парки, побачити природні дива; поринути у мистецтво та архітектуру; " +
                                       "відпочити на пляжах, спробувати наші страви й вина; насолодитися мальовничими пейзажами за вікном автомобіля, зарядитися енергією в активному відпочинку та спорті.");

            Console.WriteLine("Клуб любителів туризму.");
            Console.WriteLine("Панасенко Іван Олегович, ІС-93, ФІОТ, АСОІУ КПІ, Київ-2020");
            //Створюємо міста
            City[] Cities = new City[11];
            Cities[0]  = new City("Греція", "Афіни", "Lorem Ipsum");         //History
            Cities[1]  = new City("Греція", "Маратос", "Lorem Ipsum");       //Camping
            Cities[2]  = new City("Україна", "Копачів", "Lorem Ipsum");      //Camping
            Cities[3]  = new City("Україна", "Кирилівка", "Lorem Ipsum");    //Sea
            Cities[4]  = new City("Турція", "Анталія", "Lorem Ipsum");       //Sea
            Cities[5]  = new City("Турція", "Аланія", "Lorem Ipsum");        //Sea
            Cities[6]  = new City("Турція", "Сіде", "Lorem Ipsum");          //History
            Cities[7]  = new City("Єгипет", "Хургада", "Lorem Ipsum");       //Sea
            Cities[8]  = new City("Єгипет", "Каїр", "Lorem Ipsum");          //History
            Cities[9]  = new City("Америка", "Флорида", "Lorem Ipsum");      //Sea
            Cities[10] = new City("Єгипет", "Шарм-ель-Шейх", "Lorem Ipsum"); //Sea

            Agency[] agencies = new Agency[3];
            agencies[0] = new Agency("Histour", "Агентство Histour специфікується на історичному туризмі та часто пропонує тури до відомих історичних міст та пам'яток.");
            agencies[1] = new Agency("LifeTour", "LifeTour сміливо можна назвати звичайним турагентством без певною специфікацією. У них завжди можна буде знайти тури туди, де Ви бажаєте провести вільний час і так, як Ви цього бажаєте.");
            agencies[2] = new Agency("FlyBoy", "Туристичне агентство FlyBoy можна вважати молодіжним, оскільки воно специфікується на курортних місцях, які сподобаються тим, хто обожнює активний відпочинок.");

            Type[] types = new Type[3];
            types[0] = new Type("Море", "Морський туризм пропонує Вам можливість відвідати курортні місця із теплим кліматом. Головною перлиною цих подорожей є море та її безмежні таємниці. Послуги, якими Ви можете скористатися," +
                                " починаються від проведення часу у елітному готелі типу 'All Inclusive' біля побережжя моря, та доповнюються дайвінгом та прогулянками на катерах.");
            types[1] = new Type("Історія", "Історичний туризм фокусується на місцевих відомих та загадкових пам'ятках. Відвідини музеїв - це не єдине, що можуть дані тури Вам запропонувати. Ви отримаєте можливість безпосередньо " +
                                "доторкнутися до історії на спеціальних екскурсіях.");
            types[2] = new Type("Кемпінг", "Кемпінг пропонує Вам відпочинок на природі серед гір. Із наметом за спиною, Ви відвідаєте як і чудові пам'ятки природи та архітектури, так і місця з неймовірним краєвидом, який Ви навряд-чи забудете!");

            Tours[] Choices = new Tours[6];
            //Створюємо тури
            //Tours TourA1CG1 = new Tours("Histour", Greece1, "Історія", 5, 9);
            Choices[0] = new Tours(agencies[0].AgencyName, agencies[0].info, Cities[0], types[1].name, 5, 9, "Відвідайте місто Афіни - столицю Греції! ");
            //Tours TourA1CT1 = new Tours("Histour", Turkey1, "Історія", 2, 11);
            Choices[1] = new Tours(agencies[1].AgencyName, agencies[1].info, Cities[2], types[2].name, 4, 10, "Маратос - гори Греції, на яких знаходяться багато церков та монастирів. Неймовірні краєвиди гарантовані.");
            Choices[2] = new Tours(agencies[2].AgencyName, agencies[2].info, Cities[4], types[0].name, 3, 10, "Анталія - відоме курортне місто Турції. Турагентство допоможе Вам підібрати комфортний готель з усіма видами послуг, які Ви бажатимете.");
            Choices[3] = new Tours(agencies[2].AgencyName, agencies[2].info, Cities[10], types[0].name, 3, 10, "Шарм-ель-Шейх - морський курорт Єгипта. Неймовірна морська фауна не залишить байдужим нікого!");
            Choices[4] = new Tours(agencies[0].AgencyName, agencies[0].info, Cities[6], types[1].name, 1, 12, "Сіде - турецьке місто з неймовірною історією.");
            Choices[5] = new Tours(agencies[0].AgencyName, agencies[0].info, Cities[8], types[1].name, 1, 12, "Каїр - столиця Єгипта, історія приховує багато таємниць про своє минуле. Розкрийте їх всі!");

            int choice = 7;

            while (choice != 0)
            {
                Console.WriteLine("Будь-ласка, оберіть бажану дію:");
                Console.WriteLine("1. Забронювати тур;");
                Console.WriteLine("2. Отримати інформацію про країну;");
                Console.WriteLine("3. Отримати інформацію про тематику турів;");
                Console.WriteLine("4. Отримати інформацію про тур;");
                Console.WriteLine("5. Отримати інформацію про тур агентства;");
                Console.WriteLine("Натисніть 0 щоб завершити роботу програми.");
                choice = Convert.ToInt32(Console.ReadLine());
                switch (choice)
                {
                case 1:
                    Console.WriteLine("Який вид туру ви бажаєте? ");
                    for (int i = 0; i < types.Length; i++)
                    {
                        Console.WriteLine((i + 1) + ". " + types[i].name);
                    }
                    Console.Write("Введіть номер виду туру: ");
                    int TypeToChoose1 = Convert.ToInt32(Console.ReadLine());
                    if (TypeToChoose1 - 1 >= types.Length || TypeToChoose1 - 1 < 0)
                    {
                        Console.WriteLine("Неправильно введено номер типу туру.");
                        break;
                    }
                    string UserType = types[TypeToChoose1 - 1].name;
                    Console.Write("З якого місяця ви плануєте подорож? ");
                    int UserStart = Convert.ToInt32(Console.ReadLine());
                    if (UserStart <= 0 || UserStart > 12)
                    {
                        Console.WriteLine("Неправильно введено місяць!");
                        break;
                    }
                    Console.Write("До якого місяця ви плануєте подорож? ");
                    int UserEnd = Convert.ToInt32(Console.ReadLine());
                    if (UserEnd <= 0 || UserEnd > 12)
                    {
                        Console.WriteLine("Неправильно введено місяць!");
                        break;
                    }
                    //  Додавання правильних турів в окремий стек
                    Stack correct_tours = new Stack();
                    for (int i = 0; i < Choices.Length; i++)
                    {
                        if (UserType == Choices[i].type && ((UserStart >= Choices[i].MonthSt && UserEnd <= Choices[i].MonthEnd)))
                        {
                            int check = 0;
                            foreach (Tours element in correct_tours)
                            {
                                if (element == Choices[i])
                                {
                                    check = 1;
                                    break;
                                }
                            }
                            if (check != 1)
                            {
                                correct_tours.Push(Choices[i]);
                            }
                        }
                    }
                    //Додавання правильних агентств в окремий стек
                    Stack correct_agencies = new Stack();
                    foreach (Tours element in correct_tours)
                    {
                        int check = 0;
                        foreach (string name in correct_agencies)
                        {
                            if (element.AgencyName == name)
                            {
                                check = 1;
                                break;
                            }
                        }
                        if (check != 1)
                        {
                            correct_agencies.Push(element.AgencyName);
                        }
                    }
                    //Створення фінального стеку
                    Stack Final = new Stack();
                    int   Count = 0;
                    if (correct_tours.Count == 0)
                    {
                        Console.WriteLine("Пробачте, жодне агентство не має пропозиції, яка може Вас задовільнити");
                        Console.ReadLine();
                    }
                    else
                    {
                        Console.WriteLine("Варіанти, які можуть Вас задовільнити:");
                        foreach (string element in correct_agencies)
                        {
                            Console.WriteLine("Варіанти від агентства " + element);
                            foreach (Tours tour in correct_tours)
                            {
                                if (tour.AgencyName == element)
                                {
                                    Count++;
                                    Final.Push(tour);
                                    Console.WriteLine(Count + ". Тур у " + tour.cityName + ", " + tour.counName + " від " + tour.MonthSt + " і до " + tour.MonthEnd);
                                }
                            }
                        }
                        Console.Write("Введіть номер туру, який Ви хочете обрати. Або натисніть '0', щоб вийти з програми, нічого не обравши. ");
                        int input = Convert.ToInt32(Console.ReadLine());
                        if (input == 0)
                        {
                            Console.WriteLine("Дякуємо за користування нашими послугами!");
                            Console.ReadLine();
                        }
                        else
                        {
                            int   temp = 0;
                            Tours FT   = null;
                            foreach (Tours element in Final)
                            {
                                if (temp != Final.Count - input)
                                {
                                    temp++;
                                }
                                else
                                {
                                    FT = element;
                                    break;
                                }
                            }
                            Console.WriteLine("Ви обрали тур від агентства " + FT.AgencyName + " на тематику " + FT.type + " у " + FT.cityName + ", " + FT.counName + " від " + FT.MonthSt + " місяця і до " + FT.MonthEnd + " місяця.");
                            Console.WriteLine("Дякуємо за користування нашими послугами!");
                            Console.ReadLine();
                        }
                    }
                    break;

                case 2:
                    Console.WriteLine("Про яку країну Ви хочете дізнатися більше?");
                    for (int i = 0; i < Countries.Length; i++)
                    {
                        Console.WriteLine((i + 1) + ". " + Countries[i].name);
                    }
                    Console.Write("Введіть номер країни: ");
                    int CountryOfChoice = Convert.ToInt32(Console.ReadLine());
                    if (CountryOfChoice - 1 >= Countries.Length || CountryOfChoice - 1 < 0)
                    {
                        Console.WriteLine("Неправильно введено номер країни.");
                    }
                    else
                    {
                        Countries[CountryOfChoice - 1].ShowInfoCountry();
                    }
                    break;

                case 3:
                    Console.WriteLine("Про який вид туризму Ви хочете дізнатися більше?");
                    for (int i = 0; i < types.Length; i++)
                    {
                        Console.WriteLine((i + 1) + ". " + types[i].name);
                    }
                    Console.Write("Введіть номер виду туру: ");
                    int TypeToChoose = Convert.ToInt32(Console.ReadLine());
                    if (TypeToChoose - 1 >= types.Length || TypeToChoose - 1 < 0)
                    {
                        Console.WriteLine("Неправильно введено номер типу туру.");
                    }
                    else
                    {
                        types[TypeToChoose - 1].ShowInfoType();
                    }
                    break;

                case 4:
                    Console.WriteLine("Про який тур Ви хочете дізнатися більше?");
                    for (int i = 0; i < Choices.Length; i++)
                    {
                        Console.WriteLine((i + 1) + ". Тур у " + Choices[i].cityName + ", " + Choices[i].counName + " від " + Choices[i].MonthSt + " місяця і до " + Choices[i].MonthEnd + " місяця від агентства " + Choices[i].AgencyName);
                    }
                    Console.Write("Введіть номер туру: ");
                    //int check4 = 0;
                    int TourOfChoice = Convert.ToInt32(Console.ReadLine());
                    if (TourOfChoice - 1 >= Choices.Length || TourOfChoice - 1 < 0)
                    {
                        Console.WriteLine("Неправильно введено номер туру.");
                    }
                    else
                    {
                        Choices[TourOfChoice - 1].ShowInfoTour();
                    }
                    break;

                case 5:
                    Console.WriteLine("Про які тур агентства Ви хочете дізнатися більше?");
                    for (int i = 0; i < agencies.Length; i++)
                    {
                        Console.WriteLine((i + 1) + ". Тур агентство " + agencies[i].AgencyName + ".");
                    }
                    Console.Write("Введіть номер тур агентства: ");
                    int AgencyOfChoice = Convert.ToInt32(Console.ReadLine());
                    if (AgencyOfChoice - 1 >= agencies.Length || AgencyOfChoice - 1 < 0)
                    {
                        Console.WriteLine("Неправильно введено номер агентства.");
                    }
                    else
                    {
                        agencies[AgencyOfChoice - 1].ShowInfoAgency();
                    }
                    break;

                case 0:
                    Console.WriteLine("Дякуємо за користування нашими послугами!");
                    Console.ReadKey();
                    break;
                }
            }
        }