yea, i see whats going on.
The rand() fucntion doesnt actually create a totally random number, it actually takes a number and applies a freaky equation to it to form the next number, its just so out there it *seems* random. If you dont set a seed for rand() by using either time or a user-entered seed, it will always have the same numbers in the same order every time, since its taking the same muber and applying the same formula to it.
I'm betting your professor is trying to get you to learn that through trial and error, thats what ours did (he only had us write a program in class, and showed us what was going on).
Your best bet is to, for now, just use time(0) in your rand() function. You can also have your user set it manually if you want. This would be the code:
int seed; //the seed for the random number generator
cout << "Enter the seed for the random number generator: ";
cin >> seed;
srand(seed);
srand(int) is the function to set the seed for the random number (seed of random = srand)
hope that helps
edit: oh, and something to make your coding a little neater in the headers, instead of all the "using std::whatever" try "using namespace std;"
that will include every std in each library, getting rid of a few unneeded lines of code