-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsearchSort.cpp
More file actions
133 lines (115 loc) · 3.78 KB
/
searchSort.cpp
File metadata and controls
133 lines (115 loc) · 3.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <iterator>
using namespace std;
struct Record{
string Name;
string DOB;
int teleNumber;
};
bool compareName(const Record&r1, const Record&r2){
return r1.Name < r2.Name;
}
bool compareDOB(const Record&r1, const Record&r2){
return r1.DOB < r2.DOB;
}
bool compareTele(const Record&r1, const Record&r2){
return r1.teleNumber < r2.teleNumber;
}
int main(){
vector <Record> personalRecords;
int n;
// string name, dob;
// int tele;
cout << "Enter the number of students : ";
cin >> n;
cout << "\nEnter the name, DOB and telephone number : " << endl;
for(int i = 0; i<n; i++){
Record record;
cout << "\nName : ";
cin >> record.Name;
cout << "DOB (ddmmyyyy) : ";
cin >> record.DOB;
cout << "Telephone : ";
cin >> record.teleNumber;
record.DOB = record.DOB.substr(0,2) + "/" + record.DOB.substr(2,2) + "/" + record.DOB.substr(4,4);
personalRecords.push_back(record);
}
cout << "\nSort the record by : " << endl;
cout << "1. Name \n2. DOB \n3. Telephone Numbers\n4. No Sorting" << endl;
int choice;
cin >> choice;
switch(choice){
default : {
cout << "\nInvalid choice, sorting not done!!";
break;
}
case 1:{
sort(personalRecords.begin(), personalRecords.end(), compareName);
break;
}
case 2:{
sort(personalRecords.begin(), personalRecords.end(), compareDOB);
break;
}
case 3:{
sort(personalRecords.begin(), personalRecords.end(), compareTele);
break;
}
case 4:{
cout << "\nNot sorted";
break;
}
}
for(const auto&RC : personalRecords){
cout << "Name : " << RC.Name << "\nDOB : " << RC.DOB << "\nTelephone : " << RC.teleNumber << endl << endl;
}
cout << "\nSearch the record by : " << endl;
cout << "1. Name \n2. DOB \n3. Telephone Numbers" << endl;
cin >> choice;
switch(choice){
default : {
cout << "\nInvalid choice";
break;
}
case 1:{
cout << "Enter the name of the record to find : " << endl;
string findName;
cin >> findName;
for(const auto&RC : personalRecords){
if(RC.Name == findName){
cout << "\nRecord Found!!!" << endl;
cout << "Name : " << RC.Name << "\nDOB : " << RC.DOB << "\nTelephone : " << RC.teleNumber << endl << endl;
}
}
break;
}
case 2:{
cout << "Enter the DOB of the record to find : " << endl;
string findDOB;
cin >> findDOB;
for(const auto&RC : personalRecords){
if(RC.DOB == findDOB){
cout << "\nRecord Found!!!" << endl;
cout << "Name : " << RC.Name << "\nDOB : " << RC.DOB << "\nTelephone : " << RC.teleNumber << endl << endl;
}
}
break;
}
case 3:{
cout << "Enter the telephone number of the record to find : " << endl;
int findNum;
cin >> findNum;
for(const auto&RC : personalRecords){
if(RC.teleNumber == findNum){
cout << "\nRecord Found!!!" << endl;
cout << "Name : " << RC.Name << "\nDOB : " << RC.DOB << "\nTelephone : " << RC.teleNumber << endl << endl;
}
}
break;
}
}
return 0;
}