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.
|