35657

Untitled

Feb 8th, 2024 (edited)
1,039
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1.  
  2. #define _CRT_SECURE_NO_WARNINGS
  3.  
  4. #include <iostream>
  5.  
  6. using namespace std;
  7.  
  8. struct contact {
  9.     char name[40];
  10.     char mobile_phone[20];
  11.     char home_phone[20];
  12.     char work_phone[20];
  13. };
  14.  
  15. struct phone_book {
  16.     int capacity = 4;
  17.     contact* store = new contact[capacity];
  18.     int contacts_number = 0;
  19. };
  20.  
  21. void show_all_contacts(const phone_book& book) {
  22.     for (int i = 0; i < book.contacts_number; i++) {
  23.         cout << book.store[i].name << ", мобильный телефон -  " << book.store[i].mobile_phone << ", домашний телефон - " << book.store[i].home_phone << ", рабочий телефон - " << book.store[i].work_phone << endl;
  24.     }
  25.     cout << endl;
  26. }
  27.  
  28. void add_contact(struct phone_book& book, const char* name, const char* mobile_phone, const char* home_phone, const char* work_phone) {
  29.     if (book.contacts_number == book.capacity) {
  30.         contact* temp = new contact[book.capacity * 2];
  31.         for (int i = 0; i < book.contacts_number; i++) {
  32.             temp[i] = book.store[i];
  33.         }
  34.         delete[] book.store;
  35.         book.store = temp;
  36.         book.capacity *= 2;
  37.     }
  38.     strcpy(book.store[book.contacts_number].name, name);
  39.     strcpy(book.store[book.contacts_number].mobile_phone, mobile_phone);
  40.     strcpy(book.store[book.contacts_number].home_phone, home_phone);
  41.     strcpy(book.store[book.contacts_number].work_phone, work_phone);
  42.     book.contacts_number++;
  43. }
  44.  
  45.  
  46. void del_contact(struct phone_book& book, const char* name) {
  47.     for (int i = 0; i < book.contacts_number; i++) {
  48.         if (!strcmp(book.store[i].name, name)) {
  49.             for (int j = i; j < book.contacts_number - 1; j++) {
  50.                 book.store[j] = book.store[j + 1];
  51.             }
  52.             book.contacts_number--;
  53.         }
  54.     }
  55. }
  56.  
  57. void find_contact_name(struct phone_book& book, const char* name) {
  58.     for (int i = 0; i < book.contacts_number; i++) {
  59.         if (!strcmp(book.store[i].name, name)) {
  60.             cout << book.store[i].name << ", мобильный телефон -  " << book.store[i].mobile_phone << ", домашний телефон - " << book.store[i].home_phone << ", рабочий телефон - " << book.store[i].work_phone << endl;
  61.         }
  62.     }
  63. }
  64.  
  65. int main() {
  66.  
  67.     setlocale(LC_ALL, "ru");
  68.  
  69.     phone_book my_book;
  70.  
  71.     add_contact(my_book, "Иван", "+79111111111", "111111", "121212");
  72.     add_contact(my_book, "Оля", "+79111114444", "114444", "141414");
  73.     add_contact(my_book, "Саша", "+79111115555", "115555", "151515");
  74.     add_contact(my_book, "Женя", "+79111116666", "116666", "161616");
  75.    
  76.     show_all_contacts(my_book);
  77.  
  78.     del_contact(my_book, "Женя");
  79.  
  80.     show_all_contacts(my_book);
  81.  
  82.     find_contact_name(my_book, "Саша");
  83.  
  84. }
Advertisement
Comments
Add Comment
Please, Sign In to add comment