Login ------------- #include #include "linkedlist.h" #include "Employee.h" using namespace std; class Login{ LinkedList list; Login(){ //Employee e1 ("manager","manager",true),e2 ("staff","staff",false); Employee *e1 = new Employee("manager","manager",true); Employee *e2 = new Employee("staff","staff",false); list.add(*e1); list.add(*e2); } ~Login(){ } }; --------- #include using namespace std; class Employee{ int ID; static int nextID; string username; string password; bool manager; public: Employee(string username,string password,bool manager){ this->ID = nextID; nextID++; this->username = username; this->password = password; this->manager = manager; } void Employee::grantManager(){ this->manager = true; } void Employee::revokeManager(){ this->manager = false; } }; int Employee::nextID=0; ----------- //LinkedList.h - defines a linked list #include using namespace std; template struct node { T item; node *next; node *prev; }; template class LinkedList { public: void add(const T& item); LinkedList(); ~LinkedList(); int getLength(); void reset(); T iterate(); T search(int ID); void remove(int ID); protected: node *first; node *last; int length; T i; }; template LinkedList::LinkedList(){ first = NULL; last = NULL; length = 0; } template LinkedList::~LinkedList(){ node *remove; while(first!=NULL){ remove = first; first = first->next; delete remove; } delete last; length = 0; } template void LinkedList::add(const T& item){ node *nNode; nNode->item=item; if (*first == NULL) *first = *nNode; else { *last->next = *nNode; *nNode->prev = *last; *last = nNode; } } template int LinkedList::getLength(){ return length; } template T LinkedList::iterate(){ if(i ==NULL){ i = first; return i->item; }else{ return i->next->item; i = i->next; } } template void LinkedList::reset(){ i = NULL; } template T LinkedList::search(int ID){ node i = NULL; while(i->item->ID !=ID){ i = list.iterate(); } return i->item; } template void LinkedList::remove(int ID){ node i = first; node temp = NULL; if(first->item->ID == ID){ temp = first; first = temp->next; delete temp; }else{ while(i->next->item->ID !=ID){ i = i->next; } temp = i->next; delete i->next; i->next = temp->next; } }