Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I have A problem in my case 4. For example, When I tried to delete vector record, WHATEVER I insert AB111 BB111 CD111, EVEN I

I have A problem in my case 4. For example, When I tried to delete vector record, WHATEVER I insert AB111 BB111 CD111, EVEN I insert the GH111, AS321, ND446 it always shows "You entered an Invalid Employee ID, Which is not in our record: Please re-enter Employee ID to Delete a record: ".

Here is "personnel.dat", Plz saves it and helps me to figure out.

GH111 Allan Barry 36.7 80.3 0.15 2 AS321 DeMann Stan 34.5 28.95 0.16 0 JK290 Denvers Kara 55.6 45.66 0.055 0 NG201 Ivy Samantha 47.5 70.91 0.05 1 ND446 Joneski Kasey 44.5 30.5 0.03 2 KH111 Kent Clark 40 33.5 0.01 0 HJ111 Oliver Ted 27.88 33.11 0.04 1 HJ505 Smith Alias 40 45.6 0.11 3 ZJ319 Wayne Bruce 55.7 75.66 0.095 1 JU105 Williams Judy 20.4 44.5 0.03 3

-------------

#include #include #include #include #include #include #include #include using namespace std;

struct employee_rec { char empid[6]; char lastname[20]; char firstname[30]; float hours; float payrate; float taxrate; int dependents; };

bool sortbylast (const employee_rec& emp1, const employee_rec& emp2) {return emp1.lastname[0] < emp2.lastname[0];}

