Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <ctime>
- using namespace std;
- class Number {
- private:
- int num;
- public:
- Number(int value) { num = value; }
- Number() { num = NULL; }
- virtual void print() { cout << "My number -> " << num << endl; }
- virtual int get() { return num; }
- };
- class Record : public Number{
- private:
- Number num;
- vector<Number> list;
- public:
- Record() {
- num = NULL;
- list = {};
- }
- Record(Number value, vector<Number> values) {
- num = value;
- list = values;
- }
- void print() override {
- cout << "List -> {";
- for (int i = 0; i < (int)list.size(); i++) {
- if (i != list.size() - 1) {
- cout << list[i].get();
- cout << ", ";
- }
- else {
- cout << list[i].get();
- }
- }
- cout << "}" << endl;
- }
- int get() override {
- return num.get();
- }
- int getNum(int index) {
- if (index >= list.size()) return NULL;
- return list[index].get();
- }
- void sortUp() {
- Number temp;
- for (int i = 0; i < (int)(list.size() - 1); i++) {
- for (int j = i + 1; j < (int)list.size(); j++) {
- if (list[i].get() > list[j].get()) {
- temp = list[i];
- list[i] = list[j];
- list[j] = temp;
- }
- }
- }
- cout << "Массив отсортирован..." << endl;
- }
- int getMin() {
- if (list.size() == 0) {
- return NULL;
- }
- Number min(list[0].get());
- for (int i = 0; i < list.size(); i++) {
- if (list[i].get() < min.get()) {
- min = list[i];
- }
- }
- return min.get();
- }
- int getMax() {
- if (list.size() == 0) {
- return NULL;
- }
- Number max(list[0].get());
- for (int i = 0; i < list.size(); i++) {
- if (list[i].get() > max.get()) {
- max = list[i];
- }
- }
- return max.get();
- }
- };
- int main() {
- setlocale(LC_ALL, "rus");
- // Инициализация Числа
- int value;
- cout << "Тестирование класса Number..." << endl;
- cout << "Введите целое число, которое запишется в объект: ";
- cin >> value;
- Number b(value);
- // Тестирование
- cout << endl;
- b.print();
- cout << "Целое число в объекте: " << b.get() << endl << endl;
- cout << "Тестирование класса Record..." << endl;
- // Подготавливаем массив для инициализации Записи
- vector<Number> values;
- srand(time(0));
- for (int i = 0; i < 15; i++) {
- Number a(-20 + rand() % 40);
- values.push_back(a);
- }
- cout << "Введите целое число, которое станет элементом записи: ";
- cin >> value;
- // Целое число для инициализации записи
- Number c(value);
- // Инициализируем запись
- Record list(c, values);
- // Тестирование
- cout << "\nЦелое число записи: " << list.get() << endl;
- list.print();
- list.sortUp();
- list.print();
- int min = list.getMin();
- if (min != NULL) {
- cout << "Минимальное число в массиве: " << list.getMin() << endl;
- }
- else {
- cout << "Минимальное число в массиве: NaN" << endl;
- }
- int max = list.getMax();
- if (max != NULL) {
- cout << "Максимальное число в массиве: " << list.getMax() << endl << endl;
- }
- else {
- cout << "Максимальное число в массиве: NaN" << endl << endl;
- }
- cout << "Введите индекс элемента из массива: ";
- cin >> value;
- int answer = list.getNum(value);
- if (answer != NULL) {
- cout << "List[" << value << "] = " << list.getNum(value) << endl << endl;
- }
- else {
- cout << "List[" << value << "] = NaN" << endl << endl;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement