I would definitely recommend the Residence Inn in Cape Canaveral (8959 Astronaut Blvd, Cape Canaveral, FL 32920). Very good hotel. They provide a shared shuttle to the port the day of your cruise. Very convenient. It has a very good rating on Tripadvisor - Residence Inn Cape Canaveral Cocoa Beach (FL) - Hotel Reviews - TripAdvisor
Last year we stayed at the Residence Inn near the Orlando International Airport (7024 Augusta National Dr, Orlando, FL 32822). I thought it was a very nice hotel as well. They provide a shuttle from the airport. I don't really know which option is more convenient (staying by the airport or staying by the port the night before the cruise), but Residence Inn would be a very good choice no matter which option you choose.
As far as transportation...i tried both, the cruise shuttle and the private transfer and would definitely recommend to book a private car. We use Star Trans-VIP ( Shuttle to Port Canaveral | Transportation from Orlando to Port Canaveral
). Very good company. What i like is that they don't charge my card and i can pay cash to the driver (or i can pay with my credit card if i choose to do so). We have used them 6-7 times and they did a great job every time except our third transfer when the driver arrived 20 min later than scheduled (which is not a big deal).
I just read a post here about Cocoa Beach Shuttle (someone is complaining about their services). I personally have never used them myself, but saw good reviews on cruisecritic.com