コード例 #1
0
        //method that is called if there aren't any seats that match the passenger's preference
        public static void randomSeat(int classType)
        {
            bool         seatFound = false;
            AssignedSeat ticket;

            if (classType == 1)
            {
                for (int i = 0; i < 5; i++)
                {
                    for (int j = 0; j < 2; j++)
                    {
                        for (int k = 0; k < 2; k++)
                        {
                            if (firstClass[i, j, k] == "O")
                            {
                                firstClass[i, j, k] = "X";
                                AssignedSeat rand = new AssignedSeat(Name(), seatNumber(1, i, j, k));
                                tickets.Add(rand);
                                Console.WriteLine("Ticket has been created.");
                                ticket = tickets[tickets.Count - 1];
                                Console.WriteLine("Ticket #" + tickets.Count);
                                ticket.TicketInfo();
                                goto End;
                            }
                        }
                    }
                }
            }
            else if (classType == 2 || !seatFound)
            {
                for (int i = 0; i < 15; i++)
                {
                    for (int j = 0; j < 2; j++)
                    {
                        for (int k = 0; k < 3; k++)
                        {
                            if (econClass[i, j, k] == "O")
                            {
                                econClass[i, j, k] = "X";
                                AssignedSeat rand = new AssignedSeat(Name(), seatNumber(2, i, j, k));
                                tickets.Add(rand);
                                Console.WriteLine("Ticket has been created.");
                                ticket = tickets[tickets.Count - 1];
                                Console.WriteLine("Ticket #" + tickets.Count);
                                ticket.TicketInfo();
                                goto End;
                            }
                        }
                    }
                }
            }
            //if both classes have no available seats
            else
            {
                Console.WriteLine("Oh no! There are no more spots left!");
                availableSeats = false;
            }
            End :;
        }
コード例 #2
0
        //updates seating area based on number of passengers, class, and seat preference
        public static void updateSeating(int classType, int pref)
        {
            availableSeat = true;
            AssignedSeat ticket;
            AssignedSeat seat;
            int          opening = 0;

            if (classType == 1)
            {
                for (int i = 0; i < 5; i++)
                {
                    for (int j = 0; j < 2; j++)
                    {
                        for (int k = 0; k < 2; k++)
                        {
                            if (pref == 1)
                            {
                                if (j == 0 && k == 1 && firstClass[i, j, k] == "O" || j == 1 && k == 0 && firstClass[i, j, k] == "O")
                                {
                                    firstClass[i, j, k] = "X";
                                    opening             = 1;
                                    seat = new AssignedSeat(Name(), seatNumber(1, i, j, k));
                                    tickets.Add(seat);
                                    goto End;
                                }
                            }
                            else
                            {
                                if (j == 0 && k == 0 && firstClass[i, j, k] == "O" || j == 1 && k == 1 && firstClass[i, j, k] == "O")
                                {
                                    firstClass[i, j, k] = "X";
                                    opening             = 1;
                                    seat = new AssignedSeat(Name(), seatNumber(1, i, j, k));
                                    tickets.Add(seat);
                                    goto End;
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                for (int i = 0; i < 15; i++)
                {
                    for (int j = 0; j < 2; j++)
                    {
                        for (int k = 0; k < 3; k++)
                        {
                            if (pref == 1)
                            {
                                if (j == 0 && k == 1 && econClass[i, j, k] == "O" || j == 1 && k == 1 && econClass[i, j, k] == "O")
                                {
                                    econClass[i, j, k] = "X";
                                    opening            = 1;
                                    seat = new AssignedSeat(Name(), seatNumber(2, i, j, k));
                                    tickets.Add(seat);
                                    goto End;
                                }
                            }
                            else
                            {
                                if (j == 0 && k == 0 && econClass[i, j, k] == "O" || j == 1 && k == 2 && econClass[i, j, k] == "O")
                                {
                                    econClass[i, j, k] = "X";
                                    opening            = 1;
                                    seat = new AssignedSeat(Name(), seatNumber(2, i, j, k));
                                    tickets.Add(seat);
                                    goto End;
                                }
                            }
                        }
                    }
                }
            }
            End :;
            if (opening == 0)
            {
                availableSeat = false;
                Console.WriteLine("Sorry, no match found. Assigning passenger to an available seat...");
                randomSeat(classType);
            }
            else
            {
                Console.WriteLine("Match has been found!");
                Console.WriteLine("Ticket has been created.");
                ticket = tickets[tickets.Count - 1];
                Console.WriteLine("Ticket #" + tickets.Count);
                ticket.TicketInfo();
            }
        }