Most algebraic topology books (for instance, Hatcher) contain a recipe for computing cup products in singular or simplicial homology. In other words, given two explicit singular or simplicial cocycles, they contain a recipe for computing an explicit cocycle representing the cup product of the cocycles in question.

Is there a similar recipe in cellular cohomology? In other words, if I have a very explicit CW complex and two explicit cellular cocycles, then is there a recipe for computing a cellular cocycle representing their cup product?

Of course, one answer is to subdivide everything up into a simplicial complex, but that is messy (and not always possible). Is there a better way?

I'm especially interested in the special case of 2-dimensional CW complexes, where the only interesting cup products are between elements of $H^1$.