Лабораторная работа №4. Структуры данных и функции
Функции в C++
Функция — это именованный блок кода, который можно вызывать многократно из разных частей программы. Функции позволяют структурировать программу, избегать дублирования кода и делать её более читаемой.
Общая форма объявления функции:
тип_возвращаемого_значения имя_функции(список_параметров) { // тело функции return значение; // (если функция возвращает что-то) }
Виды функций:
Функции, которые ничего не возвращают (void)
Используются для действий без результата: вывод, ввод, обработка.void printHello() { cout << "Hello!" << endl; }Функции, которые возвращают значение
Возвращают результат вычислений:int square(int x) { return x * x; }Функции с параметрами по значению
Аргументы копируются, изменения внутри функции не влияют на оригинал.Функции с параметрами по ссылке (
&)
Передаётся ссылка на переменную → изменения сохраняются в оригинале.Функции с параметрами по указателю (
*)
Передаётся адрес переменной, что полезно при работе с динамической памятью.Функции, принимающие структуры
Структуру можно передавать:по значению (копия)
по ссылке (эффективнее, нет копирования)
Задание
Создайте программу для работы с банковскими счетами.
1. Объявите перечисление:
enum AccountType { Debit = 1, Credit, Deposit, Saving };
2. Объявите структуру:
struct BankAccount { int id; // Номер счёта char owner[50]; // Владелец double balance; // Баланс AccountType type; // Тип счёта };
3. Реализуйте функции:
void inputAccount(BankAccount &a)– ввод данныхvoid printAccount(const BankAccount &a)– вывод данныхvoid deposit(BankAccount &a, double sum)– пополнение балансаbool withdraw(BankAccount &a, double sum)– снятие денег (если хватает средств, вернуть true, иначе false)BankAccount* findRichest(BankAccount accounts[], int size)– найти самый богатый счёт (вернуть указатель на структуру)void sortByBalance(BankAccount accounts[], int size)– сортировка массива по балансу (от большего к меньшему)
4. В main():
Создайте массив из 3–5 счетов.
Заполните его (частично можно вводом, частично сразу в коде).
Выведите список.
Дайте пользователю меню:
1. Показать все счета 2. Пополнить счёт 3. Снять деньги 4. Найти самый богатый счёт 5. Отсортировать по балансу 6. Выход