Using data[] here worked, but in the searching it doesn't...? Any idea?

Because data[] is a member of class Employees.

I know this sounds like a drag, but (this is kind of what I meant before) you are not saving yourself any time or trouble by writing so much code involving (clearly) numbers of concepts (such as classes) which you have between zero and no experience with. In the end, it will only take you longer to debug, and the concepts will still have some fuzzy edges in your mind.

You should write a couple short, simple programs that focus not on the goals of your assignment but on specific C++ concepts that you are using within it it. This will give you a place to quickly and simple test "a premise" with regard to how to use the syntax. So here's an example:

instead, there would be a problem. If I couldn't find a solution myself, I could easily post that code and ask "why is data undefined?" and you would have your answer in probably a few minutes, from just about anyone. Rather than expecting someone to go thru all those details -- which can happen, but, well, I have to make dinner...etc...and it's taken you most of an hour to get this far.

Notice above, many irrelevant details and such eliminated. I promise, this will make it easier for you too

Why can't you just use the STL? As long as you have strings going, a vector of employees could get rid of the array, buy you out of the box sorting and with a simple helper function, searching as well...

I am pleased to hear you made it; many do not and when they don't get an immediate answer they give up. After reading your thread earlier I thought it would be fun to sit down and see what kind of solution I could come up with in the shortest amount of time using nothing but the C++ standard. Additional points were for creating an employee mgmt class that could sort and search without me having to implement any of that code. To the rescue came the std::map class. I typed the map to use strings as the key field and an instance of Employee as the value. With that in place I wrote a couple of simplistic printing searching methods and (what took the most time) a reasonable test function to it all to show it all works and to generate data for the test. I have a tarball of it here:http://jbcobb.net/bin/sortsearchdemo.tar.gz. You can just look at the source or if you need to compile it to see it run, install cmake if you don't already have it (I forgot your platform but it is available for all major platforms (Linux, Windows, Mac, etc). To build it, just run "cmake ." from the same folder as the CMakeLists.txt file and then type make. Note that this was not to do your program requirements but rather to demo how the STL can be used for a lot of things. This project will create a shared object library (or DLL on Winders) and a main executable that just calls the testEmployeeClass() method in the library. stl_sort_search.hpp/.cpp implements the testing function as well as a CEmployeeManager class which does the heavy lifting (such as there is here).

Started with a very simple Employee class with copy constructor (needed for many STL functions).

/*************************************************
* File: stl_sort_search.hpp
*************************************************/
#ifndef __STL_SORT_SEARCH_HPP
#define __STL_SORT_SEARCH_HPP
#include <map>
#include <iostream>
#include <string>
using namespace std;
#include "employee.hpp"
class CEmployeeManager
{
private:
// this will hold all of the employees.
// because it is a map (tree) it will automatically
// sort them on insertion so that need is taken care
// of. The key for the map is a string of the last
// name. Alter this if you need to search by something else
map<string, Employee> Employees;
public:
// ctor. doesn't have much to do
CEmployeeManager(){};
// add an employee to our data store.
// return true if add is successful, false
// if employee is already here
bool addEmployee(Employee newEmp);
// print out a list of employees sorted by last name
void printSortedList();
// look up an employee. Return false if not
// found, true if found and set into Emp
bool lookupEmployee(string strLastName, Employee &Emp);
// pretty print an employee
void printEmployee(Employee &Emp);
};
int testEmployeeClass(int nNumberOfEmployees);
#endif

Really you should never implement the copy-constructor manually whenever the default generated version will already do the right thing. In this case it will do the right thing because strings already know how to copy-construct themselves. What's more, the auto-generated one is more efficient that what you wrote because you used assignment rather than construction, and that incolved the extra step of destroying the old value first, even if the old value also happened to be an empty string.

Well I appreciate all of the tips though I really didn't need them as I was keeping my primary goal in mind to demonstrate how the OP could solve both this (searching) and his other problem (sorting) by leveraging the STL. The rest is just window-dressing. I am surprised that I did not get the namespace nazis on me for 'polluting the namespace' by using namespace std.

Re: Copy ctor: true enough in this case but in general having a copy ctor is a good thing.
Re: Initialization ctor: again, true enough in this case but being in a habit of initializing your variables is s a good thing.
Re: memset vs std::fill: agreed although either will work just as well.
Re: const and the nameList: At this point I was just trying to get through the test code as quickly as possible.
Re: ptr-> vs (*ptr). : you say tomato, I say tomahto. One is not inherently more correct than the other.
Re: us of string streams: That did occur to me, it really did. The reason I did not use it over the more old-school sprintf() stuff is that I was trying to keep the OP in mind. Basically if he/she didn't know that std::map could be used in this manner, I didn't want to confuse him by adding more std:: stuff, hopefully so he could focus on the solution that I presented here. In other cases, stringstreams are indeed my friend
Re: getters and setters: This is the first time I have ever heard that they are bad for encapsulation when indeed that is what they facilitate. Care to back that statement up?
Re: getters and using const: agreed and in production code I do. Again for me this was an exercise to see how quickly I could generate a solution for his/her problem (while eating dinner and watching Fringe with the wife).

Alright, we have a new problem here...this works and everything that it needs to right now, but for some odd reason, the program keeps being unresponsive...could someone show me the way? :P I don't know why it is doing that.

Where does yours stop reacting to input? system("PAUSE") does nothing for non-Windows platforms which put this outside of the amount of work I want to put into the solution but knowing which line it stops on could be all the clues we need to solve this.