Beispiel #1
0
 public Hilo(Reloj reloj, Parking parking, char tipo, Func <long, int> accion,
             double t1_sig, double t2_sig, double t1_out, double t2_out)
 {
     this.reloj   = reloj;
     this.parking = parking;
     this.tipo    = tipo;
     this.accion  = accion;
     this.t1_sig  = t1_sig;
     this.t2_sig  = t2_sig;
     this.t1_out  = t1_out;
     this.t2_out  = t2_out;
 }
Beispiel #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("INICIO");
            Reloj r = new Reloj();

            //Vecinos:6, Trabajadores:2, Otros:1, _vacio:3 = 12 plazas
            char[]  plazas = "VVVVVVTTO___".ToCharArray();
            Parking p = new Parking(r, plazas);
            Hilo    trabajadores, vecinos, otros;

            trabajadores = new Hilo(r, p, 'T', A.Trabajador, 2, 8, 0.25, 1);
            vecinos      = new Hilo(r, p, 'V', A.Vecino, 5, 15, 1, 10);
            otros        = new Hilo(r, p, 'O', A.Otro, 5, 15, 1, 6);
            trabajadores.Empieza();
            vecinos.Empieza();
            otros.Empieza();
            trabajadores.Termina();
            vecinos.Termina();
            otros.Termina();
            Console.WriteLine("FIN");
        }
