SHARE
TWEET

Untitled

a guest Oct 13th, 2019 103 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <vector>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. class Number {
  8. private:
  9.     int num;
  10. public:
  11.     Number(int value) { num = value; }
  12.     Number() { num = NULL; }
  13.     virtual void print() { cout << "My number -> " << num << endl; }
  14.     virtual int get() { return num; }
  15. };
  16.  
  17. class Record : public Number{
  18. private:
  19.     Number num;
  20.     vector<Number> list;
  21. public:
  22.     Record() {
  23.         num = NULL;
  24.         list = {};
  25.     }
  26.     Record(Number value, vector<Number> values) {
  27.         num = value;
  28.         list = values;
  29.     }
  30.     void print() override {
  31.         cout << "List -> {";
  32.         for (int i = 0; i < (int)list.size(); i++) {
  33.             if (i != list.size() - 1) {
  34.                 cout << list[i].get();
  35.                 cout << ", ";
  36.             }
  37.             else {
  38.                 cout << list[i].get();
  39.             }
  40.         }
  41.         cout << "}" << endl;
  42.     }
  43.     int get() override {
  44.         return num.get();
  45.     }
  46.     int getNum(int index) {
  47.         if (index >= list.size()) return NULL;
  48.         return list[index].get();
  49.     }
  50.     void sortUp() {
  51.         Number temp;
  52.         for (int i = 0; i < (int)(list.size() - 1); i++) {
  53.             for (int j = i + 1; j < (int)list.size(); j++) {
  54.                 if (list[i].get() > list[j].get()) {
  55.                     temp = list[i];
  56.                     list[i] = list[j];
  57.                     list[j] = temp;
  58.                 }
  59.             }
  60.         }
  61.         cout << "Массив отсортирован..." << endl;
  62.     }
  63.     int getMin() {
  64.         if (list.size() == 0) {
  65.             return NULL;
  66.         }
  67.         Number min(list[0].get());
  68.         for (int i = 0; i < list.size(); i++) {
  69.             if (list[i].get() < min.get()) {
  70.                 min = list[i];
  71.             }
  72.         }
  73.         return min.get();
  74.     }
  75.     int getMax() {
  76.         if (list.size() == 0) {
  77.             return NULL;
  78.         }
  79.         Number max(list[0].get());
  80.         for (int i = 0; i < list.size(); i++) {
  81.             if (list[i].get() > max.get()) {
  82.                 max = list[i];
  83.             }
  84.         }
  85.         return max.get();
  86.     }
  87. };
  88.  
  89. int main() {
  90.     setlocale(LC_ALL, "rus");
  91.  
  92.     // Инициализация Числа
  93.     int value;
  94.     cout << "Тестирование класса Number..." << endl;
  95.     cout << "Введите целое число, которое запишется в объект: ";
  96.     cin >> value;
  97.     Number b(value);
  98.  
  99.     // Тестирование
  100.     cout << endl;
  101.     b.print();
  102.     cout << "Целое число в объекте: " << b.get() << endl << endl;
  103.  
  104.     cout << "Тестирование класса Record..." << endl;
  105.  
  106.     // Подготавливаем массив для инициализации Записи
  107.     vector<Number> values;
  108.     srand(time(0));
  109.     for (int i = 0; i < 15; i++) {
  110.         Number a(-20 + rand() % 40);
  111.         values.push_back(a);
  112.     }
  113.  
  114.     cout << "Введите целое число, которое станет элементом записи: ";
  115.     cin >> value;
  116.     // Целое число для инициализации записи
  117.     Number c(value);
  118.  
  119.     // Инициализируем запись
  120.     Record list(c, values);
  121.  
  122.     // Тестирование
  123.     cout << "\nЦелое число записи: " << list.get() << endl;
  124.     list.print();
  125.     list.sortUp();
  126.     list.print();
  127.     int min = list.getMin();
  128.     if (min != NULL) {
  129.         cout << "Минимальное число в массиве: " << list.getMin() << endl;
  130.     }
  131.     else {
  132.         cout << "Минимальное число в массиве: NaN" << endl;
  133.     }
  134.    
  135.     int max = list.getMax();
  136.     if (max != NULL) {
  137.         cout << "Максимальное число в массиве: " << list.getMax() << endl << endl;
  138.     }
  139.     else {
  140.         cout << "Максимальное число в массиве: NaN" << endl << endl;
  141.     }
  142.     cout << "Введите индекс элемента из массива: ";
  143.     cin >> value;
  144.     int answer = list.getNum(value);
  145.     if (answer != NULL) {
  146.         cout << "List[" << value << "] = " << list.getNum(value) << endl << endl;
  147.     }
  148.     else {
  149.         cout << "List[" << value << "] = NaN" << endl << endl;
  150.     }
  151.     system("pause");
  152.     return 0;
  153. }
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