Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <cstdlib>
- using namespace std;
- struct Person
- {
- char* name;
- char* birth;
- int number;
- }
- template<class T>
- struct zapis {
- int Key;
- T Value;
- zapis<T>* Next;
- };
- template <class T>
- class Collection{
- public:
- zapis<T>* Head;
- Collection() {};
- Collection (int key1, T value1){
- zapis* temp = new Zapis;
- Key = key1;
- value = value1;
- }
- };
- class kniga{
- private:
- Collection<Person>* elem;
- int index;
- public:
- kniga() {
- index = 0;
- elem = new Collection<Person>;
- };
- kniga(const char* Name, const char* Birth, int tel){
- index = 1;
- elem[index].value.name = new char[strlen(Name)+1];
- strcpy(elem[index].value.name, Name);
- elem[index].value.birth = new char[strlen(Birth)+1];
- strcpy(elem[index].value.birth, Birth);
- elem[index].value.number = tel;
- };
- template <class T1>
- void Add(T1 key1, zapis value1) {
- index++;
- elem = new Collection<T>;
- elem[index] = elem (key1, value1);
- };
- template <class T2>
- zapis Search (T2 key2) {
- bool b = 0;
- int l;
- for (int i = 0; i<index; i++) {
- if ( (!(strcmp(key2,elem[i].value.name))) || (!(strsmp(key2, elem[i].value.birth))) || (key2 == elem[i].value.number)) {
- b = 1;
- l = i;
- }
- }
- if (b) {return elem[l].value;}
- else {
- cout <<"Записи не найдено" <<endl;
- return 0;
- }
- };
- bool k;
- void Bubble(char* length1, char* length2){
- k=0;
- for (int j=0; j<strlen(length1); j++){
- if (length1[j]>length2[j]) k=1;
- }
- if (k) {
- char* temp = new char[255];
- strcpy(temp, length1);
- strcpy(length1, length2);
- strcpy(length2, temp);
- delete[] temp;
- }
- }
- void Sorting(int a){
- switch (a) {
- case 5: {
- k=1;
- while (k) {
- k=0;
- for (int i=0; i<index; i++) {
- Bubble(elem[i].value.name, elem[i+1].value.name);
- }
- }
- break;
- }
- case 6: {
- k=1;
- while (k) {
- k=0;
- for (int i=0; i<index; i++) {
- Bubble(elem[i].value.birth, elem[i+1].value.birth);
- }
- }
- break;
- }
- case 7: {
- bool b = false;
- while (!b) {
- for (int i=0; i<(index-1); i++) {
- if (elem[i].value.number > elem[i+1].value.number) {
- int c = elem[i+1].value.number;
- elem[i+1].value.number = elem[i].value.number;
- elem[i].value.numbet = c;
- b = true;
- }
- }
- }
- break;
- }
- }
- }
- ~kniga(){
- delete[] elem;
- };
- };
- int main() {
- setlocale(LC_ALL, "Russian");
- // kniga<char*> MyBook;
- zapis contact;
- // char* name1 = new char[255];
- // char* birth1 = new char[255];
- // int number1;
- getchar();
- cin.getline(contact.name, 255);
- getchar();
- cin.getline(contact.birth, 255);
- cin >> contact.number;
- kniga<char*> MyNumbers;
- kniga<int> MyNumbers1;
- MyNumbers.Add<char*>(contact.name, contact);
- MyNumbers1.Add<int>(contact.number, contact);
- // kniga<char*> MyNumbers(name1, birth1, number1);
- /*
- cout << "Введите количество книг" <<endl;
- int kol;
- cin >> kol;
- */
- cout << "Выберите, что нужно сделать:" <<endl
- << "1 - Поиск по имени " <<endl
- << "2 - Поиск по дате рождения" <<endl
- << "3 - Поиск по номеру телефона" <<endl
- << "4 - Добавить запись" <<endl
- << "5 - Сортировать по имени"<<endl
- << "6 - Сортировать по дате рождения" <<endl
- << "7 - Сортировать по номеру телефона" <<endl
- << "0 - Вывести на экран все записи" <<endl;
- int h;
- cin >> h;
- switch (h)
- {
- case 1 : {
- cout << "Введите имя" <<endl;
- char* stn = new char[255];
- getchar();
- cin.getline(stn, 255);
- break;
- }
- case 2 : {
- break;
- }
- case 3 : {
- break;
- }
- case 4 : {
- // MyNumbers.Add<char*>()
- break;
- }
- case 5 : {
- break;
- }
- case 6 : {
- break;
- }
- case 7 : {
- break;
- }
- case 0 : {
- break;
- }
- default : {
- cout << "Вы ввели неправильный вариант. Попробуйте еще раз." <<endl;
- }
- }
- system ("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement