Перейти к основному содержанию
EDU-MMCS
  • В начало
  • Дополнительно
Вы используете гостевой доступ
Вход
В начало
  1. Prog_3
  2. Лабораторная работа №4. Структуры данных и функции

Лабораторная работа №4. Структуры данных и функции

Требуемые условия завершения
Открыто с: пятница, 3 октября 2025, 00:00
Срок сдачи: пятница, 10 октября 2025, 00:00

Функции в C++

Функция — это именованный блок кода, который можно вызывать многократно из разных частей программы. Функции позволяют структурировать программу, избегать дублирования кода и делать её более читаемой.

Общая форма объявления функции:

тип_возвращаемого_значения имя_функции(список_параметров) { // тело функции return значение; // (если функция возвращает что-то) }

Виды функций:

  1. Функции, которые ничего не возвращают (void)
    Используются для действий без результата: вывод, ввод, обработка.

    void printHello() { cout << "Hello!" << endl; }
  2. Функции, которые возвращают значение
    Возвращают результат вычислений:

    int square(int x) { return x * x; }
  3. Функции с параметрами по значению
    Аргументы копируются, изменения внутри функции не влияют на оригинал.

  4. Функции с параметрами по ссылке (&)
    Передаётся ссылка на переменную → изменения сохраняются в оригинале.

  5. Функции с параметрами по указателю (*)
    Передаётся адрес переменной, что полезно при работе с динамической памятью.

  6. Функции, принимающие структуры
    Структуру можно передавать:

    • по значению (копия)

    • по ссылке (эффективнее, нет копирования)


Задание

Создайте программу для работы с банковскими счетами.

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():
  1. Создайте массив из 3–5 счетов.

  2. Заполните его (частично можно вводом, частично сразу в коде).

  3. Выведите список.

  4. Дайте пользователю меню:

1. Показать все счета 2. Пополнить счёт 3. Снять деньги 4. Найти самый богатый счёт 5. Отсортировать по балансу 6. Выход

Вы используете гостевой доступ (Вход)
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика
На платформе Moodle