Simple proof of the structure theorems for finite abelian groups
Many proofs of the structure theorems for finite abelian groups first reduce to the problem to $p$-groups, which is fine and is an important technique.
However, it seems to me that a simple proof can be based on this one crucial result:
Every finite abelian group has a cyclic direct factor. $\qquad(\star)$
From this, it follows at once by induction on the order of the group that
Every finite abelian group is a direct product of cyclic groups.
The Chinese remainder theorem then allows us to split these cyclic groups into cyclic $p$-groups and so we get the primary decomposition theorem:
Every finite abelian group is a direct product of cyclic $p$-groups.
The Chinese remainder theorem then allows us to reassemble these into an invariant factor decomposition.
Note that the proof is really easy once we have the crucial result $\star$ (and the Chinese remainder theorem of course).
I think Mac Lane and Birkoff in their Algebra do something along this line but it is not very simple.
Does anyone know a proof of the structure theorems along the lines above?
In particular, is there a simple proof of the crucial result $\star$ ?
(A side bonus would be a simple characterization of the cyclic subgroups that are direct factors of a given finite abelian group: I expect they are exactly the maximal cyclic subgroups.)
Rotman's Introduction to the Theory of Groups (theorem 6.9 on page 130) contains such a proof, attributed to Schenkman, but this proof is not exactly as I have outlined in the question.
The book The Theory of Finite Groups: An Introduction, by Kurzweil and Stellmacher, does what I had in mind in Chapter 2.
For finite abelian $p$-groups you can do the following to split off a maximal cyclic subgroup as a direct summand.
If $q=p^n$ is the order of a maximal cyclic subgroup $H$ of our group $G$, then $G$ is a module over the ring $R=Z/qZ$. Now $H$ is free as an $R$-module, and $R$ is a self injective ring, so that $H$ is in fact injective. The inclusion $H\to G$ is therefore split.