Advertisement
daniil_mironoff

Untitled

Nov 25th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.99 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. const unsigned int MAXSIZE = 32;
  6.  
  7. struct item {
  8.     char name[MAXSIZE];
  9.     char number[MAXSIZE];
  10.     char addr[MAXSIZE];
  11.  
  12.     item* next = NULL;
  13. };
  14.  
  15. struct list {
  16.     item* first = NULL;
  17. };
  18.  
  19.  
  20.  
  21. void list_push_back(list& data, item* obj) {
  22.     obj -> next = data.first;
  23.     data.first  = obj;
  24. }
  25.  
  26. void list_display(list& data) {
  27.     item* temp = data.first;
  28.    
  29.     while(temp) {
  30.         cout << temp -> name << ' ' << temp -> number << ' ' << temp -> addr << endl;
  31.         temp = temp -> next;
  32.     }
  33. }
  34.  
  35. item* create_human(char* argName, char* argNumber, char* argAddr) {
  36.     item* newHuman = new item;
  37.    
  38.     // Проверка на длину имени
  39.     for (int i = 0; true; i++) {
  40.         newHuman -> name[i] = argName[i];
  41.  
  42.         if (argName[i] == 0) {
  43.             break;
  44.         }
  45.  
  46.         if (i == MAXSIZE) {
  47.             exit(1);
  48.         }
  49.     }
  50.    
  51.     // Проверка на длину номера
  52.     for (int i = 0; true; i++) {
  53.         newHuman -> number[i] = argNumber[i];
  54.  
  55.         if (argNumber[i] == 0) {
  56.             break;
  57.         }
  58.  
  59.         if (i == MAXSIZE) {
  60.             exit(1);
  61.         }
  62.     }
  63.  
  64.     // Проверка на длину addr
  65.     for (int i = 0; true; i++) {
  66.         newHuman -> addr[i] = argAddr[i];
  67.  
  68.         if (argAddr[i] == 0) {
  69.             break;
  70.         }
  71.  
  72.         if (i == MAXSIZE) {
  73.             exit(1);
  74.         }
  75.     }
  76.  
  77.     return newHuman;
  78. }
  79.  
  80.  
  81.  
  82. void find_item_number(list& data, char* number) {
  83.     item* temp = data.first;
  84.    
  85.     while(temp) {
  86.         bool find = true;
  87.  
  88.         for (int i = 0; (temp -> number[i]) != 0; i++) {
  89.             if (temp -> number[i] != number[i]) {
  90.                 find = false;
  91.                 break;
  92.             }
  93.         }
  94.  
  95.         if (find) {
  96.             cout << "Find number " << number << ": " << temp -> name << " " << temp -> addr <<endl;
  97.         }
  98.  
  99.         temp = temp -> next;
  100.     }
  101. }
  102.  
  103. void find_item_name(list& data, char* name) {
  104.     item* temp = data.first;
  105.    
  106.     while(temp) {
  107.         bool find = true;
  108.  
  109.         for (int i = 0; (temp -> name[i]) != 0; i++) {
  110.             if (temp -> name[i] != name[i]) {
  111.                 find = false;
  112.                 break;
  113.             }
  114.         }
  115.  
  116.         if (find) {
  117.             cout << "Find name " << name << ": " << temp -> number << " " << temp -> addr << endl;
  118.         }
  119.  
  120.         temp = temp -> next;
  121.     }
  122. }
  123.  
  124. void find_item_addr(list& data, char* addr) {
  125.     item* temp = data.first;
  126.    
  127.     while(temp) {
  128.         bool find = true;
  129.  
  130.         for (int i = 0; (temp -> addr[i]) != 0; i++) {
  131.             if (temp -> addr[i] != addr[i]) {
  132.                 find = false;
  133.                 break;
  134.             }
  135.         }
  136.  
  137.         if (find) {
  138.             cout << "Find addr " << addr << ": " << temp -> name << " " << temp -> number << endl;
  139.         }
  140.  
  141.         temp = temp -> next;
  142.     }
  143. }
  144.  
  145. int main() {
  146.     list numbersBook;
  147.     list_push_back(numbersBook, create_human("Daniil", "89829758597", "Moscow"));
  148.     list_push_back(numbersBook, create_human("Maxim", "89222550206", "Moscow"));
  149.     list_push_back(numbersBook, create_human("Daniil", "89723948206", "Tyumen"));
  150.     list_push_back(numbersBook, create_human("Leha", "89222550206", "Tyumen"));
  151.    
  152.     list_display(numbersBook);
  153.  
  154.     cout << endl;
  155.  
  156.     find_item_name(numbersBook, "Daniil");
  157.     find_item_number(numbersBook, "89222550206");
  158.     find_item_addr(numbersBook, "Moscow");
  159.  
  160.    
  161.     return 0;
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement