Not sure if you knew, but many things you mention will be charged against the credit card you give them when you check in. For instance, all photos on the ship, all drinks, all ship's shore excursions, and all purchases at stores on the ship.
Similarly, your tips can be charged, except for any tips you give for room service (generally a dollar or two per order). Most stores in all ports will gladly take your credit cards too, as will many non-ship shore excursions. However, many will also give you a discount if you pay in cash (US dollars).
We end up taking not as much cash - maybe $600 to $800 for the whole family.