choices cannot works find

low1988's Avatar, Join Date: Sep 2009
Light Poster
Code:
#include <iostream>
#include <conio.h>

using namespace std;
struct employeeInfo
{
       string name;
       int id;
       string department;
       employeeInfo *next;
};
const int SIZE = 10;
employeeInfo employed[SIZE] = {{"Michael Owen",1234,"Design"},{"Steven Gerrard",5678,"Production"},{"Fernando Torres",9012,"Management"}};
class List {
 public:
  List(void) { head = NULL; } // constructor
  ~List(void); // destructor
  bool IsEmpty() { return head == NULL; }
  employeeInfo* InsertEmployee(string ,int ,string );
  void DisplayList(void);
  void numEmployee();
  int DeleteNode(int x);
  int FindNode(int y);
        
    private:
  employeeInfo* head;
};
List::~List(void) {
 employeeInfo* currNode = head, *nextNode = NULL;
 while (currNode != NULL) {
  nextNode = currNode->next;
  // destroy the current node
  delete currNode;
  currNode = nextNode;
 }
}
employeeInfo* List::InsertEmployee(string nama,int number,string affiliate) {
 int currIndex = 0;
 employeeInfo* currNode = head;
 employeeInfo* prevNode = NULL;
 while (currNode) {
  prevNode = currNode;
      currNode = currNode->next;
  currIndex++;
 }
   employeeInfo* newNode = new employeeInfo;
 newNode->name = nama;
 newNode->id=number;
 newNode->department= affiliate;
 if (currIndex == 0) {
  newNode->next = head;
  head = newNode;
    } else {
  newNode->next = prevNode->next;
  prevNode->next = newNode;
    }
 return newNode;
}
 
 void List::DisplayList()
{
 int num = 0;
 employeeInfo* currNode = head;
 while(currNode!=NULL)
 {
  cout << "Employee Name :"<<currNode->name <<endl;
  cout << "Employee ID   :"<<currNode->id<<endl;;
  cout << "Age           :"<<currNode->department<<endl;
  currNode = currNode->next;
  num++;
}   
}
int List::DeleteNode(int x) {
 employeeInfo* prevNode = NULL;
 employeeInfo* currNode = head;
 int currIndex = 1;
 while (currNode && currNode->id != x) {
  prevNode = currNode;
  currNode = currNode->next;
  currIndex++;
 }
 if (currNode) {
  if (prevNode) {
   prevNode->next = currNode->next;
   delete currNode;
  } else {
   head = currNode->next;
   delete currNode;
  }
  return currIndex;
    }
 return 0;
}
void List::numEmployee()
{
    int numa=0;
    int totald = 0;
    int totalp = 0;
    int totalm = 0;
    string name ,department;
    int id;
    employeeInfo* currNode = head;
    while(currNode!=NULL)
    {
                         
    if(currNode->department =="design")
    {
     totald++;
     }
                            
    if(currNode->department =="production")
    {
     totalp++;
     }
      if(currNode->department =="management")
    {
     totalm++;
     }
      currNode = currNode->next;
      }
      cout <<"Total employee in design department is :"<<totald<<endl;
       cout <<"Total employee in production department is :"<<totalp<<endl;
        cout <<"Total employee in management department is :"<<totalm<<endl;
        cout <<"Total employees of all department is :"<<totald + totalp + totalm<<endl;
      
      
      
      
     }
     
     int List::FindNode(int y) {
 employeeInfo* currNode = head;
 int currIndex = 1;
 while (currNode && currNode->id!= y) {
  currNode = currNode->next;
  currIndex++;
 }
 if (currNode)
 { cout << "Employee Name :"<<currNode->name <<endl;
  cout << "Employee ID   :"<<currNode->id<<endl;;
  cout << "Age           :"<<currNode->department<<endl;}
 else{
     cout <<"Employee not found"<<endl;
  return 0;
}}
      
      
          

