By tanushri-bhawar
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
struct Record {
string name;
string dob;
string phone;
bool operator<(const Record& other) const {
return name < other.name;
}
};
void displayRecords(const vector<Record>& records) {
for (const auto& record : records) {
cout << "Name: " << record.name
<< ", DOB: " << record.dob
<< ", Phone: " << record.phone << endl;
}
}
int searchRecord(const vector<Record>& records, const string& name) {
auto it = find_if(records.begin(), records.end(), [&name](const Record& record) {
return record.name == name;
});
if (it != records.end()) {
return distance(records.begin(), it);
}
return -1;
}
int main() {
vector<Record> records;
int n;
cout << "Enter number of records: ";
cin >> n;
cin.ignore();
for (int i = 0; i < n; ++i) {
Record record;
cout << "Enter name: ";
getline(cin, record.name);
cout << "Enter DOB (YYYY-MM-DD): ";
getline(cin, record.dob);
cout << "Enter phone number: ";
getline(cin, record.phone);
records.push_back(record);
}
sort(records.begin(), records.end());
cout << "\nSorted Records:\n";
displayRecords(records);
string searchName;
cout << "\nEnter name to search: ";
getline(cin, searchName);
int index = searchRecord(records, searchName);
if (index != -1) {
cout << "Record found: " << endl;
cout << "Name: " << records[index].name
<< ", DOB: " << records[index].dob
<< ", Phone: " << records[index].phone << endl;
} else {
cout << "Record not found." << endl;
}
return 0;
}