Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/forums/cpp/)
-   -   choices cannot works find (http://www.go4expert.com/forums/choices-t19637/)

low1988 1Oct2009 02:37

choices cannot works find
 
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.

xpi0t0s 1Oct2009 14:44

Re: choices cannot works find
 
You'll find the code a lot easier to debug if you indent it correctly.

What does it do wrong?


All times are GMT +5.5. The time now is 16:12.