Advertisement
Guest User

Untitled

a guest
Oct 13th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.54 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement