SHARE
TWEET

Ex. 7.14 (2)

daniil_mironoff May 23rd, 2019 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ЗАДАНИЕ 7.14 (2)
  2. // Создать массив, элементами которого являются структуры:
  3. // заказы магазина (фамилия клиента, товар, стоимость, адрес).
  4. // Создать функцию, сортирующую данную структуру (например, по стоимости),
  5. // и функцию для изменения информации конкретного заказа.
  6. // Использовать эти функции по назначению в программе
  7. // (для вывода отсортированной информации и изменения нужной информации).
  8.  
  9. #include <iostream>         // Для ВВОДА и ВЫВОДА
  10. #include <string>           // Для string
  11.  
  12. using namespace std;        // ПРОСТРАНСТВО ИМЁН
  13.  
  14. int const size = 3;         // Кол-во заказов
  15.  
  16. // Структура заказа
  17. struct order {
  18.     string name_client;     // Фамилия клиента
  19.     string name_product;    // Название товара
  20.     string address;         // Адрес заказчика
  21.    
  22.     int price;              // Стоимость заказа
  23. };
  24.  
  25. // Сортировка (Пузырьком) заказов по полю Стоимость заказа
  26. void sort_orders(order * orders, int size) {
  27.     // Сортировка
  28.     for (int i = 0; size > i; i++) {
  29.         for (int j = 0; size - i - 1 > j; j++) {
  30.             if (orders[j].price > orders[j + 1].price) {
  31.                 order var = orders[j];
  32.                 orders[j] = orders[j + 1];
  33.                 orders[j + 1] = var;
  34.             } else {
  35.                 continue;
  36.             }
  37.         }
  38.     }
  39. }
  40.  
  41. // Изменение Заказа
  42. void edit_orders(order * orders, int index) {
  43.     // Очистка буфера от цифр
  44.     string buff;
  45.     getline(cin, buff);
  46.    
  47.     // Ввод данных
  48.     string str;
  49.     cout << "======[EDIT  ORDER]======"                << endl;
  50.    
  51.     cout << "Name client: ";
  52.     getline(cin, str);
  53.     orders[index].name_client = str;
  54.    
  55.     cout << "Name product: ";
  56.     getline(cin, str);
  57.     orders[index].name_product = str;
  58.    
  59.     cout << "Address: ";
  60.     getline(cin, str);
  61.     orders[index].address = str;
  62.    
  63.     cout << "Price: ";
  64.     cin >> orders[index].price;
  65.    
  66.     cout << "========================="                << endl;
  67. }
  68.  
  69. int main() {
  70.     // Создание массива структур Заказ(ы)
  71.     order orders[size];
  72.    
  73.     // Цикл ввода данных
  74.     for (int i = 0; size > i; i++) {
  75.         string str;
  76.        
  77.         cout << "Enter name client "  << i + 1 << " order: ";
  78.         getline(cin, str);
  79.         orders[i].name_client = str;
  80.        
  81.         cout << "Enter name product " << i + 1 << " order: ";
  82.         getline(cin, str);
  83.         orders[i].name_product = str;
  84.        
  85.         cout << "Enter address "      << i + 1 << " order: ";
  86.         getline(cin, str);
  87.         orders[i].address = str;
  88.        
  89.         cout << endl;
  90.     }
  91.    
  92.     // Цикл ввода Стоимость Заказа
  93.     for (int i = 0; size > i; i++) {
  94.         cout << "Enter price " << i + 1 << " order: ";
  95.         cin >> orders[i].price;
  96.     }
  97.    
  98.     cout << endl;
  99.    
  100.     // Сортировка
  101.     sort_orders(orders, size);
  102.    
  103.     // Вывод
  104.         cout << "=======[DATA BASE]======="                << endl;
  105.     for (int i = 0; size > i; i++) {
  106.         cout << "Name client: "  << orders[i].name_client  << endl;
  107.         cout << "Name product: " << orders[i].name_product << endl;
  108.         cout << "Address: "      << orders[i].address      << endl;
  109.         cout << "Price: "        << orders[i].price        << endl;
  110.        
  111.         cout << "========================="                << endl;
  112.     }
  113.    
  114.     cout << endl;
  115.    
  116.     // Изменения Заказа с index 1
  117.     edit_orders(orders, 1);
  118.    
  119.     cout << endl;
  120.    
  121.     // Вывод
  122.     cout << "=======[DATA BASE]======="                << endl;
  123.     for (int i = 0; size > i; i++) {
  124.         cout << "Name client: "  << orders[i].name_client  << endl;
  125.         cout << "Name product: " << orders[i].name_product << endl;
  126.         cout << "Address: "      << orders[i].address      << endl;
  127.         cout << "Price: "        << orders[i].price        << endl;
  128.        
  129.         cout << "========================="                << endl;
  130.     }
  131.    
  132.     cout << endl;
  133.    
  134.     return 0;
  135. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top