35657

Untitled

May 23rd, 2023
962
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.31 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <iostream>
  4. #include <cstring>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. struct client{
  10.     char name[20]; // имя клиента
  11.     char phone_number[10]; // номер телефона
  12.     int client_id; // id клиента
  13.     int personal_discount; // размер скидки
  14.     bool regular_customer; // постоянный покупатель (да / нет)
  15. };
  16.  
  17. class client_base {
  18.  
  19. public:
  20.     client_base();
  21.     client_base(int new_base_size);
  22.     client_base(const client_base& other);
  23.  
  24.     void NewClient(const char name[], const char phone_number[], const int client_id, const int personal_discount, const bool regular_customer) {
  25.         if (clients_number == clients_base_size) {
  26.             client** temp = new client*[clients_base_size * 2];
  27.             for (int i = 0; i < clients_number; i++) {
  28.                 temp[i] = clients[i];
  29.                 delete clients[i];
  30.             }
  31.             delete[] clients;
  32.             clients = temp;
  33.             clients_base_size *= 2;
  34.         }
  35.         clients[clients_number] = new client;
  36.         strcpy(clients[clients_number]->name, name);
  37.         strcpy(clients[clients_number]->phone_number, phone_number);
  38.         clients[clients_number]->client_id = client_id;
  39.         clients[clients_number]->personal_discount = personal_discount;
  40.         clients[clients_number]->regular_customer = regular_customer;
  41.         clients_number++;
  42.         total_number_clients++;
  43.     }
  44.    
  45.     void DelClient(const char name[]);
  46.     void FindClient(const char name[]);
  47.     void ShowAllClients();
  48.     void ShowRegularClients();
  49.     static int GetTotalNumberClients();
  50.    
  51.  
  52. private:
  53.     client** clients; // массив клиентов
  54.     int clients_number; // количество клиентов
  55.     int clients_base_size; // размер базы
  56.     static int total_number_clients;
  57. };
  58.  
  59.  
  60. int client_base::total_number_clients = 0;
  61.  
  62.  
  63. int main() {
  64.     client_base my_base(200);
  65.     my_base.NewClient("Ivan", "9111111111", 1129, 10, true);
  66.     my_base.NewClient("Vasya", "9111111222", 1130, 5, false);
  67.     my_base.NewClient("Oleg", "9111111333", 1131, 15, true);
  68.     my_base.NewClient("Maria", "9111111444", 1132, 10, false);
  69.     my_base.NewClient("Galya", "9111111555", 1133, 20, true);
  70.     my_base.ShowAllClients();
  71.     my_base.DelClient("Ivan");
  72.     my_base.ShowRegularClients();
  73.     my_base.FindClient("Galya");
  74.     client_base my_base2(my_base);
  75.     my_base2.ShowAllClients();
  76.     cout << client_base::GetTotalNumberClients() << endl;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment