Exemple #1
0
        // Function that controls user input when prompting user to enter new
        // movie details.
        public static void Insert(MovieCollection.MovieTree BST)
        {
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("----ENTER MOVIE DETAILS----");
            Console.WriteLine();


            // Create flag used to check user input.
            bool correct = false;

            // Prompt user to enter movie title
            Console.Write("Enter movie title: ");
            string movieTitle = Console.ReadLine();;

            // Enter movie title.
            while (!correct)
            {
                correct = CheckInput(movieTitle, 0);
                if (!correct)
                {
                    Console.Write("Enter movie title: ");
                    movieTitle = Console.ReadLine();
                }
            }


            // Check to see if the movie exists
            // in the BST before creating a new copy.
            Movie movieExists = BST.ReturnMovie(BST.ReturnRoot(), movieTitle);


            // If the movie exists, prompt user to enter an amount to add to database.
            if (movieExists != null)
            {
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine("Movie already" +
                                  " exists in database: How many" +
                                  " copies do you want to add?");
                correct = false;
                int n = 0;
                correct = int.TryParse(Console.ReadLine(), out int movieAmount);
                // Check user input
                while (!correct || movieAmount <= 0 || movieAmount >= 1000)
                {
                    if (!correct || movieAmount <= 0 || movieAmount >= 1000)
                    {
                        Console.Write("Please enter a number for copies " +
                                      "between 1 and 1000: ");
                    }
                    correct = int.TryParse(Console.ReadLine(), out movieAmount);
                }

                n = movieAmount;
                Console.WriteLine();
                Console.WriteLine();

                // Increase copies available by number
                movieExists.IncreaseCopiesAvail(n);
                Console.WriteLine(movieExists.GetTitle() +
                                  " copies increased by " +
                                  n);
            }

            // If movie doesnt exist prompt user for input about movie.
            else
            {
                // Check user input for actors
                Console.WriteLine();

                correct = false;
                Console.Write("Enter starring actors: ");
                string starring = Console.ReadLine();
                while (!correct)
                {
                    correct = CheckInput(starring, 1);
                    if (!correct)
                    {
                        Console.Write("Enter starring actors: ");
                        starring = Console.ReadLine();
                    }
                }


                // Check user input for directors
                Console.WriteLine();

                correct = false;
                Console.Write("Enter movie director: ");
                string director = Console.ReadLine();
                while (!correct)
                {
                    correct = CheckInput(director, 1);
                    if (!correct)
                    {
                        Console.Write("Enter movie director: ");
                        director = Console.ReadLine();
                    }
                }


                // Check user input for genre
                Console.WriteLine();

                correct = false;
                string genre = "empty";
                Console.WriteLine("Choose Genre: \n" +
                                  "1. Drama\n" +
                                  "2. Family\n" +
                                  "3. Action\n" +
                                  "4. SciFi\n" +
                                  "5. Comedy\n" +
                                  "6. Animated\n" +
                                  "7. Thriller\n" +
                                  "8. Other\n" +
                                  "Enter Number between 1-8: ");

                correct = int.TryParse(Console.ReadLine(), out int num);
                while (!correct || num <= 0 || num >= 9)
                {
                    Console.WriteLine("Please enter a number between 1 and 8.");
                    correct = int.TryParse(Console.ReadLine(), out num);
                }


                // Set genre based off switch case
                switch (num)
                {
                case 1:
                    genre = "Drama";
                    break;

                case 2:
                    genre = "Family";
                    break;

                case 3:
                    genre = "Action";
                    break;

                case 4:
                    genre = "SciFi";
                    break;

                case 5:
                    genre = "Comedy";
                    break;

                case 6:
                    genre = "Animated";
                    break;

                case 7:
                    genre = "Thriller";
                    break;

                case 8:
                    genre = "Other";
                    break;

                default:

                    break;
                }


                // Check user input for classification
                Console.WriteLine();

                correct = false;
                string classification = "empty";
                Console.Write("Enter classification: \n" +
                              "1. G\n" +
                              "2. PG\n" +
                              "3. M 15+\n" +
                              "4. MA 15+\n" +
                              "5. R 18+\n" +
                              "Enter Number between 1-5: ");

                correct = int.TryParse(Console.ReadLine(), out num);
                while (!correct || num <= 0 || num >= 6)
                {
                    Console.WriteLine("Please enter a number between 1 and 5.");
                    correct = int.TryParse(Console.ReadLine(), out num);
                }

                // Set classification based off switch case
                switch (num)
                {
                case 1:
                    classification = "G";
                    break;

                case 2:
                    classification = "PG";
                    break;

                case 3:
                    classification = "M 15+";
                    break;

                case 4:
                    classification = "MA 15+";
                    break;

                case 5:
                    classification = "R 18+";
                    break;

                default:

                    break;
                }


                // Check user input for duration
                Console.WriteLine();

                correct = false;
                int duration = 0;
                Console.Write("Enter duration: ");

                correct = int.TryParse(Console.ReadLine(), out num);
                while (!correct || num <= 0 || num >= 600)
                {
                    Console.WriteLine("Please enter a number for duration " +
                                      "- 1.30 hr = 90 min for example.");
                    Console.WriteLine();
                    Console.Write("Enter duration: ");

                    correct = int.TryParse(Console.ReadLine(), out num);
                }

                duration = num;


                // Check user input for date
                Console.WriteLine();

                DateTime releaseDate = DateTime.Now;
                correct = false;
                while (!correct)
                {
                    try
                    {
                        Console.Write("Enter release date (dd/mm/yyyy): ");
                        releaseDate =
                            DateTime.Parse(Console.ReadLine());
                        correct = true;
                    }
                    catch (FormatException)
                    {
                        Console.WriteLine("Wrong date and time format - please enter dd/mm/yyyy");
                        Console.WriteLine();
                    }
                }


                // Check user input for amount of copies
                Console.WriteLine();
                correct = false;
                int copiesAvail = 1;
                Console.Write("Enter amount of copies: ");

                correct = int.TryParse(Console.ReadLine(), out num);
                while (!correct || num <= 0 || num >= 1000)
                {
                    Console.WriteLine("Please enter a number for copies " +
                                      "between 1 and 1000.");
                    Console.WriteLine();
                    Console.Write("Enter amount of copies: ");
                    correct = int.TryParse(Console.ReadLine(), out num);
                }

                copiesAvail = num;


                //Create new movie and it to BST tree.
                Console.WriteLine();
                Movie movie = new Movie(movieTitle, starring
                                        , director, duration, genre, classification, releaseDate, copiesAvail, 0);
                Console.WriteLine("New movie " + movie.GetTitle() + " added to database.");
                BST.Insert(movie);
            }
        }
