/
haseew
/
Lab_2
Обзор
Документация
Войти
/
haseew
/
Lab_2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
main.cpp
106 строк
4 KB
haseew
create: Bell.cpp, Bell.h, CMakeLists.txt, compleks.cpp, compleks.h, OddEvenSeparator.cpp, OddEvenSeparator.h, Stock.cpp, Stock.h, Table.cpp, Table.h, main.cpp, otchet_lab2.doc
04 мар 2026, 19:20
Верифицирован
04 мар 2026, 19:20
e5db715
Код
Авторство
О чём код?
/* выполнил: Буров Егор что делает программа: Лабораторная работа №2. ООП на C++: инкапсуляция. демонстрация работы классов: Bell, OddEvenSeparator, Table, Complex, Stock. что на входе: Параметры для инициализации объектов (числа, размеры таблиц, веса коробок). что на выходе: Результаты работы методов каждого класса в консоли. */ #include <iostream> #include <limits> #include <vector> // Подключаем все заголоввочные файлы #include "Bell.h" #include "OddEvenSeparator.h" #include "Table.h" #include "compleks.h" #include "Stock.h" using namespace std; // Вспомогательная функция для безопасного ввода целых чисел (защита от дурака) int read_int(const char* message, bool positive_only = false) { int value; cout << message; while (!(cin >> value) || (positive_only && value < 0)) { cout << "Oshibka! Vvedite korrektnoe celoe chislo" << (positive_only ? " (>= 0): " : ": "); cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); } return value; } int main() { // --- Задание 1: Bell --- cout << "=== Zadanie 1: Klass Bell ===" << endl; Bell bell; cout << "Vyzov sound() trizhdy:" << endl; bell.sound(); // ding bell.sound(); // dong bell.sound(); // ding cout << "-----------------------------\n" << endl; // --- Задание 2: OddEvenSeparator --- cout << "=== Zadanie 2: Klass OddEvenSeparator ===" << endl; OddEvenSeparator separator; int n = read_int("Skolko chisel dobavit v separator? ", true); for (int i = 0; i < n; ++i) { int val = read_int(" Vvedite chislo: "); separator.add_number(val); } cout << "[Kontrolnyi vyvod]:" << endl; separator.even(); separator.odd(); cout << "-----------------------------\n" << endl; // --- Задание 3: Table --- cout << "=== Zadanie 3: Klass Table ===" << endl; int rows = read_int("Vvedite kolichestvo strok: ", true); int cols = read_int("Vvedite kolichestvo stolbcov: ", true); Table table(rows, cols); if (rows > 0 && cols > 0) { cout << "Zapolnim yacheiku [0][0] dlya testa." << endl; int test_val = read_int(" Vvedite znachenie dlya [0][0]: "); table.set_value(0, 0, test_val); } cout << "[Kontrolnyi vyvod] Tablica:" << endl; table.print(); cout << "Srednee arifmeticheskoe: " << table.average() << endl; cout << "-----------------------------\n" << endl; // --- Задание 4: Complex --- cout << "=== Zadanie 4: Klass Complex ===" << endl; Complex c1(3, 4); Complex c2(1, -2); cout << "c1 = "; c1.Print(); cout << "c2 = "; c2.Print(); cout << "Modul c1: " << c1.Abs() << endl; cout << "Summa c1 + c2: "; c1.Add(c2).Print(); cout << "Trigonometricheskaya forma c1: "; c1.TrigPrint(); cout << "-----------------------------\n" << endl; // --- Задание 5: Stock --- cout << "=== Zadanie 5: Klass Stock ===" << endl; Stock stock; stock.Add(10, 20); // id 0 stock.Add(50, 100); // id 1 stock.Add(10, 30); // id 2 (novee chem 0) cout << "Dobavleny korobki: 0(10,20), 1(50,100), 2(10,30)" << endl; int min_w = read_int("Ishchem korobku. Vvedite min ves: ", true); int found_id = stock.GetByW(min_w); if (found_id != -1) { cout << "Naidena korobka s ID: " << found_id << " (vydana i udalena)" << endl; } else { cout << "Podhodyashchikh korobok net." << endl; } cout << "-----------------------------" << endl; cout << "Programma zavershena uspeshno." << endl; return 0; }