I didnt look through all the code posted, so not sure if this will help. However, this is how I would do it.
Since you have a sprite manager, you need to be able to 'create' sprites, manage them while they are alive, and eventually destroy them after a certain time, or condition.
For the projectile, you need to 'create' it at the location of your player, and let your sprites hold a heading and velocity.
so when player fires, create projectile sprite, set its heading to whatever heading your player has, set its velocity to something fast, then let the sprite manager, continue to update its movement, check collisions, and draw the projecting, until it gets off screen or hits something, etc... then let the sprite manager destory the object.
It can not be stated enough, that to really learn and grow at programming, you MUST program. So many people I see 'want' to program, and they have 'read' so many books (which is good), but they never actually get started in actual 'coding'. So even if its for 30 min a day, just sit down and play with the language.
This leads to my next point, overwhelm yourself. Dont try to make the next big MMO, FPS, or whatever... just start out making games with what you have learned.
If all you know how to do is print text out to the console, and take in input, make a little number guessing game. Once you get to functions, and arrays, with some file IO, make a little text adventure, with limited commands.
That being said... as jbadams pointed out, C++ is probably not the best place to just jump in and start making games. I started out in C++ in 1992, and only a few years ago picked up C#, and only this year Java. That has given me the perspective, that just for making casual games, or testing out a new idea, it is so much easier to get something up and running in C# with XNA, or in Java.
I feel that each language is like a tool, so to be competent at your craft (programming) you will need all the different tools, so you will eventualy need to learn multiple programming and scripting langues, but just for getting down the 'flow' of making a game, you might want to look at something a bit more 'forgiving' like a managed language.
I see so many of these XNA Dead threads, and really, I feel that even if there is no support for XNA anymore, there is still such a huge advantage to making a project with XNA if only for the fact, that you are learning so much in the way of game programming, that the experience is well worth it.
I started using XNA a few years ago, and that led me to learn C# (since I was only C++ before that) and since learning C#, I now have a Java class, and I feel really comfortable with the managed sort of langauges. Also, my XNA classes and functions I have ported to C++/OpenGL, so though I dont use XNA anymore, there is nothing that I have lost in using it, but only gained.
So in conclusion, it really doesnt matter if XNA is dead or not, just program, and learn, and have fun.
Perhaps I am off track, but from what I understood of the OP, is that he/she is wanting to know of some type of 'graphical' tools such as flash, to create the prototype. I dont think the OP is actually interested in 'coding' anything.
At least thats what I read into it. Although, I'm glad some good book titles were posted on the subject. I haven't done assm in a long long time, but reserch into writing a tiny os looks to be some interesting reading.