class LibraryCard { private: int maxBooks; // maximum number of books this user can borrow int numBooks; // number of books currently borrowed public: // constructs a LibraryCard object (for a patron). The patron is allowed up to 20 books and currently has none borrowed. LibraryCard(); // constructs a LibraryCard object (for a patron). The patron is allowed to borrow up to the given number of books, and // currently has none signed out. // Throws invalid_argument exception if argument is less than or equal to 0. LibraryCard(int maxBooks); // numBooks books are signed out on the given library card. // if numBooks will cause the patron to have more than the maximum number of books, this method has no effect. // Throws invalid_argument exception if argument is less than 0. void borrowBooks(int numBooks); // numBooks books are returned on the given library card. // if numBooks is larger than the number of books this patron has, this method has no effect. // Throws invalid_argument exception if argument is less than 0. void returnBooks(int numBooks); // prints the number of books that this LibraryCard has currently signed out. // (Does not change the state of the LibraryCard.) void booksOut() const; // returns the percent level of the LibraryCard usage, i.e. 100 = max number of books signed out; // 0 = no books signed out, etc. // (Does not change the state of the LibraryCard.) double currentUsage() const; };