Exemple #2
0
        static void Main(string[] args)
        {
            // Create a movieTree BST to hold movies and also a new
            // MemberCollection to hold members.
            MovieCollection.MovieTree BST = new MovieCollection.MovieTree();
            MemberCollection          memberCollection = new MemberCollection();
            Member testMember = new Member("test", "test", "1", 1, 2414);

            memberCollection.AddMember(testMember);

            // Flags used to run program
            bool quit   = false;
            bool logout = false;

            // Login details for admin user access.
            string adminUser = "******";
            string adminPass = "******";


            Movie movie1 = new Movie("movie6", "actor1",
                                     "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 3);

            BST.Insert(movie1);


            Movie movie2 = new Movie("movie5", "actor1",
                                     "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 7);

            BST.Insert(movie2);


            Movie movie3 = new Movie("movie10", "actor1",
                                     "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 2);

            BST.Insert(movie3);


            Movie movie4 = new Movie("movie9", "actor1",
                                     "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 4);

            BST.Insert(movie4);


            Movie movie5 = new Movie("movie2", "actor1",
                                     "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 1);

            BST.Insert(movie5);

            Movie movie6 = new Movie("movie4", "actor1",
                                     "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 3);

            BST.Insert(movie6);


            Movie movie7 = new Movie("movie7", "actor1",
                                     "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 9);

            BST.Insert(movie7);


            Movie movie8 = new Movie("movie11", "actor1",
                                     "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 0);

            BST.Insert(movie8);


            Movie movie9 = new Movie("movie8", "actor1",
                                     "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 4);

            BST.Insert(movie9);


            Movie movie10 = new Movie("movie1", "actor1",
                                      "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 3);

            BST.Insert(movie10);

            Movie movie11 = new Movie("movie3", "actor1",
                                      "director1", 90, "Horror", "MA 15+", DateTime.Now, 5, 1);

            BST.Insert(movie11);



            // Strings to hold the menus to prompt user input for Main Menu,
            // Staff Menu and Member Menu

            string mainMenu = "Welcome to the Community Library\n" +
                              "==============Main Menu===========\n" +
                              "1. Staff Login\n" +
                              "2. Member Login\n" +
                              "0. Exit\n" +
                              "===================================";



            string staffMenu = "============Staff Menu============\n" +
                               "1. Add a new movie DVD\n" +
                               "2. Remove a movie DVD\n" +
                               "3. Register a new Member\n" +
                               "4. Find a registered member's phone number\n" +
                               "0. Return to main menu\n" +
                               "===================================";



            string memberMenu = "==============Member Menu==============\n" +
                                "1. Display all movies\n" +
                                "2. Borrow a movie DVD\n" +
                                "3. Return a movie DVD\n" +
                                "4. List current borrowed movie DVDs\n" +
                                "5. Display top 10 most popular movies\n" +
                                "0. Return to main menu\n" +
                                "===================================";



            // While quit is not set to true, run program.
            while (!quit)
            {
                Console.WriteLine(mainMenu);
                string input = Console.ReadLine();


                // Exit Program if user input is 0.
                if (input == "0")
                {
                    quit = true;
                }



                // Show staff login screen if user input is 1.
                else if (input == "1")
                {
                    Console.WriteLine();
                    Console.WriteLine();
                    Console.WriteLine("Please enter the admin username:"******"Please enter the admin password:"******"admin" && password == "adminPass")
                    {
                        logout = false;
                        while (!logout)
                        {
                            Console.WriteLine();
                            Console.WriteLine();
                            Console.WriteLine(staffMenu);

                            input = Console.ReadLine();



                            //Admin enters 0 and goes back to main menu
                            if (input == "0")
                            {
                                logout = true;
                                Console.WriteLine();
                                Console.WriteLine();
                            }

                            //Admin enters 1 to add a new movie.
                            if (input == "1")
                            {
                                HelperFunctions.Insert(BST);
                            }

                            //Admin enters 2 to remove a movie.
                            if (input == "2")
                            {
                                Console.WriteLine();
                                Console.WriteLine();
                                Console.WriteLine("Please enter movie name " +
                                                  "which you wish to remove: ");
                                string title = Console.ReadLine();

                                // Call return movie function to get Movie info.
                                Movie movie = BST.ReturnMovie(BST.ReturnRoot(), title);

                                if (movie == null)
                                {
                                    Console.WriteLine("There is no movie with that name.");
                                }
                                else
                                {
                                    bool check = BST.Delete(movie, memberCollection);
                                    if (check)
                                    {
                                        BST.movieCount--;
                                        Console.WriteLine(title + " has been deleted from the database.");
                                    }
                                }
                            }

                            //Admin enters 3 to register a new user.
                            if (input == "3")
                            {
                                // Call the helper function that contains the calls for user input.
                                // Function has input parsing to check for incorrect user input.
                                // Adds user to MemberCollection if it passes.
                                HelperFunctions.AddUser(memberCollection);
                            }

                            //Admin enters 4 to search for users phone number by entering username
                            if (input == "4")
                            {
                                Console.WriteLine("Please enter the persons " +
                                                  "username to find their phone " +
                                                  "number: ");
                                string user = Console.ReadLine();

                                int phNo = memberCollection.ReturnPhNo(user);

                                if (phNo != -1)
                                {
                                    Console.WriteLine();
                                    Console.WriteLine();
                                    Console.WriteLine("The users phone number " +
                                                      "is " + phNo);
                                }
                                else
                                {
                                    Console.WriteLine("There are no users" +
                                                      " registered with that username.");
                                }
                            }
                        }
                    }

                    //Incorrect login details entered - return to main menu.
                    else
                    {
                        Console.WriteLine();
                        Console.WriteLine();
                        Console.WriteLine("Incorrect login details - " +
                                          "returning to main menu");
                        Console.WriteLine();
                        Console.WriteLine();
                    }
                }


                //Member Login
                else if (input == "2")
                {
                    Console.WriteLine();
                    Console.WriteLine();

                    logout = false;
                    string username = "******";
                    int    password = 0;
                    int    num      = 0;

                    Console.WriteLine("Please enter username:"******"Please enter password:"******"1":
                                Console.WriteLine();
                                Console.WriteLine();
                                Console.WriteLine("----ALL MOVIE INFO----");
                                BST.InOrderDisplayInfo(BST.ReturnRoot());
                                break;


                            //Borrow a movie
                            case "2":
                                Console.WriteLine();
                                Console.WriteLine();
                                Console.WriteLine("Please enter the " +
                                                  "name of the movie you " +
                                                  "wish to rent: ");
                                movieTitle = Console.ReadLine();
                                movie      = BST.ReturnMovie
                                                 (BST.ReturnRoot(), movieTitle);
                                memberCollection.Insert2Member
                                    (currentUser, movie);
                                break;


                            //Return a movie
                            case "3":
                                Console.WriteLine();
                                Console.WriteLine();
                                Console.WriteLine("Please enter the " +
                                                  "name of the movie you " +
                                                  "wish to return: ");
                                movieTitle = Console.ReadLine();
                                movie      = BST.ReturnMovie
                                                 (BST.ReturnRoot(), movieTitle);
                                memberCollection.RemoveMovieFromMember
                                    (currentUser, movie);
                                break;


                            //Show borrowed movies
                            case "4":
                                memberCollection.ShowBorrowedMovies
                                    (currentUser);
                                break;


                            //Display top 10 rented movies.
                            case "5":
                                Console.WriteLine();
                                Console.WriteLine();
                                Console.WriteLine("----T0P 10 RENTED MOVIES----");
                                BST.DisplayTop10();
                                break;


                            //Return to main menu.
                            case "0":
                                logout = true;
                                Console.WriteLine();
                                Console.WriteLine();
                                break;
                            }
                        }
                        else
                        {
                            logout = true;
                        }
                    }
                }



                //Incorrect input
                else
                {
                    Console.WriteLine("Incorrect number entered - you must " +
                                      "enter a number between 0 - 2.");
                }
            }
        }