Well, two things:
1) tar cvf .... does not do compression. The extension .tar.gz is "meaninless". You have to run tar cvfz ... to make tar compress the data. Indeed, you can have better compression with
tar cvfj cpp.tar.bz2 cpp/
the problem is that it takes longer.
2) There is a command called date. if you run
(today it prints 2005-11-24)
should print the date with that format. Now it comes the tricky part. Use ` to make this output part of the name (sorry, don't know the name of that character, but notice it is ` and not '). This is done as this:
tar cvfz `date +%Y-%m-%d`-cpp.tar.gz cpp/
so you get a file named 2005-11-34-cpp.tar.gz.