Logic is highly important, for everything.
The game itself is likely to run inside a huge loop, for example:
while (lives > 0){
//Main game
}
I recall C++ having quite a complex gui, Java has an easier to use one, but if you are set on C++, searches for C++ GUI on google are a good step in the right direction.
There are books in some libaries on game design, and although I have only glanced through them I see they all seem to assume some previous knowledge, so it is good that you are learning the basics.
Another way you could do it is to use a visual C++ program of some sort.
A little example of creating the game part would be to have an array, for example 10x10 of character.
A character could be 'A' or 'B; A being empty, and B being part of the snake.
Then you would just print each part of the array to the screen.
Once you get more advanced, you can use all 8 bits of the character to represent a part of the board, and save some memory