int main()
{
    int choice,logchc,numemploy,id,dselect;
    int select ;
    int count = 0;
    char ch;
    string Bpassword = "1234";
    string Hpassword = "5678";
    string password,name,departmentl,department,decide;
    
    List test;
    test.InsertEmployee("Michael",1213,"design");
    test.InsertEmployee("Steven",2345,"management");
    test.InsertEmployee("Fernando",3456,"design");
    test.InsertEmployee("Michelle",1213,"production");
    test.InsertEmployee("Fenelix",1213,"design");
    test.InsertEmployee("Michael",1213,"production");
    
    
    
    //cout <<"What position do you hold in the company ?"<<endl;
   // cout <<"\n";
   // cout <<"1.Board of Director"<<endl;
    //cout <<"2.Head of Department"<<endl;
    
  //  cin >> choice;
    
  //  if(choice == 1)
   // {
             // cout <<"Please setup a password to sign in for further priviledges"<<endl;
             // cout <<"Password :";
              //cin >> Bpassword;
   // }
   // else if(choice == 2)
    //{         label:
            //  cout <<"Please setup a password for Head of Department to sign in for further priviledges"<<endl;
            //  cout <<"Password :";
             // cin >> Hpassword;
  //  }
   // system("cls");
    label: 
    cout <<" 1.Log in as Board Director"<<endl;
    cout <<" 2.Log in as Head of Department"<<endl;
    
    cout <<"\nWhich priviledges do you wish to log in:"<<endl;
    cin >>logchc;
    if (logchc == 1)
    {
               cout <<"You had choose to login as Board of Director"<<endl;
               cout <<"Please enter your password:";
               while(password != Bpassword){
               cin >> password;
               if(password != Bpassword)
               cout <<"Incorrect password ,please enter again :";
               }
                           system("cls");
                           cout <<"Log in successfully"<<endl;
                           test.numEmployee();
                           cout <<"How many employees do you wish to layoff :";
                           cin >> numemploy;
                           cout <<"From which department:";
                           cin >> departmentl;
                           cout <<"You had decide to sack "<<numemploy<<"people from"<<departmentl<<" department"<<endl;
                           cout <<"Information would further to Head of Department.In order to take action Head of department must be take action"<<endl;
                          
                           system("PAUSE");
                           system("cls");
                           goto label;
                           
                           
                           
                           }
                           
     if(logchc == 2)
     {
               cout <<"You had choose to login as Head of Department"<<endl;
               cout <<"Please enter your password";
               cin >> password;
               while(password != Hpassword){
               cin >> password;
               if(password != Hpassword)
               cout <<"Incorrect password ,please enter again :";
               }
               system("cls");
               cout <<"Log in successfully"<<endl;
               cout <<"\n";
               labelb:
               cout <<"1.Employ new employee"<<endl;
               cout <<"2.Layoff employee"<<endl;
               cout <<"3.Find employee"<<endl;
               cout <<"4.View all Information of employee"<<endl;
               cout <<"5.Enter your selection :"<<endl;
               cin >> select; 
               if(select == 1)
               {         while(decide == "y" || decide == "Y"){
                         cout << "Enter the employee's name :";
                         cin >> name;
                         cout <<"Enter the id number :";
                         cin >> id;
                         cout <<"Select the department :"<<endl;
                         cout <<"1.Design"<<endl;
                         cout <<"2.Production"<<endl;
                         cout <<"3.Management"<<endl;
                         while(dselect <= 0 || dselect >3){
                         cin >> dselect;
                         switch(dselect)
                         {
                                       case '1':department = "Design";
                                       break;
                                       case '2':department = "Production";
                                       break;
                                       case '3':department = "Management";
                                       break;
                                       default:cout <<"You had pick the wrong choice!Select again:";
                                                    }
                         test.InsertEmployee(name,id,department);
                         cout <<"Do you wish to add another employee ?<y/n>";
                         cin >>decide;
                         }
                         if(select == 2)
                         {
                         cout <<"The Board of Director had decide to fire "<<numemploy<<"people from"<<departmentl<<endl;
                         while(count < numemploy){
                         cout <<"Insert the employee ID you wish to layoff :";
                         cin >> id;
                         count++;
                         test.DeleteNode(id);
                         if(count<numemploy)
                         cout <<"Next employee"<<endl;
                         }
                          cout <<numemploy<<" of people had been fired."<<endl;
                          cout <<"Press enter to back to previous menu";
                          cin.get();
                          }
                          
                          if(select == 3)
                          {
                          while(test.FindNode(id)==0){
                          cout <<"Insert the employee ID you wish to find :";
                          cin >> id;
                          test.FindNode(id);}
                          cout <<"Press enter to back to previous menu";
                          cin.get();
                          
                          }          
                        
                           
                         
                         
                         cout <<"1.Head of department menu"<<endl;
                         cout <<"2.Log in menu"<<endl;
                         cout <<"Which menu to return :";
                         cin >> select;
                         if (select == 1)
                         goto labelb;
                         if(select == 2)
                         goto label;
                         
                         }
                         }
                         }
                           
               
    
    
    
    
    
    
    
    getch(); 
    return 0;
}
The fucntion cannot works well when i choose to log in as Head Department and pick any choices from the menu.
0
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
You'll find the code a lot easier to debug if you indent it correctly.

What does it do wrong?