This lab will help you practice with operator overloading (NOT mixed with classes).
Write a program that allows the user to enter the values to assign a card's suit (commonly implemented as an enumeration — Hearts, Clubs, Diamonds, Spades) from the keyboard. You cannot use a menu. Your program must read the user's choice directly into the card suit variable (of an enum type). (Note: You cannot overload operators for built-in types, but enumerations are, technically, user-defined types. Therefore you can overload input/output operators for them.)
This proof of concept application will help show your programming team that the bridge game you are designing can accept bids directly from the player without having to rely on a clumsy menu interface.
An example program interaction might look something like (the parts in this color are typed by the user):
$ ./suitenter.out Welcome to the Card Suit Entering Program!!! What is the suit of your card? hearts You have a heart! Don't wear it on your sleeve..! Another card? y What is the suit of your card? s So, you have a spade! Dig me a hole out back, won't you? Another card? Y What is the suit of your card? CLUBS Ah, a club! Don't beat me up!! Another card? y What is the suit of your card? diagonal I'm sorry, I don't recognize that suit...please try again. What is the suit of your card? dia Ooo...diamonds. Don't cut my monitor with those! Another card? n Thank you for using the CSEP!! Endeavor to have a stimulating day! $
Does it matter if your operators are class members? Should they be const? Do they need to be friends?
How can you match the word the user types against the suit names? How can you match only the number of characters entered? (Note the matches are case insensitive...)
Might your program benefit from use of the string or String classes?
What other operators might prove useful for your enumerated type in a full card game program?
This assignment is (Level 2.5).
If you actually write those operators you thought up in the last TPQ, I'll throw in (Level 0.5) each to a maximum of (Level 3).