Beispiel #3
0
        public void mainMenu(Parking beePark)
        {
            bool repeat = false;
            bool exit   = false;

            do
            {
                Console.Clear();
                Console.WriteLine("Вітаємо вас на нашій парковці BeeParking!");
                Console.WriteLine("Чого бажаєте? Натисніть, будь ласка, відповідну клавішу");
                Console.WriteLine("========================================================");
                Console.WriteLine("1.   Припаркувати авто.");
                Console.WriteLine("2.   Поповнити баланс авто.");
                Console.WriteLine("3.   Забрати авто з парковки.");
                Console.WriteLine("4.   Превірити баланс Вашого авто");
                Console.WriteLine("5.   Вивести загальньний дохід парковки.");
                Console.WriteLine("6.   Вивести кількість вільних місць на парковці.");
                Console.WriteLine("7.   Вивести історію транзакцій за останню хвилину.");
                Console.WriteLine("8.   Вивести Transactions.log");
                Console.WriteLine("9.   Показати всі авто на парковці");
                Console.WriteLine("========================================================");
                Console.WriteLine("Esc  Вихід");
                ConsoleKeyInfo keyPressed;
                keyPressed = Console.ReadKey();

                switch (keyPressed.Key)
                {
                case ConsoleKey.D1:

                    do
                    {
                        bool        done    = false;
                        Car.CarType cartype = Car.CarType.Undefined;
                        do
                        {
                            if (beePark.ParkingSpace >= 1)
                            {
                                Console.Clear();
                                Console.WriteLine("==========================");
                                Console.WriteLine("Який тип Вашого авто?");
                                Console.WriteLine("==========================");
                                Console.WriteLine("1. Passanger");
                                Console.WriteLine("2. Truck");
                                Console.WriteLine("3. Bus");
                                Console.WriteLine("4. Moto");
                                Console.WriteLine("==========================");
                                Console.WriteLine("Esc. Повернутися в головне меню");
                                keyPressed = Console.ReadKey();
                                switch (keyPressed.Key)

                                {
                                case ConsoleKey.D1:
                                    cartype = Car.CarType.Passanger;
                                    done    = true;
                                    break;

                                case ConsoleKey.D2:
                                    cartype = Car.CarType.Truck;
                                    done    = true;
                                    break;

                                case ConsoleKey.D3:
                                    cartype = Car.CarType.Bus;
                                    done    = true;
                                    break;

                                case ConsoleKey.D4:
                                    cartype = Car.CarType.Moto;
                                    done    = true;
                                    break;

                                case ConsoleKey.Escape:
                                    done = true;
                                    break;

                                default:
                                    Console.Clear();
                                    Console.WriteLine("На жаль, такого типу авто не існує");
                                    Console.WriteLine("Натисніть будь-яку клавішу");
                                    Console.ReadKey();
                                    continue;
                                }
                            }
                            else
                            {
                                done = true;
                                Console.Clear();
                                Console.WriteLine("На разі всі місця зайняті! Зверніться пізніше!");
                                Console.WriteLine("Для повернення в основне меню натисніть будь-яку клавішу");
                                Console.ReadKey();
                            }
                        }   while (!done);

                        if (cartype != Car.CarType.Undefined)
                        {
                            beePark.AddCar(cartype);
                        }
                        else
                        {
                            Console.Clear();
                            this.mainMenu(beePark);
                        }

                        Console.Clear();
                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Ваше авто успішно припарковано!");
                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Припаркувати ще одне авто?  ---  Натисніть Enter.");
                        Console.WriteLine("Повернутися в головне меню? ---  Натисніть будь-яку клавішу");
                        Console.WriteLine("==============================================================");
                        keyPressed = Console.ReadKey();
                        if (keyPressed.Key == ConsoleKey.Enter)
                        {
                            repeat = true;
                            Console.Clear();
                        }
                        else
                        {
                            repeat = false;
                        }
                    }while (repeat == true);
                    Console.Clear();

                    break;

                case ConsoleKey.D2:

                    do
                    {
                        beePark.RefillCarBalance();

                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Бажаєте спробувати ще раз?");
                        Console.WriteLine("Поповнити баланс іншого авто? ---   Натисніть Enter.");
                        Console.WriteLine("Повернутися в головне меню?    ---   Натисніть будь-яку клавішу");
                        Console.WriteLine("==============================================================");

                        keyPressed = Console.ReadKey();
                        if (keyPressed.Key == ConsoleKey.Enter)
                        {
                            repeat = true;
                            Console.Clear();
                        }
                        else
                        {
                            repeat = false;
                        }
                    }while (repeat == true);
                    Console.Clear();

                    break;

                case ConsoleKey.D3:

                    do
                    {
                        beePark.RemoveCar();
                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Ви забрали своє авто з парковки!");
                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Бажаєте спробувати ще раз?");
                        Console.WriteLine("Забрати інше авто з парковки? ---  Натисніть Enter.");
                        Console.WriteLine("Повернутися в головне меню?   ---  Натисніть будь-яку клавішу");
                        Console.WriteLine("==============================================================");

                        keyPressed = Console.ReadKey();
                        if (keyPressed.Key == ConsoleKey.Enter)
                        {
                            repeat = true;
                            Console.Clear();
                        }
                        else
                        {
                            repeat = false;
                        }
                    }while (repeat == true);
                    Console.Clear();

                    break;

                case ConsoleKey.D4:

                    do
                    {
                        beePark.ShowCarBalance();

                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Бажаєте спробувати ще раз?");
                        Console.WriteLine("Перевірити баланс іншого авто? ---   Натисніть Enter.");
                        Console.WriteLine("Повернутися в головне меню?    ---   Натисніть будь-яку клавішу");
                        Console.WriteLine("==============================================================");

                        keyPressed = Console.ReadKey();
                        if (keyPressed.Key == ConsoleKey.Enter)
                        {
                            repeat = true;
                            Console.Clear();
                        }
                        else
                        {
                            repeat = false;
                        }
                    }while (repeat == true);
                    Console.Clear();

                    break;

                case ConsoleKey.D5:

                    do
                    {
                        beePark.ShowParkingBalance();

                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Бажаєте спробувати ще раз?");
                        Console.WriteLine("Перевірити баланс ще раз?   --- Натисніть Enter.");
                        Console.WriteLine("Повернутися в головне меню? --- Натисніть будь-яку клавішу");
                        Console.WriteLine("==============================================================");

                        keyPressed = Console.ReadKey();
                        if (keyPressed.Key == ConsoleKey.Enter)
                        {
                            repeat = true;
                            Console.Clear();
                        }
                        else
                        {
                            repeat = false;
                        }
                    }while (repeat == true);
                    Console.Clear();

                    break;

                case ConsoleKey.D6:

                    do
                    {
                        beePark.ShowParkingSpace();
                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Бажаєте спробувати ще раз?");
                        Console.WriteLine("Перевірити кількість місць ще раз? - Натисніть Enter.");
                        Console.WriteLine("Повернутися в головне меню? - Натисніть будь-яку клавішу");
                        Console.WriteLine("==============================================================");

                        keyPressed = Console.ReadKey();
                        if (keyPressed.Key == ConsoleKey.Enter)
                        {
                            repeat = true;
                            Console.Clear();
                        }
                        else
                        {
                            repeat = false;
                        }
                    }while (repeat == true);
                    Console.Clear();

                    break;

                case ConsoleKey.D7:

                    do
                    {
                        beePark.TransactionLastMinute();
                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Бажаєте спробувати ще раз?");
                        Console.WriteLine("Перевірити баланс іншого авто? - Натисніть Enter.");
                        Console.WriteLine("Повернутися в головне меню? - Натисніть будь-яку клавішу");
                        Console.WriteLine("==============================================================");

                        keyPressed = Console.ReadKey();
                        if (keyPressed.Key == ConsoleKey.Enter)
                        {
                            repeat = true;
                            Console.Clear();
                        }
                        else
                        {
                            repeat = false;
                        }
                    }while (repeat == true);
                    Console.Clear();

                    break;


                case ConsoleKey.D8:

                    do
                    {
                        beePark.ReadTransactionLog();
                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Бажаєте спробувати ще раз?");
                        Console.WriteLine("Вивести лог ще раз? - Натисніть Enter.");
                        Console.WriteLine("Повернутися в головне меню? - Натисніть будь-яку клавішу");
                        Console.WriteLine("==============================================================");
                        keyPressed = Console.ReadKey();
                        if (keyPressed.Key == ConsoleKey.Enter)
                        {
                            repeat = true;
                            Console.Clear();
                        }
                        else
                        {
                            repeat = false;
                        }
                    }while (repeat == true);
                    Console.Clear();

                    break;

                case ConsoleKey.D9:

                    do
                    {
                        Console.Clear();
                        if (beePark.Cars.Count > 0)
                        {
                            Console.WriteLine("На парковці {0} авто", beePark.Cars.Count);
                            foreach (var car in beePark.Cars)

                            {
                                Console.WriteLine("{0} --- {1} --- {2}", car.ID, car.TypeofCar, car.Balance);
                            }
                        }
                        else
                        {
                            Console.WriteLine("На парковці наразі жодного авто)");
                        }

                        Console.WriteLine("==============================================================");
                        Console.WriteLine("Бажаєте спробувати ще раз?");
                        Console.WriteLine("Вивести лог ще раз? - Натисніть Enter.");
                        Console.WriteLine("Повернутися в головне меню? - Натисніть будь-яку клавішу");
                        Console.WriteLine("==============================================================");
                        keyPressed = Console.ReadKey();
                        if (keyPressed.Key == ConsoleKey.Enter)
                        {
                            repeat = true;
                            Console.Clear();
                        }
                        else
                        {
                            repeat = false;
                        }
                    }while (repeat == true);
                    Console.Clear();

                    break;



                case ConsoleKey.Escape:
                    Console.WriteLine("Have a nice day)");
                    exit = true;
                    return;

                default:
                    Console.WriteLine("Oooops!! Зробіть Ваш вибір");
                    continue;
                }
            }while (!exit);
        }