Answer to Question #160094 in C++ for mosab saleh sawafta

Question #160094

c++ question

Three salesmen work for a pharmaceutical company. Each salesman has an ID, salary

and phone number as shown in the example below.

ID salary phone number

11 $1000 2388888

12 $1200 2377777

13 $1300 2355555

Declare the arrays necessary to enter the information of 20 salesmen, and initialize them

with the information of the three salesmen above (i.e. the first three cells of each array are

initialized as shown in the table above).

Then, the program must display the following list of tasks:

1. Add a salesman

2. Delete a salesman

3. Search for a salesman by his ID

4. Exit

The user chooses a task by entering the task number (1, 2, 3 or 4).

Write the 3 functions necessary to perform the previous tasks (add, delete and

search), then call these functions to perform the tasks chosen by the user.

The program must keep on displaying the previous list of tasks and performing the

required task until the user enters 4. (Hint: the main loop is ended when 4 is

entered).

If the number of salesmen entered by the user exceeds 20 (which is bigger than array

size), the program must display the following message on screen:

Sorry, the company has enough salesmen at the current time, if you want to add a new

salesman, you should delete one first.

Notes and hints:

- All the steps from 1 to 3 must be done using functions.

- Use the concept of parallel arrays.

- When you delete a salesman, you have to shift the information of the following

ones in each of the arrays.

- When you add a salesman, add his information at the end of the arrays (if the

number of salesmen is under 20)


1
Expert's answer
2021-01-30T22:33:35-0500

it's better to keep all salesman info in structrather class, because it only keeps information

and doesn't invoke some operations - no any methods. Iwrite all code below, so if you want you'll may distribute all code parts on

several files.

Here the code:


struct salesman
{
int id;
double salary;
string telephone; //or you can use char*type
};
//Our salesman collection
class Salesmen
{
private:
const int LIST_SIZE = 20;
salesman* array[LIST_SIZE];
int top;
public:
//Constructor. Here three salesmen areinitialized
Salesmen()
{
top = 0;
addSalesman(11, 100,"2388888");
addSalesman(12, 150,"2377777");
addSalesman(13, 250,"2355555");
}
//Destructor
~Salesmen()
{
while (top != 0) //asour array keep pointers to objects, we must clear all memory
{
delete();
}
}

void addSalesman(salesman man)
{
if (top == LIST_SIZE)
{
cout << "List is full\n";
return;
}
array[top] = &man;
top++;
}
void addSalesman(int id, double salary,string telephone)
{
salesman man;
man.id= id;
man.salary = salary;
man.telephone =telephone;
addSalesman(man);
}
//deletes last added
void delete()
{
if (top == 0)
{
cout << "List is empty\n";
return;
}
top--;
delete array[top];
}
salesman* search(int id)
{
for (int index = 0;;index < top; index++)
{
if(array[index]->id == id)
{
return array[index];
}
}
return NULL; //if nosalesmen are founded; we use pointers there to be able to return NULL
}
void show()
{
cout << "IDSalary Telephone number\n";
for (int i = 0; i <top; i++)
{
cout << array[i]->id << " " <<
array[i]->salary << " " << array[i]->telephone
<< endl;
}
}
};
void addSalesmanTest(Salesmen* men);
void deleteSalesmanTest(Salesmen* men);
void searchSalesmanTest(Salesmen* men);
void menu(int choise, Salesmen* men);

void main()
{
int choise;
Salesmen salesmen;
while(true)
{
cout <<"Choose one of these points:\n";
cout << "1to add a salesman\n";
cout << "2to delete salesman\n";
cout << "3to search salesman by his ID\n";
cout << "4 to exit";
cin >> choise;
menu(choise,&salesmen);
//clear screen.system() function executes any specified in parameter console command
system("cls"); //it works only for Windows - for Linux -> system("clear");
}
}
void menu(int choise, Salesmen* men)
{
switch(choise)
{
case 1:
addSalesmanTest(men);
break;
case 2:
deleteSalesmanTest(men);
break;
case 3:
searchSalesmanTest(men);
break;
case 4:
cout << "Goodbye\n";
exit(0);
default:
cout << "No such menu point!\n";
break;
}
cout << "Press any key";
getch();
}
void addSalesmanTest(Salesmen* men)
{
int id;
double salary;
stringtelephone;
string prompt = "Enter salesman";
cout << prompt + "id: ";
cin >> id;
cout << prompt + "salary:";
cin >> salary;
cout << prompt + "telephonenumber: ";
getline(cin,telephone); //we can't write cin >> telephone, so we use there standard
function
men->add(id, salary, telephone);
cout << "\nCurrentsalesmen:\n\n";
men->show();
}
void deleteSalesmanTest(Salesmen* men)
{
men->delete();
cout << "\nCurrent salesmen:\n\n";
men->show();
}
void searchSalesmanTest(Salesmen* men)
{
cout << "Enter needed id:";
int id;
cin >> id;
salesman* man = men->search(id);
if(man == NULL) // or if(!man)
{
cout << "Nosalesman with this id!\n";
return;
}
cout << "ID => "<< man->id <<
"Salary => " << man->salary <<
"Telephone number => " <<
man->telephone << endl;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog