Gnucash does most things you mention.
(Not specifically to parent:) You will need to know double-entry bookkeeping to use Gnucash. While there is no in-app tutorial and little hand-holding (by default the "Debit" and "Credit" columns of the register are given friendly names), there is an excellent Tutorials and Concepts guide https://gnucash.org/viewdoc.phtml?rev=4&lang=C&doc=guide that starts from first principles on basic accounting, and has tons of examples of how to enter various transactions. I was very impressed going through it, as a layman; it's a hidden gem and better than 90% of the "accounting tutorial" websites out there.