int main() { vector employee_vector; employee_rec data; bool again = true; int opt, index, opt5; string temp; int n, i;

cout.precision(2); cout.setf (ios::fixed | ios:: showpoint);

fstream in ("personnel.dat"); if (in.is_open()) { while (in >> data.empid >> data.lastname >> data.firstname >> data.hours >> data.payrate >> data.taxrate >> data.dependents) { employee_vector.push_back(data); } } else { cout << "Cannot Open file."; again = false; } in.close();

while (again) { system("cls"); cout << "\tMenu:" << " 1 - Display the contents of the Vector" << " 2 - Find a record based in Employee ID" << " 3 - Sort the records based on Last Name" << " 4 - Delete a record based on Employee ID" << " 5 - Change one or more of the fields, search for the target record based on Employee ID" << " 6 - Add a new record to the vector" << " 7 - Quit" << " \tEnter an option (1 to 7): "; cin >> opt; opt = abs(opt);

switch(opt) { case 1: { system("cls"); cout << "Option 1 - Display the contents of the Vector " << employee_vector.size() << " Elements in the Vector:"; for (int i = 0; i < employee_vector.size(); i++) { cout << " Employee ID: " << employee_vector[i].empid << " Employee Last Name: " << employee_vector[i].lastname << " Employee First Name: " << employee_vector[i].firstname << " Employee Hours: " << employee_vector[i].hours << " Employee Pay Rate: " << employee_vector[i].payrate << " Employee Income Tax Rate: " << employee_vector[i].taxrate << " Employee Number of Dependents: " << employee_vector[i].dependents; } cout << " Hit Any Key to Continue..."; getch(); break; } case 2: { system("cls"); cout << "Option 2 - Find a record based in Employee ID "; if (employee_vector.size() > 0) { cout << "Enter Employee ID: "; cin >> temp; for (i = 0; i < employee_vector.size(); i++) { if (temp == employee_vector[i].empid) { system("cls"); cout << "Employee ID: " << temp << " Employee Last Name: " << employee_vector[i].lastname << " Employee First Name: " << employee_vector[i].firstname << " Employee Hours: " << employee_vector[i].hours << " Employee Pay Rate: " << employee_vector[i].payrate << " Employee Income Tax Rate: " << employee_vector[i].taxrate << " Employee Number of Dependents: " << employee_vector[i].dependents; break; } } if (temp != employee_vector[i].empid) { cout << "Employee ID " << temp << " is not found. "; } } else { cout << temp << " record is not in the file. "; } cout << " Hit Any Key to Continue..."; getch(); break; } case 3: { system("cls"); sort(employee_vector.begin(), employee_vector.end(), sortbylast); cout << "Option 3 - Sort the records based on Last Name " << employee_vector.size() << " Elements in the Vector sort by Last Name:"; for (int i = 0; i < employee_vector.size(); i++) { cout << " Employee ID: " << employee_vector[i].empid << " Employee Last Name: " << employee_vector[i].lastname << " Employee First Name: " << employee_vector[i].firstname << " Employee Hours: " << employee_vector[i].hours << " Employee Pay Rate: " << employee_vector[i].payrate << " Employee Income Tax Rate: " << employee_vector[i].taxrate << " Employee Number of Dependents: " << employee_vector[i].dependents; } cout << " Hit Any Key to Continue..."; getch(); break; } case 4: { system("cls"); cout << "Option 4 - Delete a record based on Employee ID "; if (employee_vector.size() > 0) { cout << "Enter Employee ID to Delete a record: "; cin >> temp; for (i = 0; i < employee_vector.size() - 1; i++) { if (temp != data.empid) { cout << " You entered an Invalid Employee ID, Which is not in our record: " << temp << " Please re-enter Employee ID to Delete a record: "; cin >> temp; } } employee_vector.erase(employee_vector.begin() + i); cout << " Record Deleted... "; } else { cout << employee_vector.size() << " Element in the Vector. Add Elements to the Vector..." << " Hit Any Key to Continue..."; } getch(); system("cls"); break; } case 5: { system("cls"); cout << "Option 5 - Change one or more of the fields, search for the target record based on Employee ID " << "Enter Employee ID to change one or more of the fields: "; cin >> temp; for (i = 0; i < employee_vector.size() - 1; i++) { if (temp == employee_vector[i].empid) { return i; } } system("cls"); cout << "Employee ID: " << temp << " 1 - Change All fields" << " 2 - Change Employee ID" << " 3 - Change Employee Last Name" << " 4 - Change Employee First Name" << " 5 - Change Employee Hours" << " 6 - Change Employee Pay Rate" << " 7 - Change Employee Income Tax Rate" << " 8 - Change Employee Number of Dependents" << " 9 - Quit" << " Enter an Option (1 - 9): "; cin >> opt5;

switch(opt5) { case 1: { cout << " Enter Employee ID: "; cin >> employee_vector[i].empid; cout << " Enter Employee Last Name: "; cin >> employee_vector[i].lastname; cout << " Enter Employee First Name: "; cin >> employee_vector[i].firstname; cout << " Enter Employee Hours: "; cin >> employee_vector[i].hours; cout << " Enter Employee Pay Rate: "; cin >> employee_vector[i].payrate; cout << " Enter Employee Income Tax Rate: "; cin >> employee_vector[i].taxrate; cout << " Enter Employee Number of Dependents: "; cin >> employee_vector[i].dependents; break; } case 2: { cout << " Enter Employee ID: "; cin >> employee_vector[i].empid; break; } case 3: { cout << " Enter Employee Last Name: "; cin >> employee_vector[i].lastname; break; } case 4: { cout << " Enter Employee First Name: "; cin >> employee_vector[i].firstname; break; } case 5: { cout << " Enter Employee Hours: "; cin >> employee_vector[i].hours; break; } case 6: { cout << " Enter Employee Pay Rate: "; cin >> employee_vector[i].payrate; break; } case 7: { cout << " Enter Employee Income Tax Rate: "; cin >> employee_vector[i].taxrate; break; } case 8: { cout << " Enter Employee Number of Dependents: "; cin >> employee_vector[i].dependents; break; } case 9: { break; } default: { system("cls"); cout << opt5 << " is NOT a Valid value!"; cout << " Hit Any Key to continue..."; getch(); } } break; } case 6: { system("cls"); cout << "Option 6: Add a new record to the vector "; if (employee_vector.size() > 0) { cout << "Enter an index location to Add a new value (0 to " << employee_vector.size() - 1 << "): "; cin >> index; index = abs (index); while (index > employee_vector.size()) { system("cls"); cout << " You entered an Invalid Index Number, " << index << " Enter an index location to Add a new value (0 to " << employee_vector.size() - 1 << "): "; cin >> index; index = abs(index); } system("cls"); cout << "Enter Employee ID: "; cin >> data.empid; cout << "Enter Employee Last Name: "; cin >> data.lastname; cout << "Enter Employee First Name: "; cin >> data.firstname; cout << "Enter Employee Hours: "; cin >> data.hours; cout << "Enter Employee Pay Rate: "; cin >> data.payrate; cout << "Enter Employee Income Tax Rate: "; cin >> data.taxrate; cout << "Enter Employee Number of Dependents: "; cin >> data.dependents; employee_vector.insert(employee_vector.begin() + index, data); } else { index = 0; cout << "Enter Employee ID: "; cin >> data.empid; cout << "Enter Employee Last Name: "; cin >> data.lastname; cout << "Enter Employee First Name: "; cin >> data.firstname; cout << "Enter Employee Hours: "; cin >> data.hours; cout << "Enter Employee Pay Rate: "; cin >> data.payrate; cout << "Enter Employee Income Tax Rate: "; cin >> data.taxrate; cout << "Enter Employee Number of Dependents: "; cin >> data.dependents; employee_vector.insert(employee_vector.begin() + index, data); } system("cls"); break; } case 7: { system("cls"); again = false; break; } default: { system("cls"); cout << opt << " is NOT a Valid value!"; cout << " Hit Any Key to continue..."; getch(); } } } fstream out; out.open("personnel.dat"); for (int i = 0; i < employee_vector.size(); i++) { out << employee_vector[i].empid << ' ' << employee_vector[i].lastname << ' ' << employee_vector[i].firstname << ' ' << employee_vector[i].hours << ' ' << employee_vector[i].payrate << ' ' << employee_vector[i].taxrate << ' ' << employee_vector[i].dependents << ' '; } out.close(); }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions