2 assignments:Assignment 5:Let’s play cards. Using the class provided, create another class called DeckOfCards. This class will maintain a deck of cards using a Stack of Card objects. There should be no duplicate cards in the deck. The DeckOfCards class should provide methods to:Populate the deck (constructor)Shuffle the deck of cards (may need more stacks or other structures in the method).A method to deal a card.Method provides the number of cards remaining in the deck.Another class will be needed called PlayerHand. This class will maintain a players hand in a game of Black Jack. Limit the hand to 5 cards. ProvideMethod to add cards to the handMethod to get cards in the hand.Use a Queue to store the cards in.The driver of the program will control the game between just two players. Dealing (DeckOfCards) the cards to the players (PlayerHand). It will also determine who the winner is. Player should be able to take hits and indicate when they are done. Once both players are done main will determine the winner.Can use the STL versions of the Stack and Queue.Card.hCard.cppandAssignment 6 ..InstructionsCreate three recursive functions that accomplish the following:Recursive Power Function this function will raise a number to a power. The function should accept two arguments, the number to be raised and the exponent. Assume that the exponent is a non-negative integer.String Reverser function that accepts a string object as its argument and prints the string in reverse order.Sum of Numbers this function accepts an integer argument and returns the sum of all the integers from 1 up to the number passed as an argument. For example, if 10 is passed as an argument the function will return the sum of 1, 2, 3, 4, 5 … 10.Main should call each of the functions to show that they work correctly.Please responses as .cpp files within zip file as 2 different attachments.