Untitled
unknown
plain_text
a year ago
6.8 kB
3
Indexable
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int id = 0;
struct Node {
int id;
string name;
string phone;
string gender;
string job;
string registration;
Node(const int clientID, const string& clientName, const string& clientPhone,
const string& clientGender, const string& clientJob, const string& clientRegistration) {
id = clientID;
name = clientName;
phone = clientPhone;
gender = clientGender;
job = clientJob;
registration = clientRegistration;
}
};
struct Queue {
vector<Node> Clients;
void enqueue(const string& clientName, const string& clientPhone, const string& clientGender,
const string& clientJob, const string& clientRegistration) {
Clients.emplace_back(id++, clientName, clientPhone, clientGender, clientJob, clientRegistration);
}
void dequeue() {
if (Clients.empty()) {
cerr << "Error: Queue is empty" << endl;
return;
}
Clients.erase(Clients.begin());
}
void printAllClients() {
for (const auto& client : Clients) {
cout << "ID: " << client.id << ", Name: " << client.name << ", Phone: " << client.phone
<< ", Gender: " << client.gender << ", Job: " << client.job
<< ", Registration: " << client.registration << endl;
}
}
void printVIPClients() {
for (const auto& client : Clients) {
if (client.registration == "VIP") {
cout << "ID: " << client.id << ", Name: " << client.name << ", Phone: " << client.phone
<< ", Gender: " << client.gender << ", Job: " << client.job << endl;
}
}
}
void printNormalClients() {
for (const auto& client : Clients) {
if (client.registration == "Normal") {
cout << "ID: " << client.id << ", Name: " << client.name << ", Phone: " << client.phone
<< ", Gender: " << client.gender << ", Job: " << client.job << endl;
}
}
}
bool Search(int ID) {
for (const auto& client : Clients) {
if (client.id == ID) {
cout << "ID: " << client.id << ", Name: " << client.name << ", Phone: " << client.phone
<< ", Gender: " << client.gender << ", Job: " << client.job
<< ", Registration: " << client.registration << endl;
return true;
}
}
return false;
}
void update(int ID, const string& newName, const string& newPhone, const string& newRegistration, const string& newJob) {
for (auto& client : Clients) {
if (client.id == ID) {
client.name = newName;
client.phone = newPhone;
client.registration = newRegistration;
client.job = newJob;
return;
}
}
cerr << "Error: Client ID not found for update" << endl;
}
void deleteClient(int ID) {
auto it = find_if(Clients.begin(), Clients.end(), [ID](const Node& client) {
return client.id == ID;
});
if (it != Clients.end()) {
Clients.erase(it);
cout << "Client with ID: " << ID << " has been deleted" << endl;
} else {
cerr << "Error: Client ID not found for deletion" << endl;
}
}
void display() {
for (const auto& client : Clients) {
cout << "ID: " << client.id << ", Name: " << client.name << ", Phone: " << client.phone
<< ", Gender: " << client.gender << ", Job: " << client.job
<< ", Registration: " << client.registration << endl;
}
}
bool isEmpty() {
return Clients.empty();
}
};
int main() {
Queue clients;
cout << "**********************************************"
"**********************************";
cout << "\n\n\t\t\t\tManagement System";
cout << "\n\n\t\t\t\t Control Panel\n";
cout << "**********************************************"
"**********************************\n";
while (true) {
cout << "\n 1. Enqueue";
cout << "\n 2. Dequeue";
cout << "\n 3. Print All Clients";
cout << "\n 4. Print VIP Clients";
cout << "\n 5. Print Normal Clients";
cout << "\n 6. Search";
cout << "\n 7. Update";
cout << "\n 8. Delete";
cout << "\n 9. Exit" << endl;
cout << "Enter your choice:" << endl;
int choice;
cin >> choice;
if (choice == 1) {
string name, phone, gender, job, registration;
cout << "Enter your name: " << endl;
cin.ignore();
getline(cin, name);
cout << "Enter your phone number: " << endl;
cin >> phone;
cout << "Enter your gender: " << endl;
cin >> gender;
cout << "Enter your job: " << endl;
cin.ignore();
getline(cin, job);
cout << "Enter your registration [VIP OR NORMAL]: " << endl;
cin >> registration;
clients.enqueue(name, phone, gender, job, registration);
} else if (choice == 2) {
clients.dequeue();
} else if (choice == 3) {
clients.printAllClients();
} else if (choice == 4) {
clients.printVIPClients();
} else if (choice == 5) {
clients.printNormalClients();
} else if (choice == 6) {
cout << "Enter client ID" << endl;
int id;
cin >> id;
if (!clients.Search(id)) {
cout << "Not Found" << endl;
}
} else if (choice == 7) {
cout << "Enter client ID" << endl;
int id;
cin >> id;
string name, phone, job, registration;
cout << "Enter your new name: " << endl;
cin.ignore();
getline(cin, name);
cout << "Enter your phone: " << endl;
cin >> phone;
cout << "Enter your job: " << endl;
cin.ignore();
getline(cin, job);
cout << "Enter your new registration: " << endl;
cin >> registration;
clients.update(id, name, phone, registration, job);
} else if (choice == 8) {
cout << "Enter client ID" << endl;
int id;
cin >> id;
clients.deleteClient(id);
} else {
return 0;
}
}
}
Editor is loading...
Leave a Comment